<html>
<head>
<title>link's hash property</title>
</head>
<body>
Hash and search properties should be non-empty only if they were specified.<br>
<br>
<a id="link1" href="http://localhost:3000">link w/o hash</a>
<a id="link2" href="http://localhost:3000/?#">link with empty hash</a>
<a id="link3" href="http://localhost:3000/?search#test">link with hash</a>
<div id="out"></div>
<script>
if (window.layoutTestController) {
    layoutTestController.dumpAsText();
    layoutTestController.waitUntilDone();
}

if (window.location.toString().charAt(window.location.toString().length - 1) != "#") {
    if (location.hash != "" || location.search != "") {
        out.innerHTML = "<br>Failure at step 1<br>"
                  + "location.hash: " + location.hash + "<br>"
                  + "link1.hash: " + link1.hash + "<br>"
                  + "link2.hash: " + link2.hash + "<br>"
                  + "link3.hash: " + link3.hash + "<br>"
                  + "location.search: " + location.search + "<br>"
                  + "link1.search: " + link1.search + "<br>"
                  + "link2.search: " + link2.search + "<br>"
                  + "link3.search: " + link3.search + "<br>"
        if (window.layoutTestController)
            layoutTestController.notifyDone();
    } else
        window.location += "?#";

} else { // Added "?#" and reloaded.
    var link1 = document.getElementById("link1");
    var link2 = document.getElementById("link2");
    var out = document.getElementById("out");
    out.innerHTML = "<br>"
                  + "location.hash: " + location.hash + "<br>"
                  + "link1.hash: " + link1.hash + "<br>"
                  + "link2.hash: " + link2.hash + "<br>"
                  + "link3.hash: " + link3.hash + "<br>"
                  + "location.search: " + location.search + "<br>"
                  + "link1.search: " + link1.search + "<br>"
                  + "link2.search: " + link2.search + "<br>"
                  + "link3.search: " + link3.search + "<br>"

    if (window.layoutTestController)
        layoutTestController.notifyDone();
}

</script>
</body>
</html>
