summaryrefslogtreecommitdiffstats
path: root/LayoutTests/fast/dom/HTMLAnchorElement/script-tests/set-href-attribute-search.js
diff options
context:
space:
mode:
Diffstat (limited to 'LayoutTests/fast/dom/HTMLAnchorElement/script-tests/set-href-attribute-search.js')
-rw-r--r--LayoutTests/fast/dom/HTMLAnchorElement/script-tests/set-href-attribute-search.js49
1 files changed, 49 insertions, 0 deletions
diff --git a/LayoutTests/fast/dom/HTMLAnchorElement/script-tests/set-href-attribute-search.js b/LayoutTests/fast/dom/HTMLAnchorElement/script-tests/set-href-attribute-search.js
new file mode 100644
index 0000000..5b90a04
--- /dev/null
+++ b/LayoutTests/fast/dom/HTMLAnchorElement/script-tests/set-href-attribute-search.js
@@ -0,0 +1,49 @@
+description('Test setting the search attribute of the URL in HTMLAnchorElement .');
+
+var a = document.createElement('a');
+
+debug("Set search without '?'");
+a.href = "https://www.mydomain.com/path/?key=value";
+a.search = "value=key";
+shouldBe("a.href", "'https://www.mydomain.com/path/?value=key'");
+
+// IE8 does not encode spaces in search string
+debug("Set search that starts with '?' and contains spaces");
+a.href = "https://www.mydomain.com/path/?key=value";
+a.search = "?val ue= key?";
+shouldBe("a.href", "'https://www.mydomain.com/path/?val%20ue=%20key?'");
+
+debug("Set search to a malformed URL");
+a.href = "s:www.mydomain.com/path/";
+a.search = "%";
+shouldBe("a.href", "'s:www.mydomain.com/path/?%'");
+
+// IE8 throws "The URL is invalid" exception.
+debug("Set search containing '#'");
+try {
+a.href = "https://www.mydomain.com/path/?key=value#hash";
+a.search = "?value#key";
+shouldBe("a.href", "'https://www.mydomain.com/path/?value%23key#hash'");
+} catch(e) {
+debug("Exception: " + e.description);
+}
+
+debug("Set search to a malformed URL");
+a.href = "bad:/|/url";
+a.search = "?value=key";
+shouldBe("a.href", "'bad:/|/url?value=key'");
+
+// IE8 converts null to "null", which is not the right thing to do.
+debug("Set search to null");
+a.href = "https://www.mydomain.com/path/?key=value";
+a.search = null;
+shouldBe("a.href", "'https://www.mydomain.com/path/'");
+
+// Firefox 3.5.2 Removes the '?', and it shouldn't, per
+// http://dev.w3.org/html5/spec/infrastructure.html#url-decomposition-idl-attributes .
+debug("Set search to empty string");
+a.href = "https://www.mydomain.com/path/?key=value";
+a.search = "";
+shouldBe("a.href", "'https://www.mydomain.com/path/?'");
+
+var successfullyParsed = true;