mirror of
https://github.com/roytam1/basilisk55.git
synced 2026-05-27 11:40:16 +00:00
67 lines
2.2 KiB
JavaScript
67 lines
2.2 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
"use strict";
|
|
|
|
const TEST_URL = "data:text/html;charset=utf-8,";
|
|
|
|
addRDMTask(TEST_URL, function* ({ ui, manager }) {
|
|
ok(ui, "An instance of the RDM should be attached to the tab.");
|
|
yield setViewportSize(ui, manager, 110, 500);
|
|
|
|
info("Checking initial width/height properties.");
|
|
yield doInitialChecks(ui);
|
|
|
|
info("Changing the RDM size");
|
|
yield setViewportSize(ui, manager, 90, 500);
|
|
|
|
info("Checking for screen props");
|
|
yield checkScreenProps(ui);
|
|
|
|
info("Setting docShell.deviceSizeIsPageSize to false");
|
|
yield ContentTask.spawn(ui.getViewportBrowser(), {}, function* () {
|
|
let docShell = content.QueryInterface(Ci.nsIInterfaceRequestor)
|
|
.getInterface(Ci.nsIWebNavigation)
|
|
.QueryInterface(Ci.nsIDocShell);
|
|
docShell.deviceSizeIsPageSize = false;
|
|
});
|
|
|
|
info("Checking for screen props once again.");
|
|
yield checkScreenProps2(ui);
|
|
});
|
|
|
|
function* doInitialChecks(ui) {
|
|
let { innerWidth, matchesMedia } = yield grabContentInfo(ui);
|
|
is(innerWidth, 110, "initial width should be 110px");
|
|
ok(!matchesMedia, "media query shouldn't match.");
|
|
}
|
|
|
|
function* checkScreenProps(ui) {
|
|
let { matchesMedia, screen } = yield grabContentInfo(ui);
|
|
ok(matchesMedia, "media query should match");
|
|
isnot(window.screen.width, screen.width,
|
|
"screen.width should not be the size of the screen.");
|
|
is(screen.width, 90, "screen.width should be the page width");
|
|
is(screen.height, 500, "screen.height should be the page height");
|
|
}
|
|
|
|
function* checkScreenProps2(ui) {
|
|
let { matchesMedia, screen } = yield grabContentInfo(ui);
|
|
ok(!matchesMedia, "media query should be re-evaluated.");
|
|
is(window.screen.width, screen.width,
|
|
"screen.width should be the size of the screen.");
|
|
}
|
|
|
|
function grabContentInfo(ui) {
|
|
return ContentTask.spawn(ui.getViewportBrowser(), {}, function* () {
|
|
return {
|
|
screen: {
|
|
width: content.screen.width,
|
|
height: content.screen.height
|
|
},
|
|
innerWidth: content.innerWidth,
|
|
matchesMedia: content.matchMedia("(max-device-width:100px)").matches
|
|
};
|
|
});
|
|
}
|