Blame docshell/test/chrome/bug582176_window.xul

Packit f0b94e
Packit f0b94e
Packit f0b94e
Packit f0b94e
Packit f0b94e
        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
Packit f0b94e
        width="600"
Packit f0b94e
        height="600"
Packit f0b94e
        onload="nextTestAsync();"
Packit f0b94e
        title="bug 582176 test">
Packit f0b94e
Packit f0b94e
  <script type="application/javascript" src= "chrome://mochikit/content/chrome-harness.js" />
Packit f0b94e
  <script type="application/javascript" src="docshell_helpers.js" />
Packit f0b94e
  <script type="application/javascript">
Packit f0b94e
  
Packit f0b94e
    // Define the generator-iterator for the tests.
Packit f0b94e
    var tests = testIterator();
Packit f0b94e
Packit f0b94e
    ////
Packit f0b94e
    // Execute the next test in the generator function.
Packit f0b94e
    //
Packit f0b94e
    function nextTestAsync() {
Packit f0b94e
      SimpleTest.executeSoon(tests.next.bind(tests));
Packit f0b94e
    }
Packit f0b94e
Packit f0b94e
    ////
Packit f0b94e
    // Generator function for test steps for bug 582176:
Packit f0b94e
    // Description goes here.
Packit f0b94e
    //
Packit f0b94e
    function* testIterator()
Packit f0b94e
    {
Packit f0b94e
      var browser = document.getElementById('content');
Packit f0b94e
      browser.addEventListener("pageshow", nextTestAsync, true);
Packit f0b94e
Packit f0b94e
      enableBFCache(true);
Packit f0b94e
Packit f0b94e
      var notificationCount = 0;
Packit f0b94e
      var observer = {
Packit f0b94e
        observe: function(aSubject, aTopic, aData) {
Packit f0b94e
          is(aSubject, browser.contentWindow,
Packit f0b94e
             "correct subject");
Packit f0b94e
          is(aTopic, "content-document-global-created",
Packit f0b94e
             "correct topic");
Packit f0b94e
          is(aData, "http://mochi.test:8888",
Packit f0b94e
             "correct data");
Packit f0b94e
          notificationCount++;
Packit f0b94e
        }
Packit f0b94e
      };
Packit f0b94e
Packit f0b94e
      os = Cc["@mozilla.org/observer-service;1"].
Packit f0b94e
        getService(Ci.nsIObserverService);
Packit f0b94e
      os.addObserver(observer, "content-document-global-created");
Packit f0b94e
Packit f0b94e
      browser.loadURI("http://mochi.test:8888/tests/docshell/test/chrome/582176_dummy.html");
Packit f0b94e
      yield undefined;
Packit f0b94e
      is(browser.contentWindow.testVar, undefined,
Packit f0b94e
         "variable unexpectedly there already");
Packit f0b94e
      browser.contentWindow.wrappedJSObject.testVar = 1;
Packit f0b94e
      is(notificationCount, 1, "Should notify on first navigation");
Packit f0b94e
Packit f0b94e
      browser.loadURI("http://mochi.test:8888/tests/docshell/test/chrome/582176_dummy.html?2");
Packit f0b94e
      yield undefined;
Packit f0b94e
      is(browser.contentWindow.wrappedJSObject.testVar, undefined,
Packit f0b94e
         "variable should no longer be there");
Packit f0b94e
      is(notificationCount, 2, "Should notify on second navigation");
Packit f0b94e
Packit f0b94e
      browser.goBack();
Packit f0b94e
      yield undefined;
Packit f0b94e
      is(browser.contentWindow.wrappedJSObject.testVar, 1,
Packit f0b94e
         "variable should still be there");
Packit f0b94e
      is(notificationCount, 2, "Should not notify on back navigation");
Packit f0b94e
Packit f0b94e
      browser.loadURI("http://mochi.test:8888/tests/docshell/test/chrome/582176_xml.xml");
Packit f0b94e
      yield undefined;
Packit f0b94e
      is(browser.contentDocument.body.textContent, "xslt result",
Packit f0b94e
         "Transform performed successfully");
Packit f0b94e
      is(notificationCount, 3, "Should notify only once on XSLT navigation");
Packit f0b94e
Packit f0b94e
      os.removeObserver(observer, "content-document-global-created")
Packit f0b94e
Packit f0b94e
      // Tell the framework the test is finished.
Packit f0b94e
      finish();
Packit f0b94e
    }
Packit f0b94e
    
Packit f0b94e
  ]]></script>
Packit f0b94e
  <browser type="content" primary="true" flex="1" id="content" src="about:blank"/>
Packit f0b94e
</window>