fune/browser/base/content/test/zoom/browser_background_zoom.js
Gijs Kruitbosch 61e522c615 Bug 1537719 - move page zoom tests and make them more reliable, r=morgan
This moves a bunch of tests over to a topical directory, and removes the
linux/windows running restrictions around browser_bug1015721.js
(now browser_mousewheel_zoom.js), given that it appears to run fine on try
and there are no recent logs with which we can diagnose failures.

It switches away from using FullZoom.reset repeatedly in the background_zoom
test because that trips https://bugzilla.mozilla.org/show_bug.cgi?id=1604236
which breaks subsequent tests.

Differential Revision: https://phabricator.services.mozilla.com/D89484
2020-09-08 20:34:11 +00:00

113 lines
3.9 KiB
JavaScript

var gTestPage =
"http://example.org/browser/browser/base/content/test/zoom/zoom_test.html";
var gTestImage =
"http://example.org/browser/browser/base/content/test/general/moz.png";
var gTab1, gTab2, gTab3;
var gLevel;
function test() {
waitForExplicitFinish();
registerCleanupFunction(async () => {
await new Promise(resolve => {
ContentPrefService2.removeByName(FullZoom.name, Cu.createLoadContext(), {
handleCompletion: resolve,
});
});
});
(async function() {
gTab1 = BrowserTestUtils.addTab(gBrowser, gTestPage);
gTab2 = BrowserTestUtils.addTab(gBrowser);
gTab3 = BrowserTestUtils.addTab(gBrowser);
await FullZoomHelper.selectTabAndWaitForLocationChange(gTab1);
await FullZoomHelper.load(gTab1, gTestPage);
await FullZoomHelper.load(gTab2, gTestPage);
})().then(secondPageLoaded, FullZoomHelper.failAndContinue(finish));
}
function secondPageLoaded() {
(async function() {
FullZoomHelper.zoomTest(gTab1, 1, "Initial zoom of tab 1 should be 1");
FullZoomHelper.zoomTest(gTab2, 1, "Initial zoom of tab 2 should be 1");
FullZoomHelper.zoomTest(gTab3, 1, "Initial zoom of tab 3 should be 1");
// Now have three tabs, two with the test page, one blank. Tab 1 is selected
// Zoom tab 1
FullZoom.enlarge();
gLevel = ZoomManager.getZoomForBrowser(gBrowser.getBrowserForTab(gTab1));
ok(gLevel > 1, "New zoom for tab 1 should be greater than 1");
FullZoomHelper.zoomTest(gTab2, 1, "Zooming tab 1 should not affect tab 2");
FullZoomHelper.zoomTest(gTab3, 1, "Zooming tab 1 should not affect tab 3");
await FullZoomHelper.load(gTab3, gTestPage);
})().then(thirdPageLoaded, FullZoomHelper.failAndContinue(finish));
}
function thirdPageLoaded() {
(async function() {
FullZoomHelper.zoomTest(gTab1, gLevel, "Tab 1 should still be zoomed");
FullZoomHelper.zoomTest(gTab2, 1, "Tab 2 should still not be affected");
FullZoomHelper.zoomTest(
gTab3,
gLevel,
"Tab 3 should have zoomed as it was loading in the background"
);
// Switching to tab 2 should update its zoom setting.
await FullZoomHelper.selectTabAndWaitForLocationChange(gTab2);
FullZoomHelper.zoomTest(gTab1, gLevel, "Tab 1 should still be zoomed");
FullZoomHelper.zoomTest(gTab2, gLevel, "Tab 2 should be zoomed now");
FullZoomHelper.zoomTest(gTab3, gLevel, "Tab 3 should still be zoomed");
await FullZoomHelper.load(gTab1, gTestImage);
})().then(imageLoaded, FullZoomHelper.failAndContinue(finish));
}
function imageLoaded() {
(async function() {
FullZoomHelper.zoomTest(
gTab1,
1,
"Zoom should be 1 when image was loaded in the background"
);
await FullZoomHelper.selectTabAndWaitForLocationChange(gTab1);
FullZoomHelper.zoomTest(
gTab1,
1,
"Zoom should still be 1 when tab with image is selected"
);
})().then(imageZoomSwitch, FullZoomHelper.failAndContinue(finish));
}
function imageZoomSwitch() {
(async function() {
await FullZoomHelper.navigate(FullZoomHelper.BACK);
await FullZoomHelper.navigate(FullZoomHelper.FORWARD);
FullZoomHelper.zoomTest(
gTab1,
1,
"Tab 1 should not be zoomed when an image loads"
);
await FullZoomHelper.selectTabAndWaitForLocationChange(gTab2);
FullZoomHelper.zoomTest(
gTab1,
1,
"Tab 1 should still not be zoomed when deselected"
);
})().then(finishTest, FullZoomHelper.failAndContinue(finish));
}
var finishTestStarted = false;
function finishTest() {
(async function() {
ok(!finishTestStarted, "finishTest called more than once");
finishTestStarted = true;
await FullZoomHelper.selectTabAndWaitForLocationChange(gTab1);
await FullZoomHelper.removeTabAndWaitForLocationChange(gTab1);
await FullZoomHelper.removeTabAndWaitForLocationChange(gTab2);
await FullZoomHelper.removeTabAndWaitForLocationChange(gTab3);
})().then(finish, FullZoomHelper.failAndContinue(finish));
}