forked from mirrors/gecko-dev
75 lines
2.1 KiB
JavaScript
75 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);
|
|
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("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);
|
|
});
|
|
}
|