Bug 1267720 - Test _blank name usage in new windows. r?Gijs draft
authorMike Conley <mconley@mozilla.com>
Fri, 29 Apr 2016 17:39:18 -0400
changeset 363497 bd5a485aa8ef187c3c70e692660304b49e3c796f
parent 363496 655a87de21ac65bae1af1a811b1c7ce9be1a0f50
child 363498 b5c39e1b93865e5bc0839db4eadc91201c1acd0d
push id17222
push usermconley@mozilla.com
push dateWed, 04 May 2016 21:02:55 +0000
reviewersGijs
bugs1267720
milestone49.0a1
Bug 1267720 - Test _blank name usage in new windows. r?Gijs MozReview-Commit-ID: Gqh04VTzOuC
embedding/components/windowwatcher/test/mochitest.ini
embedding/components/windowwatcher/test/test_blank_named_window.html
--- a/embedding/components/windowwatcher/test/mochitest.ini
+++ b/embedding/components/windowwatcher/test/mochitest.ini
@@ -1,6 +1,7 @@
 [DEFAULT]
 support-files =
   head.js
 tags = openwindow
 
+[test_blank_named_window.html]
 [test_named_window.html]
new file mode 100644
--- /dev/null
+++ b/embedding/components/windowwatcher/test/test_blank_named_window.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML>
+<html>
+<!--
+Test that when opening a window with the reserved name _blank that the new
+window does not get that name, and that subsequent window openings with that
+name result in new windows being opened.
+-->
+<head>
+  <meta charset="utf-8">
+  <title>Test named windows</title>
+  <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
+  <script type="text/javascript" src="/tests/SimpleTest/SpawnTask.js"></script>
+  <script src="head.js" type="application/javascript;version=1.8"></script>
+  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
+</head>
+<body>
+  <script type="application/javascript">
+    "use strict";
+    add_task(function*() {
+      // This magic value of 2 means that by default, when content tries
+      // to open a new window, it'll actually open in a new window instead
+      // of a new tab.
+      yield pushPrefs(["browser.link.open_newwindow", 2]);
+
+      let win1 = window.open("about:blank", "_blank");
+
+      let name = SpecialPowers.wrap(win1)
+                 .QueryInterface(SpecialPowers.Ci.nsIInterfaceRequestor)
+                 .getInterface(SpecialPowers.Ci.nsIWebNavigation)
+                 .QueryInterface(SpecialPowers.Ci.nsIDocShellTreeItem)
+                 .name;
+
+      is(name, "", "Should have no name");
+
+      let win2 = window.open("about:blank", "_blank");
+      isnot(win1, win2, "Should not have gotten back the same window");
+
+      win1.close();
+      win2.close();
+    });
+  </script>
+</body>
+</html>
\ No newline at end of file