Wed, 31 Dec 2014 06:09:35 +0100
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 }