mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-20 16:55:40 +00:00
f9f5914039
# ignore-this-changeset Differential Revision: https://phabricator.services.mozilla.com/D36041 --HG-- extra : source : 96b3895a3b2aa2fcb064c85ec5857b7216884556
86 lines
2.3 KiB
JavaScript
86 lines
2.3 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);
|
|
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);
|
|
});
|
|
}
|