docshell/test/test_bug509055.html

Wed, 31 Dec 2014 13:27:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 13:27:57 +0100
branch
TOR_BUG_3246
changeset 6
8bccb770b82d
permissions
-rw-r--r--

Ignore runtime configuration files generated during quality assurance.

     1 <!DOCTYPE HTML>
     2 <html>
     3 <!--
     4 https://bugzilla.mozilla.org/show_bug.cgi?id=509055
     5 -->
     6 <head>
     7   <title>Test for Bug 509055</title>
     8   <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
     9   <script type="application/javascript" src="/tests/SimpleTest/EventUtils.js"></script>
    10   <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
    11 </head>
    12 <body>
    13 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=509055">Mozilla Bug 509055</a>
    14 <p id="display"></p>
    15 <div id="status"></div>
    16 <div id="content">
    17 </div>
    18 <pre id="test">
    19 <script type="application/javascript;version=1.7">
    21 /** Test for Bug 509055 **/
    23 SimpleTest.waitForExplicitFinish();
    25 var gGen;
    27 function shortWait() {
    28   setTimeout(function() { gGen.next(); }, 0, false);
    29 }
    31 function onChildHashchange(e) {
    32   // gGen might be undefined when we refresh the page, so we have to check here
    33   dump("onChildHashchange() called.\n");
    34   if(gGen)
    35     gGen.next();
    36 }
    38 function onChildLoad(e) {
    39   if(gGen)
    40     gGen.next();
    41 }
    43 function runTest() {
    44   var popup = window.open("file_bug509055.html", "popup 0",
    45                            "height=200,width=200,location=yes," +
    46                            "menubar=yes,status=yes,toolbar=yes,dependent=yes");
    47   popup.hashchangeCallback = onChildHashchange;
    48   popup.onload = onChildLoad;
    49   dump('Waiting for initial load.\n');
    50   yield undefined;
    52   // Without this wait, the change to location.hash below doesn't create a
    53   // SHEntry or enable the back button.
    54   shortWait();
    55   dump('Got initial load.  Spinning event loop.\n');
    56   yield undefined;
    58   popup.location.hash = "#1";
    59   dump('Waiting for hashchange.\n');
    60   yield undefined;
    62   popup.history.back();
    63   dump('Waiting for second hashchange.\n');
    64   yield undefined; // wait for hashchange
    66   popup.document.title = "Changed";
    68   // Wait for listeners to be notified of the title change.
    69   shortWait();
    70   dump('Got second hashchange.  Spinning event loop.\n');
    71   yield undefined;
    73   var sh = SpecialPowers.wrap(popup)
    74                         .QueryInterface(SpecialPowers.Ci.nsIInterfaceRequestor)
    75                         .getInterface(SpecialPowers.Ci.nsIWebNavigation)
    76                         .sessionHistory;
    78   // Get the title of the inner popup's current SHEntry 
    79   var sheTitle = sh.getEntryAtIndex(sh.index, false).title;
    80   is(sheTitle, "Changed", "SHEntry's title should change when we change.");
    82   popup.close();
    84   SimpleTest.executeSoon(SimpleTest.finish);
    85   dump('Final yield.\n');
    86   yield undefined;
    87 }
    89 window.addEventListener('load', function() {
    90   gGen = runTest();
    91   gGen.next();
    92 }, false);
    94 </script>
    96 </body>
    97 </html>

mercurial