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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
/* This test is a a mash up of
https://searchfox.org/mozilla-central/rev/016925857e2f81a9425de9e03021dcf4251cafcc/gfx/layers/apz/test/mochitest/browser_test_select_zoom.js
https://searchfox.org/mozilla-central/rev/016925857e2f81a9425de9e03021dcf4251cafcc/browser/base/content/test/general/browser_tab_drag_drop_perwindow.js
*/
const EVENTUTILS_URL =
"chrome://mochikit/content/tests/SimpleTest/EventUtils.js";
var EventUtils = {};
Services.scriptloader.loadSubScript(EVENTUTILS_URL, EventUtils);
add_task(async function test_dragging_zoom_handling() {
function httpURL(filename) {
let chromeURL = getRootDirectory(gTestPath) + filename;
//return chromeURL;
return chromeURL.replace(
"chrome://mochitests/content/",
"http://mochi.test:8888/"
);
}
const pageUrl = httpURL("helper_test_tab_drag_zoom.html");
let win1 = await BrowserTestUtils.openNewBrowserWindow();
let win2 = await BrowserTestUtils.openNewBrowserWindow();
let tab1 = await BrowserTestUtils.openNewForegroundTab(win1.gBrowser);
let tab2 = await BrowserTestUtils.openNewForegroundTab(
win2.gBrowser,
pageUrl
);
await SpecialPowers.spawn(tab2.linkedBrowser, [], async () => {
await content.wrappedJSObject.waitUntilApzStable();
});
const initial_resolution = await SpecialPowers.spawn(
tab2.linkedBrowser,
[],
() => {
return content.window.windowUtils.getResolution();
}
);
ok(
initial_resolution > 0,
"The initial_resolution is " +
initial_resolution +
", which is some sane value"
);
let effect = EventUtils.synthesizeDrop(
tab2,
tab1,
[[{ type: TAB_DROP_TYPE, data: tab2 }]],
null,
win2,
win1
);
is(effect, "move", "Tab should be moved from win2 to win1.");
await SpecialPowers.spawn(win1.gBrowser.selectedBrowser, [], async () => {
await content.wrappedJSObject.waitUntilApzStable();
});
let resolution = await SpecialPowers.spawn(
win1.gBrowser.selectedBrowser,
[],
() => {
return content.window.windowUtils.getResolution();
}
);
ok(
resolution == initial_resolution,
"The resolution (" + resolution + ") is the same after tab dragging"
);
await SpecialPowers.spawn(win1.gBrowser.selectedBrowser, [], async () => {
await content.wrappedJSObject.pinchZoomInWithTouch(150, 300);
});
// Flush state and get the resolution we're at now
await SpecialPowers.spawn(win1.gBrowser.selectedBrowser, [], async () => {
await content.wrappedJSObject.promiseApzFlushedRepaints();
});
resolution = await SpecialPowers.spawn(
win1.gBrowser.selectedBrowser,
[],
() => {
return content.window.windowUtils.getResolution();
}
);
ok(
resolution > initial_resolution,
"The resolution (" + resolution + ") is greater after zooming in"
);
await BrowserTestUtils.closeWindow(win1);
await BrowserTestUtils.closeWindow(win2);
});
|