summaryrefslogtreecommitdiffstats
path: root/browser/base/content/test/general/browser_printpreview.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 14:29:10 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 14:29:10 +0000
commit2aa4a82499d4becd2284cdb482213d541b8804dd (patch)
treeb80bf8bf13c3766139fbacc530efd0dd9d54394c /browser/base/content/test/general/browser_printpreview.js
parentInitial commit. (diff)
downloadfirefox-upstream.tar.xz
firefox-upstream.zip
Adding upstream version 86.0.1.upstream/86.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'browser/base/content/test/general/browser_printpreview.js')
-rw-r--r--browser/base/content/test/general/browser_printpreview.js86
1 files changed, 86 insertions, 0 deletions
diff --git a/browser/base/content/test/general/browser_printpreview.js b/browser/base/content/test/general/browser_printpreview.js
new file mode 100644
index 0000000000..9a95389900
--- /dev/null
+++ b/browser/base/content/test/general/browser_printpreview.js
@@ -0,0 +1,86 @@
+let ourTab;
+
+async function test() {
+ waitForExplicitFinish();
+ await pushPrefs(["print.tab_modal.enabled", false]);
+
+ BrowserTestUtils.openNewForegroundTab(gBrowser, "about:home", true).then(
+ function(tab) {
+ ourTab = tab;
+ ok(
+ !gInPrintPreviewMode,
+ "Should NOT be in print preview mode at starting this tests"
+ );
+ // Skip access key test on platforms which don't support access key.
+ if (!/Win|Linux/.test(navigator.platform)) {
+ openPrintPreview(testClosePrintPreviewWithEscKey);
+ } else {
+ openPrintPreview(testClosePrintPreviewWithAccessKey);
+ }
+ }
+ );
+}
+
+function tidyUp() {
+ BrowserTestUtils.removeTab(ourTab);
+ finish();
+}
+
+async function testClosePrintPreviewWithAccessKey() {
+ let closeButton = document.getElementById(
+ "print-preview-toolbar-close-button"
+ );
+ await TestUtils.waitForCondition(() => closeButton.hasAttribute("accesskey"));
+ EventUtils.synthesizeKey("c", { altKey: true });
+ checkPrintPreviewClosed(function(aSucceeded) {
+ ok(aSucceeded, "print preview mode should be finished by access key");
+ openPrintPreview(testClosePrintPreviewWithEscKey);
+ });
+}
+
+function testClosePrintPreviewWithEscKey() {
+ EventUtils.synthesizeKey("KEY_Escape");
+ checkPrintPreviewClosed(function(aSucceeded) {
+ ok(aSucceeded, "print preview mode should be finished by Esc key press");
+ openPrintPreview(testClosePrintPreviewWithClosingWindowShortcutKey);
+ });
+}
+
+function testClosePrintPreviewWithClosingWindowShortcutKey() {
+ EventUtils.synthesizeKey("w", { accelKey: true });
+ checkPrintPreviewClosed(function(aSucceeded) {
+ ok(
+ aSucceeded,
+ "print preview mode should be finished by closing window shortcut key"
+ );
+ tidyUp();
+ });
+}
+
+function openPrintPreview(aCallback) {
+ document.getElementById("cmd_printPreview").doCommand();
+ executeSoon(function waitForPrintPreview() {
+ if (gInPrintPreviewMode) {
+ executeSoon(aCallback);
+ return;
+ }
+ executeSoon(waitForPrintPreview);
+ });
+}
+
+function checkPrintPreviewClosed(aCallback) {
+ let count = 0;
+ executeSoon(function waitForPrintPreviewClosed() {
+ if (!gInPrintPreviewMode) {
+ executeSoon(function() {
+ aCallback(count < 1000);
+ });
+ return;
+ }
+ if (++count == 1000) {
+ // The test might fail.
+ PrintUtils.exitPrintPreview();
+ }
+ executeSoon(waitForPrintPreviewClosed);
+ });
+}