docshell/test/browser/browser_bug503832.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /* Test for Bug 503832
     2  * https://bugzilla.mozilla.org/show_bug.cgi?id=503832
     3  */
     5 function test() {
     6     waitForExplicitFinish();
     8     var pagetitle = "Page Title for Bug 503832";
     9     var pageurl = "http://mochi.test:8888/browser/docshell/test/browser/file_bug503832.html";
    10     var fragmenturl = "http://mochi.test:8888/browser/docshell/test/browser/file_bug503832.html#firefox";
    12     /* Global history observer that triggers for the two test URLs above. */
    13     var historyObserver = {
    14         onBeginUpdateBatch: function() {},
    15         onEndUpdateBatch: function() {},
    16         onVisit: function(aURI, aVisitID, aTime, aSessionId, aReferringId,
    17                           aTransitionType, _added) {},
    18         onTitleChanged: function(aURI, aPageTitle) {
    19             aURI = aURI.spec;
    20             switch (aURI) {
    21             case pageurl:
    22                 is(aPageTitle, pagetitle, "Correct page title for " + aURI);
    23                 return;
    24             case fragmenturl:
    25                 is(aPageTitle, pagetitle, "Correct page title for " + aURI);
    26                 // If titles for fragment URLs aren't set, this code
    27                 // branch won't be called and the test will timeout,
    28                 // resulting in a failure
    29                 historyService.removeObserver(historyObserver, false);
    31                 gBrowser.removeCurrentTab();
    33                 finish();
    34             }
    35         },
    36         onDeleteURI: function(aURI) {},
    37         onClearHistory: function() {},
    38         onPageChanged: function(aURI, aWhat, aValue) {},
    39         onDeleteVisits: function () {},
    40         QueryInterface: function(iid) {
    41             if (iid.equals(Ci.nsINavHistoryObserver) ||
    42                 iid.equals(Ci.nsISupports)) {
    43                 return this;
    44             }
    45             throw Cr.NS_ERROR_NO_INTERFACE;
    46         }
    47     };
    49     var historyService = Cc["@mozilla.org/browser/nav-history-service;1"]
    50                          .getService(Ci.nsINavHistoryService);
    51     historyService.addObserver(historyObserver, false);
    53     /* Queries nsINavHistoryService and returns a single history entry
    54      * for a given URI */
    55     function getNavHistoryEntry(aURI) {
    56         var options = historyService.getNewQueryOptions();
    57         options.queryType = Ci.nsINavHistoryQueryOptions.QUERY_TYPE_HISTORY;
    58         options.maxResults = 1;
    60         var query = historyService.getNewQuery();
    61         query.uri = aURI;
    63         var result = historyService.executeQuery(query, options);
    64         result.root.containerOpen = true;
    66         if (!result.root.childCount) {
    67             return null;
    68         }
    69         var node = result.root.getChild(0);
    70         result.root.containerOpen = false;
    71         return node;
    72     }
    75     function onPageLoad() {
    76         gBrowser.selectedBrowser.removeEventListener(
    77             "DOMContentLoaded", onPageLoad, true);
    79         // Now that the page is loaded, click on fragment link
    80         EventUtils.sendMouseEvent({type:'click'}, 'firefox-link',
    81                                   gBrowser.selectedBrowser.contentWindow);
    83         // Test finishes in historyObserver.onTitleChanged() above
    84     }
    86     // Make sure neither of the test pages haven't been loaded before.
    87     var info = getNavHistoryEntry(makeURI(pageurl));
    88     ok(!info, "The test page must not have been visited already.");
    89     info = getNavHistoryEntry(makeURI(fragmenturl));
    90     ok(!info, "The fragment test page must not have been visited already.");
    92     // Now open the test page in a new tab
    93     gBrowser.selectedTab = gBrowser.addTab();
    94     gBrowser.selectedBrowser.addEventListener(
    95         "DOMContentLoaded", onPageLoad, true);
    96     content.location = pageurl;
    97 }

mercurial