Bug 966612 part.2 Add tests on printpreview UI r=enndeakin

This commit is contained in:
Masayuki Nakano 2014-02-06 00:14:36 +09:00
parent c17d522c9f
commit cc7c2b4704
2 changed files with 66 additions and 0 deletions

View File

@ -288,6 +288,7 @@ run-if = crashreporter
[browser_popupNotification.js]
skip-if = toolkit == "windows" # Disabled on Windows due to frequent failures (bugs 825739, 841341)
[browser_popupUI.js]
[browser_printpreview.js]
[browser_private_browsing_window.js]
[browser_private_no_prompt.js]
[browser_relatedTabs.js]

View File

@ -0,0 +1,65 @@
function test() {
waitForExplicitFinish();
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 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");
finish();
});
}
function openPrintPreview(aCallback) {
document.getElementById("cmd_printPreview").doCommand();
executeSoon(function () {
if (gInPrintPreviewMode) {
executeSoon(aCallback);
return;
}
executeSoon(arguments.callee);
});
}
function checkPrintPreviewClosed(aCallback) {
let count = 0;
executeSoon(function () {
if (!gInPrintPreviewMode) {
executeSoon(function () { aCallback(count < 1000); });
return;
}
if (++count == 1000) {
// The test might fail.
PrintUtils.exitPrintPreview();
}
executeSoon(arguments.callee);
});
}