browser/base/content/test/general/browser_keywordSearch_postData.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     expectText: "test+search"
    11   },
    12   {
    13     name: "?-prefixed search (search service)",
    14     testText: "?   foo  ",
    15     expectText: "foo"
    16   }
    17 ];
    19 function test() {
    20   waitForExplicitFinish();
    22   let tab = gBrowser.selectedTab = gBrowser.addTab();
    24   let searchObserver = function search_observer(aSubject, aTopic, aData) {
    25     let engine = aSubject.QueryInterface(Ci.nsISearchEngine);
    26     info("Observer: " + aData + " for " + engine.name);
    28     if (aData != "engine-added")
    29       return;
    31     if (engine.name != "POST Search")
    32       return;
    34     Services.search.defaultEngine = engine;
    36     registerCleanupFunction(function () {
    37       Services.search.removeEngine(engine);
    38     });
    40     // ready to execute the tests!
    41     executeSoon(nextTest);
    42   };
    44   Services.obs.addObserver(searchObserver, "browser-search-engine-modified", false);
    46   registerCleanupFunction(function () {
    47     gBrowser.removeTab(tab);
    49     Services.obs.removeObserver(searchObserver, "browser-search-engine-modified");
    50   });
    52   Services.search.addEngine("http://test:80/browser/browser/base/content/test/general/POSTSearchEngine.xml",
    53                             Ci.nsISearchEngine.DATA_XML, null, false);
    54 }
    56 var gCurrTest;
    57 function nextTest() {
    58   if (gTests.length) {
    59     gCurrTest = gTests.shift();
    60     doTest();
    61   } else {
    62     finish();
    63   }
    64 }
    66 function doTest() {
    67   info("Running test: " + gCurrTest.name);
    69   waitForLoad(function () {
    70     let loadedText = gBrowser.contentDocument.body.textContent;
    71     ok(loadedText, "search page loaded");
    72     let needle = "searchterms=" + gCurrTest.expectText;
    73     is(loadedText, needle, "The query POST data should be returned in the response");
    74     nextTest();
    75   });
    77   // Simulate a user entering search terms
    78   gURLBar.value = gCurrTest.testText;
    79   gURLBar.focus();
    80   EventUtils.synthesizeKey("VK_RETURN", {});
    81 }
    84 function waitForLoad(cb) {
    85   let browser = gBrowser.selectedBrowser;
    86   browser.addEventListener("load", function listener() {
    87     if (browser.currentURI.spec == "about:blank")
    88       return;
    89     info("Page loaded: " + browser.currentURI.spec);
    90     browser.removeEventListener("load", listener, true);
    92     cb();
    93   }, true);
    94 }

mercurial