summaryrefslogtreecommitdiff
path: root/browser/base/content/test/browser_canonizeURL.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/base/content/test/browser_canonizeURL.js')
-rw-r--r--browser/base/content/test/browser_canonizeURL.js54
1 files changed, 54 insertions, 0 deletions
diff --git a/browser/base/content/test/browser_canonizeURL.js b/browser/base/content/test/browser_canonizeURL.js
new file mode 100644
index 000000000..983d0941c
--- /dev/null
+++ b/browser/base/content/test/browser_canonizeURL.js
@@ -0,0 +1,54 @@
+function test() {
+ waitForExplicitFinish();
+ testNext();
+}
+
+var pairs = [
+ ["example", "http://www.example.net/"],
+ ["ex-ample", "http://www.ex-ample.net/"],
+ [" example ", "http://www.example.net/"],
+ [" example/foo ", "http://www.example.net/foo"],
+ [" example/foo bar ", "http://www.example.net/foo%20bar"],
+ ["example.net", "http://example.net/"],
+ ["http://example", "http://example/"],
+ ["example:8080", "http://example:8080/"],
+ ["ex-ample.foo", "http://ex-ample.foo/"],
+ ["example.foo/bar ", "http://example.foo/bar"],
+ ["1.1.1.1", "http://1.1.1.1/"],
+ ["ftp://example", "ftp://example/"],
+ ["ftp.example.bar", "ftp://ftp.example.bar/"],
+ ["ex ample", Services.search.defaultEngine.getSubmission("ex ample", null, "keyword").uri.spec],
+];
+
+function testNext() {
+ if (!pairs.length) {
+ finish();
+ return;
+ }
+
+ let [inputValue, expectedURL] = pairs.shift();
+
+ gBrowser.addProgressListener({
+ onStateChange: function onStateChange(aWebProgress, aRequest, aStateFlags, aStatus) {
+ if (aStateFlags & Ci.nsIWebProgressListener.STATE_START &&
+ aStateFlags & Ci.nsIWebProgressListener.STATE_IS_NETWORK) {
+ is(aRequest.originalURI.spec, expectedURL,
+ "entering '" + inputValue + "' loads expected URL");
+
+ gBrowser.removeProgressListener(this);
+ gBrowser.stop();
+
+ executeSoon(testNext);
+ }
+ }
+ });
+
+ gURLBar.addEventListener("focus", function onFocus() {
+ gURLBar.removeEventListener("focus", onFocus);
+ EventUtils.synthesizeKey("VK_RETURN", { shiftKey: true });
+ });
+
+ gBrowser.selectedBrowser.focus();
+ gURLBar.inputField.value = inputValue;
+ gURLBar.focus();
+}