chromium/third_party/blink/web_tests/fast/loader/url-parse-1.html

<head>
    <base href="file:///BASE/">
    <style>

        table { border-spacing: 0; border-collapse: collapse; border: 1px solid #999; }
        thead { font: x-small 'Lucida Grande'; }
        thead > tr { background-color: #dee; border-bottom: 1px solid #999; }
        td, th { padding: 4px; border-width: 0 1px; border-style: solid; border-color: #999 }
        tbody { font: small monospace; }
        tbody > tr:nth-child(odd) { background-color: #eee; }
    </style>
</head>
<body>
    <p>
        The following table shows how URLs are parsed and canonicalized. The base URI
        for this document is <tt>file:///BASE/</tt>.
    </p>
    <table>
        <thead>
            <tr>
                <th>URL</th>
                <th>href</th>
                <th>host</th>
                <th>pathname</th>
            </tr>
        </thead>
        <tbody id = "results"></tbody>
    </table>
    <script>
        if (window.testRunner)
            testRunner.dumpAsText();

        function test(url)
        {
            var anchor = document.createElement("a");
            anchor.href = url;
    
            var row = document.getElementById("results").appendChild(document.createElement("tr"));
            row.appendChild(document.createElement("td")).appendChild(anchor).appendChild(document.createTextNode(url));
            row.appendChild(document.createElement("td")).appendChild(document.createTextNode(anchor.href));
            row.appendChild(document.createElement("td")).appendChild(document.createTextNode(anchor.host));
            row.appendChild(document.createElement("td")).appendChild(document.createTextNode(anchor.pathname));
        }
    
        var testCases = [
            "",
            "test",
            "/",
            "/test",
            "//",
            "//test",
            "///",
            "///test",
            "file:",
            "file:test",
            "file:/",
            "file:/test",
            "file://",
            "file://test",
            "file:///",
            "file:///test",
            "file://localhost",
            "file://localhost/",
            "file://localhost/test",
            "http:",
            "http:/",
            "http://",
            "http:///",
            "http:////",
            "http://localhost",
            "http://localhost/",
            "http://localhost/test",
            "x-webkit:",
            "x-webkit:test",
            "x-webkit:/",
            "x-webkit:/test",
            "x-webkit://",
            "x-webkit://test",
            "x-webkit:///",
            "x-webkit:///test",
        ];
    
        for (var i = 0; i < testCases.length; ++i)
            test(testCases[i]);
    </script>
</body>