browser/base/content/test/general/browser_keywordSearch.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 /**
     2  * Any copyright is dedicated to the Public Domain.
     3  * http://creativecommons.org/publicdomain/zero/1.0/
     4  **/
     6 var gTests = [
     7   {
     8     name: "normal search (search service)",
     9     testText: "test search",
    10     searchURL: Services.search.defaultEngine.getSubmission("test search", null, "keyword").uri.spec
    11   },
    12   {
    13     name: "?-prefixed search (search service)",
    14     testText: "?   foo  ",
    15     searchURL: Services.search.defaultEngine.getSubmission("foo", null, "keyword").uri.spec
    16   }
    17 ];
    19 function test() {
    20   waitForExplicitFinish();
    22   let windowObserver = {
    23     observe: function(aSubject, aTopic, aData) {
    24       if (aTopic == "domwindowopened") {
    25         ok(false, "Alert window opened");
    26         let win = aSubject.QueryInterface(Ci.nsIDOMEventTarget);
    27         win.addEventListener("load", function() {
    28           win.removeEventListener("load", arguments.callee, false);
    29           win.close();
    30         }, false);
    31         executeSoon(finish);
    32       }
    33     }
    34   };
    36   Services.ww.registerNotification(windowObserver);
    38   let tab = gBrowser.selectedTab = gBrowser.addTab();
    40   let listener = {
    41     onStateChange: function onLocationChange(webProgress, req, flags, status) {
    42       // Only care about document starts
    43       let docStart = Ci.nsIWebProgressListener.STATE_IS_DOCUMENT |
    44                      Ci.nsIWebProgressListener.STATE_START;
    45       if (!(flags & docStart))
    46         return;
    48       info("received document start");
    50       ok(req instanceof Ci.nsIChannel, "req is a channel");
    51       is(req.originalURI.spec, gCurrTest.searchURL, "search URL was loaded");
    52       info("Actual URI: " + req.URI.spec);
    54       req.cancel(Components.results.NS_ERROR_FAILURE);
    56       executeSoon(nextTest);
    57     }
    58   };
    59   gBrowser.addProgressListener(listener);
    61   registerCleanupFunction(function () {
    62     Services.ww.unregisterNotification(windowObserver);
    64     gBrowser.removeProgressListener(listener);
    65     gBrowser.removeTab(tab);
    66   });
    68   nextTest();
    69 }
    71 var gCurrTest;
    72 function nextTest() {
    73   if (gTests.length) {
    74     gCurrTest = gTests.shift();
    75     doTest();
    76   } else {
    77     finish();
    78   }
    79 }
    81 function doTest() {
    82   info("Running test: " + gCurrTest.name);
    84   // Simulate a user entering search terms
    85   gURLBar.value = gCurrTest.testText;
    86   gURLBar.focus();
    87   EventUtils.synthesizeKey("VK_RETURN", {});
    88 }

mercurial