mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-14 15:37:55 +00:00
d9866baf99
--HG-- rename : browser/base/content/test/browser_keywordSearch.js => browser/base/content/test/browser_keywordSearch_postData.js rename : content/base/test/bug435425.sjs => browser/base/content/test/print_postdata.sjs
95 lines
2.3 KiB
JavaScript
95 lines
2.3 KiB
JavaScript
/**
|
|
* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/
|
|
**/
|
|
|
|
var gTests = [
|
|
{
|
|
name: "normal search (search service)",
|
|
testText: "test search",
|
|
expectText: "test+search"
|
|
},
|
|
{
|
|
name: "?-prefixed search (search service)",
|
|
testText: "? foo ",
|
|
expectText: "foo"
|
|
}
|
|
];
|
|
|
|
function test() {
|
|
waitForExplicitFinish();
|
|
|
|
let tab = gBrowser.selectedTab = gBrowser.addTab();
|
|
|
|
let searchObserver = function search_observer(aSubject, aTopic, aData) {
|
|
let engine = aSubject.QueryInterface(Ci.nsISearchEngine);
|
|
info("Observer: " + aData + " for " + engine.name);
|
|
|
|
if (aData != "engine-added")
|
|
return;
|
|
|
|
if (engine.name != "POST Search")
|
|
return;
|
|
|
|
Services.search.defaultEngine = engine;
|
|
|
|
registerCleanupFunction(function () {
|
|
Services.search.removeEngine(engine);
|
|
});
|
|
|
|
// ready to execute the tests!
|
|
executeSoon(nextTest);
|
|
};
|
|
|
|
Services.obs.addObserver(searchObserver, "browser-search-engine-modified", false);
|
|
|
|
registerCleanupFunction(function () {
|
|
gBrowser.removeTab(tab);
|
|
|
|
Services.obs.removeObserver(searchObserver, "browser-search-engine-modified");
|
|
});
|
|
|
|
Services.search.addEngine("http://test:80/browser/browser/base/content/test/POSTSearchEngine.xml",
|
|
Ci.nsISearchEngine.DATA_XML, null, false);
|
|
}
|
|
|
|
var gCurrTest;
|
|
function nextTest() {
|
|
if (gTests.length) {
|
|
gCurrTest = gTests.shift();
|
|
doTest();
|
|
} else {
|
|
finish();
|
|
}
|
|
}
|
|
|
|
function doTest() {
|
|
info("Running test: " + gCurrTest.name);
|
|
|
|
waitForLoad(function () {
|
|
let loadedText = gBrowser.contentDocument.body.textContent;
|
|
ok(loadedText, "search page loaded");
|
|
let needle = "searchterms=" + gCurrTest.expectText;
|
|
is(loadedText, needle, "The query POST data should be returned in the response");
|
|
nextTest();
|
|
});
|
|
|
|
// Simulate a user entering search terms
|
|
gURLBar.value = gCurrTest.testText;
|
|
gURLBar.focus();
|
|
EventUtils.synthesizeKey("VK_RETURN", {});
|
|
}
|
|
|
|
|
|
function waitForLoad(cb) {
|
|
let browser = gBrowser.selectedBrowser;
|
|
browser.addEventListener("load", function listener() {
|
|
if (browser.currentURI.spec == "about:blank")
|
|
return;
|
|
info("Page loaded: " + browser.currentURI.spec);
|
|
browser.removeEventListener("load", listener, true);
|
|
|
|
cb();
|
|
}, true);
|
|
}
|