gecko-dev/browser/base/content/test/general/browser_printpreview.js
Dan Banner f1eb5aaa84 Bug 1392119 - Enable the ESLint no-caller rule across mozilla-central r=standard8
MozReview-Commit-ID: JOC1330iFnh

--HG--
extra : rebase_source : 2afcb219d4a0d78f996bdc2c841456d2dccff605
2017-08-23 13:38:24 +01:00

74 lines
2.1 KiB
JavaScript

let ourTab;
function test() {
waitForExplicitFinish();
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).then(finish);
}
function testClosePrintPreviewWithAccessKey() {
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("VK_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);
});
}