Bug 858101 - Tests. r=mrbkap
authorBobby Holley <bobbyholley@gmail.com>
Wed, 20 Nov 2013 16:04:01 -0800
changeset 156649 fa45cf3568d32beb79847f406aa4459d6e0b8460
parent 156648 9b8cf7425dfeacd46a7ee004324946ea8cd52bec
child 156650 d8dac30c9a287ba60c2effa72ff703c26dc2e246
push id36493
push userbobbyholley@gmail.com
push dateThu, 21 Nov 2013 00:04:31 +0000
treeherdermozilla-inbound@d8dac30c9a28 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmrbkap
bugs858101
milestone28.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 858101 - Tests. r=mrbkap
js/xpconnect/tests/chrome/chrome.ini
js/xpconnect/tests/chrome/test_bug858101.xul
--- a/js/xpconnect/tests/chrome/chrome.ini
+++ b/js/xpconnect/tests/chrome/chrome.ini
@@ -41,16 +41,17 @@ support-files =
 [test_bug792280.xul]
 [test_bug793433.xul]
 [test_bug795275.xul]
 [test_bug799348.xul]
 [test_bug801241.xul]
 [test_bug812415.xul]
 [test_bug853283.xul]
 [test_bug853571.xul]
+[test_bug858101.xul]
 [test_bug860494.xul]
 [test_bug866823.xul]
 [test_bug895340.xul]
 [test_chrometoSource.xul]
 [test_cows.xul]
 [test_documentdomain.xul]
 [test_doublewrappedcompartments.xul]
 [test_evalInSandbox.xul]
new file mode 100644
--- /dev/null
+++ b/js/xpconnect/tests/chrome/test_bug858101.xul
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/css" href="chrome://global/skin"?>
+<?xml-stylesheet type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"?>
+<!--
+https://bugzilla.mozilla.org/show_bug.cgi?id=858101
+-->
+<window title="Mozilla Bug 858101"
+        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+  <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
+
+  <!-- test results are displayed in the html:body -->
+  <body xmlns="http://www.w3.org/1999/xhtml">
+  <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=858101"
+     target="_blank">Mozilla Bug 858101</a>
+  </body>
+
+  <!-- test code goes here -->
+  <script type="application/javascript">
+  <![CDATA[
+
+  /** Test for [[DefaultValue]] on XrayWrappers. **/
+  SimpleTest.waitForExplicitFinish();
+
+  function muckWithToString() {
+    function tricky() { return "hah"; };
+
+    window.toString = document.toString = document.body.toString = tricky;
+    window.valueOf = document.valueOf = document.body.valueOf = tricky;
+
+    Window.prototype.toString = Window.prototype.valueOf = tricky;
+    Document.prototype.toString = Document.prototype.valueOf = tricky;
+    HTMLBodyElement.toString = HTMLBodyElement.valueOf = tricky;
+  }
+
+  function go() {
+    var iwin = $('ifr').contentWindow;
+    iwin.wrappedJSObject.eval('(' + muckWithToString.toSource() + ')()');
+
+    // Check behavior with vanilla CCWs.
+    ok(!!/hah/.exec(iwin.wrappedJSObject + ""), "Waivers should get content-defined window stringification");
+    ok(!!/hah/.exec(iwin.document.wrappedJSObject + ""), "Waivers should get content-defined document stringification");
+    ok(!!/hah/.exec(iwin.document.body.wrappedJSObject + ""), "Waivers should get content-defined body stringification");
+
+    // Check Xray behavior.
+    ok(!/hah/.exec(iwin + ""), "Xrays should not get content-defined window stringification");
+    ok(!/hah/.exec(iwin.document + ""), "Xrays should not get content-defined document stringification");
+    ok(!/hah/.exec(iwin.document.body + ""), "Xrays should not get content-defined body stringification");
+
+    SimpleTest.finish();
+  }
+
+  ]]>
+  </script>
+  <iframe id="ifr" onload="go();" type="content" src="http://example.org/tests/js/xpconnect/tests/mochitest/file_empty.html" />
+</window>