blob: 9a95389900225ce6074bd88dc572e241f3eadf16 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
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);
});
}
|