summaryrefslogtreecommitdiffstats
path: root/dom/tests/mochitest/chrome/sizemode_attribute.xhtml
diff options
context:
space:
mode:
Diffstat (limited to 'dom/tests/mochitest/chrome/sizemode_attribute.xhtml')
-rw-r--r--dom/tests/mochitest/chrome/sizemode_attribute.xhtml87
1 files changed, 87 insertions, 0 deletions
diff --git a/dom/tests/mochitest/chrome/sizemode_attribute.xhtml b/dom/tests/mochitest/chrome/sizemode_attribute.xhtml
new file mode 100644
index 0000000000..3dbde68064
--- /dev/null
+++ b/dom/tests/mochitest/chrome/sizemode_attribute.xhtml
@@ -0,0 +1,87 @@
+<?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">
+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() {
+ 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.arguments[0].is;
+
+</script>
+
+<body xmlns="http://www.w3.org/1999/xhtml">
+
+</body>
+</window>