<!DOCTYPE html>
<html>
<head>
    <title>W3C WebSocket API - Create WebSocket - pass in list of invalid urls</title>
    <script type="text/javascript" src="/resources/testharness.js"></script>
    <script type="text/javascript" src="/resources/testharnessreport.js"></script>
    <script type="text/javascript" src="websocket.js?pipe=sub"></script>
</head>
<body>
    <div id="log"></div>
    <script type="text/javascript">
        var wsocket;
        test(function() {
            assert_throws("SYNTAX_ERR", function () { wsocket = new WebSocket("/echo") });
        }, "Url is /echo - should throw SYNTAX_ERR");

        test(function () {
            assert_throws("SYNTAX_ERR", function () { wsocket = new WebSocket("mailto:microsoft@microsoft.com") });
        }, "Url is a mail address - should throw SYNTAX_ERR");

        test(function () {
            assert_throws("SYNTAX_ERR", function () { wsocket = new WebSocket("about:blank") });
        }, "Url is about:blank - should throw SYNTAX_ERR");

        test(function () {
            assert_throws("SYNTAX_ERR", function () { wsocket = new WebSocket("?test") });
        }, "Url is ?test - should throw SYNTAX_ERR");

        test(function () {
            assert_throws("SYNTAX_ERR", function () { wsocket = new WebSocket("#test") });
        }, "Url is #test - should throw SYNTAX_ERR");
    </script>
</body>
</html>
