<!DOCTYPE html>
<html>
<body>
<script>
if (window.testRunner)
    testRunner.dumpAsText();

var cases = [
    new URL("http://example.com/foo/bar"),
    new URL("HTTP://example.com/foo/bar"),
    new URL("https://example.com/ttt?ggg"),
    new URL("ftp://example.com/ttt?ggg"),
    new URL("file:///home/abarth"),
    new URL("data:text/html,<b>foo</b>"),
];

window.onload = function(e)
{
    var s = '';
    for (var i = 0; i < cases.length; ++i)
        s += cases[i].href + ' => ' + cases[i].origin + '\n';

    var pre = document.createElement('pre');
    pre.textContent = s;
    document.body.appendChild(pre);
};

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