Source code

Revision control

Copy as Markdown

Other Tools

<?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
-->
persist="sizemode"
sizemode="normal"
onload="nextStep()">
<script type="text/javascript">
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.arguments[0].done();
}
];
function nextStep() {
tests.shift()();
}
function listen(event, fn) {
window.addEventListener(event, function listener() {
fn();
}, { once: true });
}
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.arguments[0].is;
</script>
</body>
</window>