tenfourfox/dom/tests/mochitest/chrome/sizemode_attribute.xul

88 lines
2.1 KiB
Plaintext
Raw Normal View History

2017-04-19 07:56:45 +00:00
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
<!--
Test for fullscreen sizemode in chrome
-->
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
persist="sizemode"
sizemode="normal"
onload="nextStep()">
<script type="text/javascript;version=1.8">
let tests = [
function test1() {
checkAndContinue("normal");
},
function test2() {
listen("fullscreen", () => checkAndContinue("fullscreen"));
window.fullScreen = true;
},
function test3() {
listen("fullscreen", () => checkAndContinue("normal"));
window.fullScreen = false;
},
function test4() {
listen("resize", () => checkAndContinue("maximized"));
window.maximize();
},
function test5() {
listen("fullscreen", () => checkAndContinue("fullscreen"));
window.fullScreen = true;
},
function test6() {
listen("fullscreen", () => checkAndContinue("maximized"));
window.fullScreen = false;
},
function test7() {
listen("resize", () => checkAndContinue("normal"));
window.restore();
},
function test8() {
window.opener.wrappedJSObject.done();
}
];
function nextStep() {
tests.shift()();
}
function listen(event, fn) {
window.addEventListener(event, function listener() {
window.removeEventListener(event, listener, false);
fn();
}, false);
}
function checkAndContinue(sizemode) {
let windowStates = {
"fullscreen": window.STATE_FULLSCREEN,
"normal": window.STATE_NORMAL,
"maximized": window.STATE_MAXIMIZED
};
setTimeout(function() {
is(window.document.documentElement.getAttribute("sizemode"), sizemode, "sizemode attribute should match actual window state");
is(window.fullScreen, sizemode == "fullscreen", "window.fullScreen should match actual window state");
is(window.windowState, windowStates[sizemode], "window.sizeMode should match actual window state");
nextStep();
}, 0);
}
let is = window.opener.wrappedJSObject.is;
</script>
<body xmlns="http://www.w3.org/1999/xhtml">
</body>
</window>