diff options
Diffstat (limited to 'toolkit/components/printing/tests/browser_preview_in_container.js')
-rw-r--r-- | toolkit/components/printing/tests/browser_preview_in_container.js | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/toolkit/components/printing/tests/browser_preview_in_container.js b/toolkit/components/printing/tests/browser_preview_in_container.js new file mode 100644 index 0000000000..21a0d1e6b1 --- /dev/null +++ b/toolkit/components/printing/tests/browser_preview_in_container.js @@ -0,0 +1,60 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +const TEST_PATH = getRootDirectory(gTestPath).replace( + "chrome://mochitests/content", + "https://example.com" +); + +async function runTest() { + is( + document.querySelector(".printPreviewBrowser"), + null, + "There shouldn't be any print preview browser" + ); + + gBrowser.selectedTab = await BrowserTestUtils.addTab( + gBrowser, + `${TEST_PATH}file_print.html`, + { userContextId: 1 } + ); + + // Wait for window.print() to run and ensure we're showing the preview... + await BrowserTestUtils.waitForCondition( + () => !!document.querySelector(".printPreviewBrowser") + ); + + let previewBrowser = document.querySelector(".printPreviewBrowser"); + let contentFound = await SpecialPowers.spawn(previewBrowser, [], () => { + return !!content.document.getElementById("printed"); + }); + ok(contentFound, "We should find the preview content."); + BrowserTestUtils.removeTab(gBrowser.selectedTab); +} + +add_task(async function test_in_container() { + // window.print() only shows print preview when print.tab_modal.enabled is + // true. + await SpecialPowers.pushPrefEnv({ + set: [ + ["print.tab_modal.enabled", true], + ["privacy.firstparty.isolate", false], + ], + }); + + await runTest(); +}); + +add_task(async function test_with_fpi() { + // window.print() only shows print preview when print.tab_modal.enabled is + // true. + await SpecialPowers.pushPrefEnv({ + set: [ + ["print.tab_modal.enabled", true], + ["privacy.firstparty.isolate", true], + ], + }); + await runTest(); +}); |