Bug 919208 - Rewrite test_bug668513.html to run in its own window so that it won't be able to navigate the test runner frame back. r=bzbarsky, a=test-only
authorEhsan Akhgari <ehsan@mozilla.com>
Sun, 30 Mar 2014 08:45:58 -0400
changeset 217653 f8fe0bdeb8236a3fd111dbcd8c05196a32e91bdf
parent 217652 d0da2733724d3a6360ddd58130749e254d046296
child 217654 071d2fbd0caa74d57c65eb6439d75345eba4e1cc
push id3
push usergszorc@mozilla.com
push dateWed, 29 Oct 2014 02:45:36 +0000
reviewersbzbarsky, test-only
bugs919208, 668513
milestone29.0
Bug 919208 - Rewrite test_bug668513.html to run in its own window so that it won't be able to navigate the test runner frame back. r=bzbarsky, a=test-only
docshell/test/file_bug668513.html
docshell/test/mochitest.ini
docshell/test/test_bug668513.html
testing/mochitest/b2g-debug.json
testing/mochitest/b2g-desktop.json
testing/mochitest/b2g.json
copy from docshell/test/test_bug668513.html
copy to docshell/test/file_bug668513.html
--- a/docshell/test/test_bug668513.html
+++ b/docshell/test/file_bug668513.html
@@ -1,32 +1,32 @@
 <!DOCTYPE HTML>
 <html>
-<!--
-https://bugzilla.mozilla.org/show_bug.cgi?id=668513
--->
 <head>
-  <title>Test for Bug 668513</title>
-  <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
-  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
+  <title>Test file for Bug 668513</title>
 <script>
-if (navigator.platform.startsWith("Linux")) {
-  SimpleTest.expectAssertions(0, 1);
-}
+  var SimpleTest = opener.SimpleTest;
+  var ok = opener.ok;
+  var is = opener.is;
+
+  function finish() {
+    SimpleTest.finish();
+    close();
+  }
 
   function onload_test()
   {
     var win = frames[0];
     ok(win.performance, 'Window.performance should be defined');
     ok(win.performance.navigation, 'Window.performance.navigation should be defined');
     var navigation = win.performance && win.performance.navigation;
     if (navigation === undefined)
     {
       // avoid script errors
-      SimpleTest.finish();
+      finish();
       return;
     }
 
     // do this with a timeout to see the visuals of the navigations.
     setTimeout("nav_frame();", 100);
   }
 
   var step = 1;
@@ -72,46 +72,36 @@ if (navigator.platform.startsWith("Linux
            'Expected timing.navigation.type as TYPE_NAVIGATE');
         is(navigation.redirectCount, 1, 
            'Expected navigation.redirectCount == 1 on an server redirected navigation');
 
         var timing = navigation_frame.performance && navigation_frame.performance.timing;
         if (timing === undefined)
         {
           // avoid script errors
-          SimpleTest.finish();
+          finish();
           break;
         }
         ok(timing.navigationStart > 0, 'navigationStart should be > 0');
         sequence = ['navigationStart', 'redirectStart', 'redirectEnd', 'fetchStart'];
         for (var j = 1; j < sequence.length; ++j) {
           var prop = sequence[j];
           var prevProp = sequence[j-1];
           ok(timing[prevProp] <= timing[prop],
              ['Expected ', prevProp, ' to happen before ', prop,
               ', got ', prevProp, ' = ', timing[prevProp],
               ', ', prop, ' = ', timing[prop]].join(''));
         }
         step++;
-        SimpleTest.finish();
+        finish();
       }
       default:
         break;
     }
   }
 </script>
 </head>
 <body>
-<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=668513">Mozilla Bug 668513</a>
 <div id="frames">
 <iframe name="child0" onload="onload_test();" src="navigation/blank.html"></iframe>
 </div>
-<p id="display"></p>
-<div id="content" style="display: none">
-
-</div>
-<pre id="test">
-<script type="application/javascript">
-SimpleTest.waitForExplicitFinish();
-</script>
-</pre>
 </body>
 </html>
--- a/docshell/test/mochitest.ini
+++ b/docshell/test/mochitest.ini
@@ -63,16 +63,17 @@ support-files = file_bug511449.html
 [test_bug634834.html]
 [test_bug637644.html]
 [test_bug640387_1.html]
 [test_bug640387_2.html]
 [test_bug653741.html]
 [test_bug660404.html]
 [test_bug662170.html]
 [test_bug668513.html]
+support-files = file_bug668513.html
 [test_bug669671.html]
 [test_bug675587.html]
 [test_bug680257.html]
 [test_bug691547.html]
 [test_bug694612.html]
 [test_bug703855.html]
 [test_bug713825.html]
 [test_bug728939.html]
--- a/docshell/test/test_bug668513.html
+++ b/docshell/test/test_bug668513.html
@@ -2,116 +2,27 @@
 <html>
 <!--
 https://bugzilla.mozilla.org/show_bug.cgi?id=668513
 -->
 <head>
   <title>Test for Bug 668513</title>
   <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
   <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
-<script>
-if (navigator.platform.startsWith("Linux")) {
-  SimpleTest.expectAssertions(0, 1);
-}
-
-  function onload_test()
-  {
-    var win = frames[0];
-    ok(win.performance, 'Window.performance should be defined');
-    ok(win.performance.navigation, 'Window.performance.navigation should be defined');
-    var navigation = win.performance && win.performance.navigation;
-    if (navigation === undefined)
-    {
-      // avoid script errors
-      SimpleTest.finish();
-      return;
-    }
-
-    // do this with a timeout to see the visuals of the navigations.
-    setTimeout("nav_frame();", 100);
-  }
-
-  var step = 1;
-  function nav_frame()
-  {
-    var navigation_frame = frames[0];
-    var navigation = navigation_frame.performance.navigation;
-    switch (step)
-    {
-      case 1:
-      {
-        navigation_frame.location.href = 'bug570341_recordevents.html';
-        step++;
-        break;
-      }
-      case 2:
-      {
-        is(navigation.type, navigation.TYPE_NAVIGATE,
-           'Expected window.performance.navigation.type == TYPE_NAVIGATE');
-        navigation_frame.history.back();
-        step++;
-        break;
-      }
-      case 3:
-      {
-        is(navigation.type, navigation.TYPE_BACK_FORWARD,
-           'Expected window.performance.navigation.type == TYPE_BACK_FORWARD');
-        step++;
-        navigation_frame.history.forward();
-        break;
-      }
-      case 4:
-      {
-        is(navigation.type, navigation.TYPE_BACK_FORWARD,
-           'Expected window.performance.navigation.type == TYPE_BACK_FORWARD');
-        navigation_frame.location.href = 'bug668513_redirect.html';
-        step++;
-        break;
-      }
-      case 5:
-      {
-        is(navigation.type, navigation.TYPE_NAVIGATE,
-           'Expected timing.navigation.type as TYPE_NAVIGATE');
-        is(navigation.redirectCount, 1, 
-           'Expected navigation.redirectCount == 1 on an server redirected navigation');
-
-        var timing = navigation_frame.performance && navigation_frame.performance.timing;
-        if (timing === undefined)
-        {
-          // avoid script errors
-          SimpleTest.finish();
-          break;
-        }
-        ok(timing.navigationStart > 0, 'navigationStart should be > 0');
-        sequence = ['navigationStart', 'redirectStart', 'redirectEnd', 'fetchStart'];
-        for (var j = 1; j < sequence.length; ++j) {
-          var prop = sequence[j];
-          var prevProp = sequence[j-1];
-          ok(timing[prevProp] <= timing[prop],
-             ['Expected ', prevProp, ' to happen before ', prop,
-              ', got ', prevProp, ' = ', timing[prevProp],
-              ', ', prop, ' = ', timing[prop]].join(''));
-        }
-        step++;
-        SimpleTest.finish();
-      }
-      default:
-        break;
-    }
-  }
-</script>
 </head>
 <body>
 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=668513">Mozilla Bug 668513</a>
-<div id="frames">
-<iframe name="child0" onload="onload_test();" src="navigation/blank.html"></iframe>
-</div>
 <p id="display"></p>
 <div id="content" style="display: none">
 
 </div>
 <pre id="test">
 <script type="application/javascript">
+if (navigator.platform.startsWith("Linux")) {
+  SimpleTest.expectAssertions(0, 1);
+}
+
 SimpleTest.waitForExplicitFinish();
+window.open("file_bug668513.html");
 </script>
 </pre>
 </body>
 </html>
--- a/testing/mochitest/b2g-debug.json
+++ b/testing/mochitest/b2g-debug.json
@@ -257,16 +257,17 @@
 
     "docshell/test/navigation/test_bug13871.html":"",
     "docshell/test/navigation/test_bug270414.html":"",
     "docshell/test/navigation/test_bug344861.html":"",
     "docshell/test/navigation/test_bug386782.html":"",
     "docshell/test/navigation/test_not-opener.html":"",
     "docshell/test/navigation/test_reserved.html":"",
     "docshell/test/test_bug413310.html":"",
+    "docshell/test/test_bug668513.html":"",
 
     "dom/imptests/html/webgl":"",        
     "dom/battery/test/test_battery_basics.html":"",
     "dom/browser-element/mochitest/test_browserElement_inproc_Alert.html":"",
     "dom/browser-element/mochitest/test_browserElement_inproc_AppFramePermission.html":"",
     "dom/browser-element/mochitest/test_browserElement_inproc_AppWindowNamespace.html":"",
     "dom/browser-element/mochitest/test_browserElement_inproc_Auth.html":"",
     "dom/browser-element/mochitest/test_browserElement_inproc_BrowserWindowNamespace.html":"",
--- a/testing/mochitest/b2g-desktop.json
+++ b/testing/mochitest/b2g-desktop.json
@@ -519,16 +519,17 @@
     "docshell/test/test_bug509055.html": "Bug 931116, b2g desktop specific, initial triage",
     "docshell/test/test_bug529119-1.html": "Bug 931116, b2g desktop specific, initial triage",
     "docshell/test/test_bug529119-2.html": "Bug 931116, b2g desktop specific, initial triage",
     "docshell/test/test_bug540462.html": "Bug 931116, b2g desktop specific, initial triage",
     "docshell/test/test_bug598895.html": "Bug 931116, b2g desktop specific, initial triage",
     "docshell/test/test_bug637644.html": "Bug 931116, b2g desktop specific, initial triage",
     "docshell/test/test_bug640387_1.html": "Bug 931116, b2g desktop specific, initial triage",
     "docshell/test/test_bug660404.html": "Bug 931116, b2g desktop specific, initial triage",
+    "docshell/test/test_bug668513.html": "Bug 931116, b2g desktop specific, initial triage",
     "docshell/test/test_bug669671.html": "Bug 931116, b2g desktop specific, initial triage",
     "docshell/test/test_bug680257.html": "Bug 931116, b2g desktop specific, initial triage",
     "docshell/test/test_bug728939.html": "Bug 931116, b2g desktop specific, initial triage",
     "docshell/test/test_windowedhistoryframes.html": "Bug 931116, b2g desktop specific, initial triage",
     "dom/alarm/test/test_alarm_add_data.html": "Bug 931116, b2g desktop specific, initial triage",
     "dom/alarm/test/test_alarm_add_date.html": "Bug 931116, b2g desktop specific, initial triage",
     "dom/alarm/test/test_alarm_add_respectTimezone.html": "Bug 931116, b2g desktop specific, initial triage",
     "dom/alarm/test/test_alarm_remove.html": "Bug 931116, b2g desktop specific, initial triage",
--- a/testing/mochitest/b2g.json
+++ b/testing/mochitest/b2g.json
@@ -220,16 +220,17 @@
     "content/base/test/test_bug424359-2.html":"",
     "content/base/test/test_mixed_content_blocker_bug803225.html":"",
     "content/html/document/test/test_non-ascii-cookie.html":"",
 
     "docshell/test/navigation/test_bug13871.html":"",
     "docshell/test/navigation/test_bug270414.html":"",
     "docshell/test/navigation/test_not-opener.html":"",
     "docshell/test/test_bug413310.html":"",
+    "docshell/test/test_bug668513.html":"",
 
     "dom/imptests/html/webgl":"",
 
     "dom/browser-element/mochitest/test_browserElement_inproc_Alert.html":"",
     "dom/browser-element/mochitest/test_browserElement_inproc_AppFramePermission.html":"",
     "dom/browser-element/mochitest/test_browserElement_inproc_AppWindowNamespace.html":"",
     "dom/browser-element/mochitest/test_browserElement_inproc_Auth.html":"",
     "dom/browser-element/mochitest/test_browserElement_inproc_BrowserWindowNamespace.html":"",