| Index: third_party/WebKit/LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-hash.html
|
| diff --git a/third_party/WebKit/LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-hash.html b/third_party/WebKit/LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-hash.html
|
| index ca9e4ddb8ac31beed0a613db82523e402f9890d5..9c799679b65142aa049154b99e968e69371dd9e6 100644
|
| --- a/third_party/WebKit/LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-hash.html
|
| +++ b/third_party/WebKit/LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-hash.html
|
| @@ -4,6 +4,72 @@
|
| <script src="../../../resources/js-test.js"></script>
|
| </head>
|
| <body>
|
| -<script src="script-tests/set-href-attribute-hash.js"></script>
|
| +<script>
|
| +description('Test setting the hash attribute of the URL in HTMLAnchorElement.');
|
| +
|
| +var a = document.createElement('a');
|
| +
|
| +debug("Hash value does not start with '#'");
|
| +a.href = "https://www.mydomain.com:8080/path/testurl.html#middle";
|
| +a.hash = "hash-value";
|
| +shouldBe("a.href", "'https://www.mydomain.com:8080/path/testurl.html#hash-value'");
|
| +
|
| +debug("Hash value starts with '#'");
|
| +a.href = "file:///path/testurl.html#middle";
|
| +a.hash = "#hash_value";
|
| +shouldBe("a.href", "'file:///path/testurl.html#hash_value'");
|
| +
|
| +debug("'?' in hash value");
|
| +a.href = "http://www.mydomain.com/path/testurl.html#middle";
|
| +a.hash = "#hash?value";
|
| +shouldBe("a.href", "'http://www.mydomain.com/path/testurl.html#hash?value'");
|
| +
|
| +// The expected behavior should change when character table is updated.
|
| +// IE8 and Firefox3.5.2 don't consider these characters as illegal.
|
| +debug("'#' in hash value, and illegal characters in hostname");
|
| +a.href = "https://www.my\"d(){}|~om?ain#com/path/testurl.html#middle";
|
| +a.hash = "#hash#value";
|
| +shouldBe("a.href", "'https://www.my\"d(){}|~om?ain#com/path/testurl.html#middle'");
|
| +
|
| +debug("Set hash to null");
|
| +a.href = "https://www.mydomain.com/path/testurl.html#middle";
|
| +a.hash = null;
|
| +shouldBe("a.href", "'https://www.mydomain.com/path/testurl.html#null'");
|
| +
|
| +// Firefox 3.5.2 removes the '#' at the end, and it should per
|
| +// http://url.spec.whatwg.org/#dom-url-hash
|
| +debug("Set hash to empty string");
|
| +a.href = "https://www.mydomain.com/path/testurl.html#middle";
|
| +a.hash = "";
|
| +shouldBe("a.href", "'https://www.mydomain.com/path/testurl.html'");
|
| +
|
| +// Firefox 3.5.2 does not allow setting hash to mailto: scheme, and it should.
|
| +debug("Add hash to mailto: protocol");
|
| +a.href = "mailto:e-mail_address@goes_here";
|
| +a.hash = "hash-value";
|
| +shouldBe("a.href", "'mailto:e-mail_address@goes_here#hash-value'");
|
| +
|
| +// IE8 does not percent-encode spaces in the hash component, but it does that
|
| +// in the path component.
|
| +debug("Add hash to file: protocol");
|
| +a.href = "file:///some path";
|
| +a.hash = "hash value";
|
| +shouldBe("a.href", "'file:///some%20path#hash value'");
|
| +
|
| +debug("Set hash to '#'");
|
| +a.href = "http://mydomain.com#middle";
|
| +a.hash = "#";
|
| +shouldBe("a.href", "'http://mydomain.com/'");
|
| +
|
| +// Firefox 3.5.2 does not allow setting hash to foo: scheme, and it should.
|
| +debug("Add hash to non-standard protocol");
|
| +try {
|
| +a.href = "foo:bar";
|
| +a.hash = "#hash";
|
| +shouldBe("a.href", "'foo:bar#hash'");
|
| +} catch(e) {
|
| +debug("Exception: " + e.description);
|
| +}
|
| +</script>
|
| </body>
|
| </html>
|
|
|