michael@0: function test() { michael@0: waitForExplicitFinish(); michael@0: testNext(); michael@0: } michael@0: michael@0: var pairs = [ michael@0: ["example", "http://www.example.net/"], michael@0: ["ex-ample", "http://www.ex-ample.net/"], michael@0: [" example ", "http://www.example.net/"], michael@0: [" example/foo ", "http://www.example.net/foo"], michael@0: [" example/foo bar ", "http://www.example.net/foo%20bar"], michael@0: ["example.net", "http://example.net/"], michael@0: ["http://example", "http://example/"], michael@0: ["example:8080", "http://example:8080/"], michael@0: ["ex-ample.foo", "http://ex-ample.foo/"], michael@0: ["example.foo/bar ", "http://example.foo/bar"], michael@0: ["1.1.1.1", "http://1.1.1.1/"], michael@0: ["ftp://example", "ftp://example/"], michael@0: ["ftp.example.bar", "ftp://ftp.example.bar/"], michael@0: ["ex ample", Services.search.defaultEngine.getSubmission("ex ample", null, "keyword").uri.spec], michael@0: ]; michael@0: michael@0: function testNext() { michael@0: if (!pairs.length) { michael@0: finish(); michael@0: return; michael@0: } michael@0: michael@0: let [inputValue, expectedURL] = pairs.shift(); michael@0: michael@0: gBrowser.addProgressListener({ michael@0: onStateChange: function onStateChange(aWebProgress, aRequest, aStateFlags, aStatus) { michael@0: if (aStateFlags & Ci.nsIWebProgressListener.STATE_START && michael@0: aStateFlags & Ci.nsIWebProgressListener.STATE_IS_NETWORK) { michael@0: is(aRequest.originalURI.spec, expectedURL, michael@0: "entering '" + inputValue + "' loads expected URL"); michael@0: michael@0: gBrowser.removeProgressListener(this); michael@0: gBrowser.stop(); michael@0: michael@0: executeSoon(testNext); michael@0: } michael@0: } michael@0: }); michael@0: michael@0: gURLBar.addEventListener("focus", function onFocus() { michael@0: gURLBar.removeEventListener("focus", onFocus); michael@0: EventUtils.synthesizeKey("VK_RETURN", { shiftKey: true }); michael@0: }); michael@0: michael@0: gBrowser.selectedBrowser.focus(); michael@0: gURLBar.inputField.value = inputValue; michael@0: gURLBar.focus(); michael@0: }