michael@0: /* Any copyright is dedicated to the Public Domain. michael@0: * http://creativecommons.org/publicdomain/zero/1.0/ */ michael@0: michael@0: function test() { michael@0: waitForExplicitFinish(); michael@0: michael@0: gBrowser.selectedTab = gBrowser.addTab("http://example.org/browser/browser/base/content/test/general/dummy_page.html"); michael@0: michael@0: gBrowser.selectedBrowser.addEventListener("load", function runTests() { michael@0: gBrowser.selectedBrowser.removeEventListener("load", runTests, true); michael@0: michael@0: let doc = gBrowser.contentDocument; michael@0: let base = doc.createElement("base"); michael@0: doc.head.appendChild(base); michael@0: michael@0: let check = function (baseURI, fieldName, expected) { michael@0: base.href = baseURI; michael@0: michael@0: let form = doc.createElement("form"); michael@0: let element = doc.createElement("input"); michael@0: element.setAttribute("type", "text"); michael@0: element.setAttribute("name", fieldName); michael@0: form.appendChild(element); michael@0: doc.body.appendChild(form); michael@0: michael@0: let data = GetSearchFieldBookmarkData(element); michael@0: is(data.spec, expected, "Bookmark spec for search field named " + fieldName + " and baseURI " + baseURI + " incorrect"); michael@0: michael@0: doc.body.removeChild(form); michael@0: } michael@0: michael@0: let testData = [ michael@0: /* baseURI, field name, expected */ michael@0: [ 'http://example.com/', 'q', 'http://example.com/?q=%s' ], michael@0: [ 'http://example.com/new-path-here/', 'q', 'http://example.com/new-path-here/?q=%s' ], michael@0: [ '', 'q', 'http://example.org/browser/browser/base/content/test/general/dummy_page.html?q=%s' ], michael@0: ] michael@0: michael@0: for (let data of testData) { michael@0: check(data[0], data[1], data[2]); michael@0: } michael@0: michael@0: // cleanup michael@0: gBrowser.removeCurrentTab(); michael@0: finish(); michael@0: }, true); michael@0: }