<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="../../../resources/js-test-pre.js"></script>
</head>
<body>
<script>

description('Test setting the hostname attribute of the URL in a URL object.');

var a = new URL("about:blank");

debug("Basic test");
a.href = "https://www.mydomain.com:8080/path/";
a.hostname = "www.otherdomain.com";
shouldBe("a.href", "'https://www.otherdomain.com:8080/path/'");

// IE8 throws an exception "The URL is invalid".
try {
debug("Extra slashes before hostname");
a.href = "https://www.mydomain.com:8080/path/";
a.hostname = "//www.otherdomain.com";
shouldBe("a.href", "'https://www.otherdomain.com:8080/path/'");
} catch(e) {
debug("Exception: " + e.description);
}

// Firefox 3.5.2 does not allow setting the host to foo: protocol
debug("Set hostname to URL with foo: protocol");
a.href = "foo://www.mydomain.com/path/";
a.hostname = "www.otherdomain.com";
shouldBe("a.href", "'foo://www.otherdomain.com/path/'");

debug("Set hostname to null");
a.href = "https://www.mydomain.com:8080/path/";
a.hostname = null;
shouldBe("a.href", "'https://null:8080/path/'");

// Both IE8 and Firefox 3.5.2 allow setting the host to empty string, against the spec at
// http://dev.w3.org/html5/spec/infrastructure.html#url-decomposition-idl-attributes .
// Since both do that in a buggy way, WebKit should not follow either one of them.
debug("Set hostname to empty string");
a.href = "https://www.mydomain.com:8080/path/";
a.hostname = "";
shouldBe("a.href", "'https://www.mydomain.com:8080/path/'");

// IE8 fails to process really: protocol.
debug("Set hostname to URL with 2 colons");
a.href = "really:bad:url";
a.hostname = "mydomain.com";
shouldBe("a.href", "'really:bad:url'");

// The expected behavior should change when the character table is updated.
// IE8 encodes the space in the hostname.
// Firefox3.5.2 and WebKit consider space as illegal character and would not set 
// the new hostname.
debug("Set a hostname that contains space in it");
shouldThrow('a.href = "http://www.my domain.com/path/"');
a.hostname = "www.other domain.com";
shouldBe("a.href", "'really:bad:url'");

// IE8 throws an exception "The URL is invalid".
try {
debug("Set hostname on a local file");
a.href = "c:/path/testurl.html";
a.hostname= "a";
shouldBe("a.href", "'c:/path/testurl.html'");
} catch(e) {
debug("Exception: " + e.description);
}

debug("Set hostname to undefined");
a.href = "https://www.mydomain.com:8080/path/";
a.hostname = undefined;
shouldBe("a.href", "'https://undefined:8080/path/'");

</script>
<script src="../../../resources/js-test-post.js"></script>
</body>
</html>
