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 192551 99b73fc758d4cde0274750571ff45f839f146c51
parent 192550 4a17516e09e896c3c7576358a98bd8b1e442763a
child 192552 e9425077bd84e1a8fc05279f07b07e2404dbeb54
push id474
push userasasaki@mozilla.com
push dateMon, 02 Jun 2014 21:01:02 +0000
treeherdermozilla-release@967f4cf1b31c [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersbzbarsky, test-only
bugs919208, 668513
milestone30.0a2
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
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
@@ -77,17 +77,18 @@ skip-if = (buildapp == 'b2g' && toolkit 
 [test_bug640387_1.html]
 skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
 [test_bug640387_2.html]
 [test_bug653741.html]
 [test_bug660404.html]
 skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
 [test_bug662170.html]
 [test_bug668513.html]
-skip-if = toolkit == 'android' #RANDOM
+skip-if = (buildapp == 'b2g' && toolkit != 'gonk') || toolkit == 'android' #Bug 931116, b2g desktop specific, initial triage
+support-files = file_bug668513.html
 [test_bug669671.html]
 skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
 [test_bug675587.html]
 [test_bug680257.html]
 skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
 [test_bug691547.html]
 [test_bug694612.html]
 [test_bug703855.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>