diff -r 000000000000 -r 6474c204b198 browser/base/content/test/general/browser_addKeywordSearch.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/browser/base/content/test/general/browser_addKeywordSearch.js Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,47 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ + +function test() { + waitForExplicitFinish(); + + gBrowser.selectedTab = gBrowser.addTab("http://example.org/browser/browser/base/content/test/general/dummy_page.html"); + + gBrowser.selectedBrowser.addEventListener("load", function runTests() { + gBrowser.selectedBrowser.removeEventListener("load", runTests, true); + + let doc = gBrowser.contentDocument; + let base = doc.createElement("base"); + doc.head.appendChild(base); + + let check = function (baseURI, fieldName, expected) { + base.href = baseURI; + + let form = doc.createElement("form"); + let element = doc.createElement("input"); + element.setAttribute("type", "text"); + element.setAttribute("name", fieldName); + form.appendChild(element); + doc.body.appendChild(form); + + let data = GetSearchFieldBookmarkData(element); + is(data.spec, expected, "Bookmark spec for search field named " + fieldName + " and baseURI " + baseURI + " incorrect"); + + doc.body.removeChild(form); + } + + let testData = [ + /* baseURI, field name, expected */ + [ 'http://example.com/', 'q', 'http://example.com/?q=%s' ], + [ 'http://example.com/new-path-here/', 'q', 'http://example.com/new-path-here/?q=%s' ], + [ '', 'q', 'http://example.org/browser/browser/base/content/test/general/dummy_page.html?q=%s' ], + ] + + for (let data of testData) { + check(data[0], data[1], data[2]); + } + + // cleanup + gBrowser.removeCurrentTab(); + finish(); + }, true); +}