summaryrefslogtreecommitdiffstats
path: root/xpfe/appshell/test
diff options
context:
space:
mode:
Diffstat (limited to 'xpfe/appshell/test')
-rw-r--r--xpfe/appshell/test/chrome.ini5
-rw-r--r--xpfe/appshell/test/test_hiddenPrivateWindow.xul45
-rw-r--r--xpfe/appshell/test/test_windowlessBrowser.xul75
3 files changed, 125 insertions, 0 deletions
diff --git a/xpfe/appshell/test/chrome.ini b/xpfe/appshell/test/chrome.ini
new file mode 100644
index 000000000..6f4b72829
--- /dev/null
+++ b/xpfe/appshell/test/chrome.ini
@@ -0,0 +1,5 @@
+[DEFAULT]
+skip-if = os == 'android'
+
+[test_hiddenPrivateWindow.xul]
+[test_windowlessBrowser.xul]
diff --git a/xpfe/appshell/test/test_hiddenPrivateWindow.xul b/xpfe/appshell/test/test_hiddenPrivateWindow.xul
new file mode 100644
index 000000000..a1dfb486d
--- /dev/null
+++ b/xpfe/appshell/test/test_hiddenPrivateWindow.xul
@@ -0,0 +1,45 @@
+<?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"?>
+<!--
+https://bugzilla.mozilla.org/show_bug.cgi?id=815847
+-->
+<window title="Mozilla Bug 815847"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+
+ <script type="application/javascript"
+ src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js" />
+
+<body xmlns="http://www.w3.org/1999/xhtml">
+<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=815847">Mozilla Bug 815847</a>
+<p id="display"></p>
+<div id="content" style="display: none">
+
+</div>
+<pre id="test">
+</pre>
+</body>
+
+<script class="testbody" type="application/javascript">
+<![CDATA[
+
+var Cu = Components.utils;
+
+Cu.import('resource://gre/modules/Services.jsm');
+Cu.import('resource://gre/modules/PrivateBrowsingUtils.jsm');
+
+ok(Services.appShell.hiddenWindow, "hiddenWindow should exist");
+ok(Services.appShell.hiddenDOMWindow, "hiddenDOMWindow should exist");
+ok(Services.appShell.hiddenPrivateWindow, "hiddenPrivateWindow should exist");
+ok(Services.appShell.hiddenPrivateDOMWindow, "hiddenPrivateDOMWindow should exist");
+
+ok(!PrivateBrowsingUtils.isWindowPrivate(Services.appShell.hiddenWindow.docShell), "hiddenWindow should not be private");
+ok(!PrivateBrowsingUtils.isWindowPrivate(Services.appShell.hiddenDOMWindow), "hiddenDOMWindow should not be private");
+ok(PrivateBrowsingUtils.isWindowPrivate(Services.appShell.hiddenPrivateWindow.docShell), "hiddenPrivateWindow should be private");
+ok(PrivateBrowsingUtils.isWindowPrivate(Services.appShell.hiddenPrivateDOMWindow), "hiddenPrivateDOMWindow should be private");
+
+]]>
+</script>
+
+</window>
diff --git a/xpfe/appshell/test/test_windowlessBrowser.xul b/xpfe/appshell/test/test_windowlessBrowser.xul
new file mode 100644
index 000000000..ef91f7655
--- /dev/null
+++ b/xpfe/appshell/test/test_windowlessBrowser.xul
@@ -0,0 +1,75 @@
+<?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"?>
+<!--
+https://bugzilla.mozilla.org/show_bug.cgi?id=815847
+-->
+<window title="Mozilla Bug 815847"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+
+ <script type="application/javascript"
+ src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js" />
+
+<body xmlns="http://www.w3.org/1999/xhtml">
+<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1214174">Mozilla Bug 1214174</a>
+<p id="display"></p>
+<div id="content" style="display: none">
+
+</div>
+<pre id="test">
+</pre>
+</body>
+
+<script class="testbody" type="application/javascript">
+<![CDATA[
+
+var Cu = Components.utils;
+var Ci = Components.interfaces;
+
+Cu.import('resource://gre/modules/Services.jsm');
+
+function testWindowlessBrowser(chromePrivileged) {
+ var webNav = Services.appShell.createWindowlessBrowser(chromePrivileged);
+
+ ok(webNav, "createWindowlessBrowser should return a wevNav");
+
+ let interfaceRequestor = webNav.QueryInterface(Ci.nsIInterfaceRequestor);
+ let docShell = interfaceRequestor.getInterface(Ci.nsIDocShell);
+
+ ok(docShell, "docShell should be defined");
+ ok(docShell.contentViewer.DOMDocument.defaultView, "docShell defaultView should be defined");
+
+ var win = docShell.contentViewer.DOMDocument.defaultView;
+
+ ok(win.screenX == 0, "window.screenX should be 0 in a windowless browser");
+ ok(win.screenY == 0, "window.screenY should be 0 in a windowless browser");
+ ok(win.outerWidth == 0, "window.outerWidth should be 0 in a windowless browser");
+ ok(win.outerHeight == 0, "window.outerHeight should be 0 in a windowless browser");
+
+ ok(win.sidebar, "window.sidebar should be defined");
+ ok(win.external, "window.external should be defined");
+
+ var exception;
+
+ try {
+ win.external.AddSearchProvider("http://test-fake.url");
+ } catch(e) {
+ exception = e;
+ }
+
+ ok(!exception, "window.external.AddSearchProvider should be ignore withour raising an exception");
+
+ webNav.close();
+}
+
+info("Test Bug 1214174 on a content privileged windowless browser");
+testWindowlessBrowser(false);
+
+info("Test Bug 1214174 on a chrome privileged windowless browser");
+testWindowlessBrowser(true);
+
+]]>
+</script>
+
+</window>