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
|
/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/
*/
"use strict";
/**
* Clicking the right end of a maximized window should open the hamburger menu.
*/
add_task(async function test_clicking_hamburger_edge_fitts() {
let oldWidth = window.outerWidth;
let maximizeDone = BrowserTestUtils.waitForEvent(
window,
"resize",
false,
() => window.outerWidth >= screen.width - 1
);
window.maximize();
// Ensure we actually finish the resize before continuing.
await maximizeDone;
// Find where the nav-bar is vertically.
var navBar = document.getElementById("nav-bar");
var boundingRect = navBar.getBoundingClientRect();
var yPixel = boundingRect.top + Math.floor(boundingRect.height / 2);
var xPixel = boundingRect.width - 1; // Use the last pixel of the screen since it is maximized.
let popupHiddenResolve;
let popupHiddenPromise = new Promise(resolve => {
popupHiddenResolve = resolve;
});
async function onPopupHidden() {
PanelUI.panel.removeEventListener("popuphidden", onPopupHidden);
let restoreDone = BrowserTestUtils.waitForEvent(
window,
"resize",
false,
() => {
let w = window.outerWidth;
return w > oldWidth - 5 && w < oldWidth + 5;
}
);
window.restore();
await restoreDone;
popupHiddenResolve();
}
function onPopupShown() {
PanelUI.panel.removeEventListener("popupshown", onPopupShown);
ok(true, "Clicking at the far edge of the window opened the menu popup.");
PanelUI.panel.addEventListener("popuphidden", onPopupHidden);
PanelUI.hide();
}
registerCleanupFunction(function() {
PanelUI.panel.removeEventListener("popupshown", onPopupShown);
PanelUI.panel.removeEventListener("popuphidden", onPopupHidden);
});
PanelUI.panel.addEventListener("popupshown", onPopupShown);
EventUtils.synthesizeMouseAtPoint(xPixel, yPixel, {}, window);
await popupHiddenPromise;
});
|