diff options
Diffstat (limited to 'xpfe/appshell/test')
-rw-r--r-- | xpfe/appshell/test/chrome.ini | 5 | ||||
-rw-r--r-- | xpfe/appshell/test/test_hiddenPrivateWindow.xul | 45 | ||||
-rw-r--r-- | xpfe/appshell/test/test_windowlessBrowser.xul | 75 |
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> |