{
  "results": [
    {
      "test": "/websockets/Send-binary-65K-arraybuffer.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Send 65K binary data on a WebSocket - ArrayBuffer - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send 65K binary data on a WebSocket - ArrayBuffer - Message should be received",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send 65K binary data on a WebSocket - ArrayBuffer - Connection should be closed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Secure-Close-1000.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Create Secure WebSocket - Close the Connection - close(1000) - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Create Secure WebSocket - Close the Connection - close(1000) - readyState should be in CLOSED state and wasClean is TRUE - Connection should be closed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/send/012.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: sending null",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/close/close-replace.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: replacing close",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/events/001.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: getting on*",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: getting on* 1",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: getting on* 2",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: getting on* 3",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Send-data.worker.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Send data on a WebSocket in a Worker",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/Create-verify-url-set-non-default-port.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Create WebSocket - wsocket.url should be set correctly",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Create-Secure-valid-url-array-protocols.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Create Secure WebSocket - Pass a valid URL and array of protocol strings - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Create Secure WebSocket - Pass a valid URL and array of protocol strings - Connection should be closed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/unload-a-document/005.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: navigating nested browsing context with a websocket in top-level",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/constructor/019.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: uppercase 'WS:'",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/Secure-Send-binary-arraybufferview-float32.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Send binary data on a WebSocket - ArrayBufferView - Float32Array - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send binary data on a WebSocket - ArrayBufferView - Float32Array - Message should be received",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send binary data on a WebSocket - ArrayBufferView - Float32Array - Connection should be closed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/constants/005.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "defineProperty getter CONNECTING",
          "status": "PASS",
          "message": null
        },
        {
          "name": "defineProperty getter OPEN",
          "status": "PASS",
          "message": null
        },
        {
          "name": "defineProperty getter CLOSING",
          "status": "PASS",
          "message": null
        },
        {
          "name": "defineProperty getter CLOSED",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/readyState/008.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: getting readyState in closed",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/binary/005.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: Send/Receive ArrayBuffer, size less than network array buffer",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-large.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: bufferedAmount for 65K data",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/send/005.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: send() return value",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/Secure-Close-3000-verify-code.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Create Secure WebSocket - Close the Connection - close(3000, reason) - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Create Secure WebSocket - Close the Connection - close(3000, reason) - verify return code is 3000 - Connection should be closed",
          "status": "FAIL",
          "message": "assert_true: WebSocket connection should be open expected true got false"
        }
      ]
    },
    {
      "test": "/websockets/Create-on-worker-shutdown.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSocket created after a worker self.close()",
          "status": "FAIL",
          "message": "assert_equals: Closed WebSocket created on worker shutdown is in closing state. expected 2 but got 3"
        }
      ]
    },
    {
      "test": "/websockets/cookies/002.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: Set-Cookie in response",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/send/010.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Constructor succeeds",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "WebSockets: sending non-strings (null)",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "WebSockets: sending non-strings (undefined)",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "WebSockets: sending non-strings (1)",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "WebSockets: sending non-strings ([object Window])",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "WebSockets: sending non-strings ([object HTMLBodyElement])",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "WebSockets: sending non-strings ([object Object])",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "WebSockets: sending non-strings ()",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "WebSockets: sending non-strings ([object WebSocket])",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "WebSockets: sending non-strings (function(){})",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "WebSockets: sending non-strings (Error)",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Create-protocol-with-space.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Create WebSocket - Pass a valid URL and a protocol string with a space in it - SYNTAX_ERR is thrown",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/send/009.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: send('')",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/referrer.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Ensure no Referer header is included",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/Send-Unpaired-Surrogates.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Send unpaired surrogates on a WebSocket - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send unpaired surrogates on a WebSocket - Message should be received",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send unpaired surrogates on a WebSocket - Connection should be closed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Create-valid-url.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Create WebSocket - Pass a valid URL - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Create WebSocket - Pass a valid URL - Connection should be closed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/close/close-basic.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: close()",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-readonly.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: setting bufferedAmount",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/extensions/001.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: getting extensions in connecting",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/binary/004.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: Send/Receive ArrayBuffer, size greater than network array buffer",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/constructor/006.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: converting first arguments",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/events/007.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: listening for events with onmessage",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Secure-Send-null.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Send null data on a Secure WebSocket - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send null data on a Secure WebSocket - Message should be received",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send null data on a Secure WebSocket - Connection should be closed",
          "status": "FAIL",
          "message": "assert_true: WebSocket connection should be open expected true got false"
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-blob.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: bufferedAmount for blob",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/readyState/005.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: defineProperty setter for readyState",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Secure-Close-readyState-Closed.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Create Secure WebSocket - Close the Connection - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Create Secure WebSocket - Close the Connection - readyState should be in CLOSED state and wasClean is TRUE - Connection should be closed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Create-Secure-url-with-space.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Create Secure WebSocket - Pass a URL with a space - SYNTAX_ERR should be thrown",
          "status": "FAIL",
          "message": "assert_throws: function \"function() {\n    wsocket = CreateWebSocketWithSpaceInUrl(spaceUrl)\n  }\" did not throw"
        }
      ]
    },
    {
      "test": "/websockets/interfaces/CloseEvent/constructor.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "new CloseEvent() without dictionary",
          "status": "PASS",
          "message": null
        },
        {
          "name": "new CloseEvent() with dictionary",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/closing-handshake/002.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: server sends closing handshake",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/constructor/007.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: new WebSocket(url, null char)",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-setter.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: defineProperty setter for bufferedAmount",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Create-valid-url-array-protocols.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Create WebSocket - Pass a valid URL and array of protocol strings - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Create WebSocket - Pass a valid URL and array of protocol strings - Connection should be closed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Send-paired-surrogates.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Send (paired surrogates) data on a WebSocket - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send (paired surrogates) data on a WebSocket - Message should be received",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send (paired surrogates) data on a WebSocket - Connection should be closed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Secure-Close-1005.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Create Secure WebSocket - Close the Connection - close(1005) - see '7.1.5.  The WebSocket Connection Close Code' in http://www.ietf.org/rfc/rfc6455.txt",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/constants/002.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Readonly constants CONNECTING",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Readonly constants OPEN",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Readonly constants CLOSING",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Readonly constants CLOSED",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/url/003.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: deleting url",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/constructor/005.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: return value",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/constructor/010.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: protocol in response but no requested protocol",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/opening-handshake/003.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: origin",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/Secure-Send-binary-arraybufferview-uint8-offset.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Send binary data on a WebSocket - ArrayBufferView - Uint8Array with offset - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send binary data on a WebSocket - ArrayBufferView - Uint8Array with offset - Message should be received",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send binary data on a WebSocket - ArrayBufferView - Uint8Array with offset - Connection should be closed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Secure-Send-65K-data.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Send  65K data on a Secure WebSocket - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send 65K data on a Secure WebSocket - Message should be received",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send 65K data on a Secure WebSocket - Connection should be closed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Create-Secure-extensions-empty.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Create Secure WebSocket - wsocket.extensions should be set to '' after connection is established - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Create Secure WebSocket - wsocket.extensions should be set to '' after connection is established - Connection should be closed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Create-invalid-urls.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Url is /echo - should throw SYNTAX_ERR",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Url is a mail address - should throw SYNTAX_ERR",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Url is about:blank - should throw SYNTAX_ERR",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Url is ?test - should throw SYNTAX_ERR",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Url is #test - should throw SYNTAX_ERR",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/events/004.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: members of EventTarget",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Create-Secure-valid-url.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Create Secure WebSocket - Pass a valid URL  - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Create Secure WebSocket - Pass a valid URL - Connection should be closed",
          "status": "FAIL",
          "message": "assert_true: WebSocket connection should be open expected true got false"
        }
      ]
    },
    {
      "test": "/websockets/Secure-Close-4999-reason.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Create Secure WebSocket - Close the Connection - close(4999, reason) - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Create Secure WebSocket - Close the Connection - close(4999, reason) - readyState should be in CLOSED state and wasClean is TRUE - Connection should be closed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/cookies/004.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: setting HttpOnly cookies in ws response, checking document.cookie",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-unicode.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: bufferedAmount for unicode data",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/url/002.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: setting url",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/constructor/002.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: new WebSocket(invalid url)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(invalid url) 1",
          "status": "FAIL",
          "message": "assert_throws: function \"function(){new WebSocket(\"ws://foo bar.com/\")}\" did not throw"
        },
        {
          "name": "WebSockets: new WebSocket(invalid url) 2",
          "status": "FAIL",
          "message": "assert_throws: function \"function(){new WebSocket(\"wss://foo bar.com/\")}\" did not throw"
        },
        {
          "name": "WebSockets: new WebSocket(invalid url) 3",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(invalid url) 4",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(invalid url) 5",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(invalid url) 6",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(invalid url) 7",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(invalid url) 8",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(invalid url) 9",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Send-65K-data.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Send 65K data on a WebSocket -  Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send 65K data on a WebSocket - Message should be received",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send 65K data on a WebSocket - Connection should be closed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Secure-Close-2999-reason.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Create Secure WebSocket - Close the Connection - close(2999, reason) - INVALID_ACCESS_ERR is thrown",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/unload-a-document/003.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: navigating nested browsing context",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/Secure-Send-paired-surrogates.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Send paired surrogates data on a Secure WebSocket - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send paired surrogates data on a Secure WebSocket - Message should be received",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send paired surrogates data on a Secure WebSocket - Connection should be closed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/constants/003.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: deleting constants",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: deleting constants 1",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: deleting constants 2",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: deleting constants 3",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/constructor/011.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: protocol mismatch",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/events/014.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Setting event handlers to null onclose",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Setting event handlers to null onopen",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Setting event handlers to null onerror",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Setting event handlers to null onmessage",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/send/002.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: replacing send",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Secure-Close-3000-reason.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Create Secure WebSocket - Close the Connection - close(3000, reason) - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Create Secure WebSocket - Close the Connection - close(3000, reason) - readyState should be in CLOSED state and wasClean is TRUE - Connection should be closed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/close/close-multiple.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: close() several times",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Secure-Send-data.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Send  data on a Secure WebSocket - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send data on a Secure WebSocket - Message should be received",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send data on a Secure WebSocket - Connection should be closed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/events/010.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: setting event handlers to undefined",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: setting event handlers to undefined 1",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: setting event handlers to undefined 2",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: setting event handlers to undefined 3",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/constructor/016.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: non-ascii URL in query, document encoding windows-1252",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/Secure-Close-server-initiated-close.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Create Secure WebSocket - Server initiated Close - Client sends back a CLOSE - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Create Secure WebSocket - Server initiated Close - Client sends back a CLOSE - readyState should be in CLOSED state and wasClean is TRUE - Connection should be closed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/send/004.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "lone low surrogate",
          "status": "PASS",
          "message": null
        },
        {
          "name": "lone high surrogate",
          "status": "PASS",
          "message": null
        },
        {
          "name": "surrogates in wrong order",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Secure-Close-1000-reason.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Create Secure WebSocket - Close the Connection - close(1000, reason) - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Create Secure WebSocket - Close the Connection - close(1000, reason) - readyState should be in CLOSED state and wasClean is TRUE - Connection should be closed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Send-null.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Send null data on a WebSocket - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send null data on a WebSocket - Message should be received",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send null data on a WebSocket - Connection should be closed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Send-unicode-data.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Send unicode data on a WebSocket - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send unicode data on a WebSocket - Message should be received",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send unicode data on a WebSocket - Connection should be closed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Secure-Send-unicode-data.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Send  unicode data on a Secure WebSocket - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send unicode data on a Secure WebSocket - Message should be received",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send unicode data on a Secure WebSocket - Connection should be closed",
          "status": "FAIL",
          "message": "assert_true: WebSocket connection should be open expected true got false"
        }
      ]
    },
    {
      "test": "/websockets/Secure-Send-binary-arraybufferview-int32.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Send binary data on a WebSocket - ArrayBufferView - Int32Array - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send binary data on a WebSocket - ArrayBufferView - Int32Array - Message should be received",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send binary data on a WebSocket - ArrayBufferView - Int32Array - Connection should be closed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Create-Secure-valid-url-protocol-string.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Create Secure WebSocket - Check readyState is 1",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Create Secure WebSocket - Pass a valid URL and protocol string - Connection should be closed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/send/007.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: close() followed by send()",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/extended-payload-length.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Application data is 125 byte which means any 'Extended payload length' field isn't used at all.",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Application data is 126 byte which starts to use the 16 bit 'Extended payload length' field.",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Application data is 0xFFFF byte which means the upper bound of the 16 bit 'Extended payload length' field.",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Application data is (0xFFFF + 1) byte which starts to use the 64 bit 'Extended payload length' field",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/Create-non-absolute-url.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Create WebSocket - Pass a non absolute URL - SYNTAX_ERR is thrown",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-getter.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: defineProperty getter for bufferedAmount",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/close-invalid.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "0 on a secure websocket",
          "status": "PASS",
          "message": null
        },
        {
          "name": "0 on a insecure websocket",
          "status": "PASS",
          "message": null
        },
        {
          "name": "500 on a secure websocket",
          "status": "PASS",
          "message": null
        },
        {
          "name": "500 on a insecure websocket",
          "status": "PASS",
          "message": null
        },
        {
          "name": "NaN on a secure websocket",
          "status": "PASS",
          "message": null
        },
        {
          "name": "NaN on a insecure websocket",
          "status": "PASS",
          "message": null
        },
        {
          "name": "String on a secure websocket",
          "status": "PASS",
          "message": null
        },
        {
          "name": "String on a insecure websocket",
          "status": "PASS",
          "message": null
        },
        {
          "name": "null on a secure websocket",
          "status": "PASS",
          "message": null
        },
        {
          "name": "null on a insecure websocket",
          "status": "PASS",
          "message": null
        },
        {
          "name": "2**16+1000 on a secure websocket",
          "status": "PASS",
          "message": null
        },
        {
          "name": "2**16+1000 on a insecure websocket",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/readyState/006.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: getting readyState in open",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/constructor/021.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: Same sub protocol twice",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/readyState/004.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: defineProperty getter for readyState",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/send/011.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: sending non-ascii, combining chars and non-BMP",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/binary/001.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: Send/Receive blob, blob size less than network array buffer",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/events/013.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "onclose",
          "status": "PASS",
          "message": null
        },
        {
          "name": "onopen",
          "status": "PASS",
          "message": null
        },
        {
          "name": "onerror",
          "status": "PASS",
          "message": null
        },
        {
          "name": "onmessage",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Send-data.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Send data on a WebSocket - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send data on a WebSocket - Message should be received",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send data on a WebSocket - Connection should be closed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Create-wrong-scheme.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Create WebSocket - Pass a URL with a non ws/wss scheme - SYNTAX_ERR is thrown",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/basic-auth.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "HTTP basic authentication should work with WebSockets",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/send/008.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: send() in onclose",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/close/close-nested.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: close() in close event handler",
          "status": "FAIL",
          "message": "assert_equals: expected 2 but got 3"
        }
      ]
    },
    {
      "test": "/websockets/Create-protocols-repeated.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Create WebSocket - Pass a valid URL and an array of protocol strings with repeated values - SYNTAX_ERR is thrown",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/constructor.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Calling the WebSocket constructor with too many arguments should not throw.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/interfaces/CloseEvent/clean-close.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: wasClean, true",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/Close-reason-unpaired-surrogates.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Create WebSocket - Close the Connection - close(reason with unpaired surrogates) - connection should get opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Create WebSocket - Close the Connection - close(reason with unpaired surrogates) - connection should get closed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/keeping-connection-open/001.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: 20s inactivity after handshake",
          "status": "FAIL",
          "message": "assert_unreached: Reached unreachable code"
        }
      ]
    },
    {
      "test": "/websockets/unload-a-document/002.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: navigating top-level browsing context with closed websocket",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/constructor/008.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: new WebSocket(url with not blocked port)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url with not blocked port) 1",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url with not blocked port) 2",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url with not blocked port) 3",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/close/close-return.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: close() return value",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Create-Secure-valid-url-protocol-setCorrectly.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Create Secure WebSocket - Pass a valid URL and protocol string - protocol should be set correctly - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Create Secure WebSocket - Pass a valid URL and protocol string - Connection should be closed",
          "status": "FAIL",
          "message": "assert_true: WebSocket connection should be open expected true got false"
        }
      ]
    },
    {
      "test": "/websockets/closing-handshake/003.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: client sends closing handshake",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/Secure-Close-undefined.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Secure-Close-undefined",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/events/015.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: instanceof on events",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-initial.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: getting bufferedAmount",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Secure-Send-unpaired-surrogates.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Send unpaired surrogates on a Secure WebSocket - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send unpaired surrogates on a Secure WebSocket - Message should be received",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send unpaired surrogates on a Secure WebSocket - Connection should be closed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Secure-Close-1000-verify-code.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Create Secure WebSocket - Close the Connection - close(1000, reason) - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Create Secure WebSocket - Close the Connection - close(1000, reason) - event.code == 1000 and event.reason = 'Clean Close'",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/cookies/006.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: setting Secure cookie with document.cookie, checking ws request",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/constructor/014.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: serialize establish a connection",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/constructor/009.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: protocol",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/events/006.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: 'on*' in ws",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/protocol/protocol-initial.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: getting protocol in connecting",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/readyState/002.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: setting readyState",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/eventhandlers.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Event handler for open should have [TreatNonCallableAsNull]",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Event handler for error should have [TreatNonCallableAsNull]",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Event handler for close should have [TreatNonCallableAsNull]",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Event handler for message should have [TreatNonCallableAsNull]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/send/006.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: send() with unpaired surrogate when readyState is OPEN",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/events/016.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: addEventListener",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/Secure-Send-binary-arraybufferview-uint16-offset-length.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Send binary data on a WebSocket - ArrayBufferView - Uint16Array with offset and length - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send binary data on a WebSocket - ArrayBufferView - Uint16Array with offset and length - Message should be received",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send binary data on a WebSocket - ArrayBufferView - Uint16Array with offset and length - Connection should be closed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Create-valid-url-protocol.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Create WebSocket - Pass a valid URL and a protocol string - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Create WebSocket - Pass a valid URL and a protocol string - Connection should be closed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/readyState/001.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: getting readyState in connecting",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/constructor/017.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "ws:",
          "status": "PASS",
          "message": null
        },
        {
          "name": "ws:/",
          "status": "PASS",
          "message": null
        },
        {
          "name": "wss:",
          "status": "PASS",
          "message": null
        },
        {
          "name": "wss:/",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/unload-a-document/001.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: navigating top-level browsing context",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/Close-Reason-124Bytes.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Create WebSocket - Close the Connection - close(code, 'reason more than 123 bytes') - SYNTAX_ERR is thrown",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-deleting.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: delete bufferedAmount",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/opening-handshake/005.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: proper first line",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/Send-binary-arraybufferview-int16-offset.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Send binary data on a WebSocket - ArrayBufferView - Int16Array with offset - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send binary data on a WebSocket - ArrayBufferView - Int16Array with offset - Message should be received",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send binary data on a WebSocket - ArrayBufferView - Int16Array with offset - Connection should be closed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/events/002.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: setting on*",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: setting on* 1",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: setting on* 2",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: setting on* 3",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/opening-handshake/002.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: valid handshake",
          "status": "FAIL",
          "message": "assert_unreached: Reached unreachable code"
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/readyState/003.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: delete readyState",
          "status": "FAIL",
          "message": "assert_equals: delete ws.readyState expected 2 but got 3"
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/events/018.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "open event",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "message event",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "error event",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "close event",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-arraybuffer.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: bufferedAmount for ArrayBuffer",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/cookies/003.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: sending HttpOnly cookies in ws request",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/readyState/007.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: getting readyState in closing",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/url/resolve.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSocket#url: resolving",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/url/005.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: defineProperty getter for url",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Secure-Close-onlyReason.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Create Secure WebSocket - Close the Connection - close(only reason) - INVALID_ACCESS_ERR is thrown",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Send-binary-arraybuffer.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Send binary data on a WebSocket - ArrayBuffer - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send binary data on a WebSocket - ArrayBuffer - Message should be received",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send binary data on a WebSocket - ArrayBuffer - Connection should be closed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Send-binary-blob.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Send binary data on a WebSocket - Blob - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send binary data on a WebSocket - Blob - Message should be received",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send binary data on a WebSocket - Blob - Connection should be closed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Close-1000-reason.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Create WebSocket - Close the Connection - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Create WebSocket - Close the Connection - close(1000, reason) - readyState should be in CLOSED state and wasClean is TRUE - Connection should be closed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Close-undefined.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Close-undefined",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/constants/006.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "defineProperty setter CONNECTING",
          "status": "PASS",
          "message": null
        },
        {
          "name": "defineProperty setter OPEN",
          "status": "PASS",
          "message": null
        },
        {
          "name": "defineProperty setter CLOSING",
          "status": "PASS",
          "message": null
        },
        {
          "name": "defineProperty setter CLOSED",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Close-1000.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Create WebSocket - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Create WebSocket - Close the Connection - close(1000) - readyState should be in CLOSED state and wasClean is TRUE - Connection should be closed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/constants/001.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Constants on constructors CONNECTING",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Constants on constructors OPEN",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Constants on constructors CLOSING",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Constants on constructors CLOSED",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Create-protocols-repeated-case-insensitive.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Create WebSocket - Pass a valid URL and an array of protocol strings with repeated values but different case - SYNTAX_ERR is thrown",
          "status": "FAIL",
          "message": "assert_throws: function \"function() {\n    wsocket = CreateWebSocketWithRepeatedProtocolsCaseInsensitive()\n  }\" did not throw"
        }
      ]
    },
    {
      "test": "/websockets/Secure-Close-1005-verify-code.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Create Secure WebSocket - Close the Connection - close() - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Create Secure WebSocket - Close the Connection - close() - return close code is 1005 - Connection should be closed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/closing-handshake/004.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: data after closing handshake",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/url/004.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: 'URL'",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/cookies/007.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: when to process set-cookie fields in ws response",
          "status": "FAIL",
          "message": "assert_unreached: Reached unreachable code"
        }
      ]
    },
    {
      "test": "/websockets/Create-valid-url-protocol-empty.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Create WebSocket - wsocket.protocol should be empty before connection is established",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/opening-handshake/003-sets-origin.worker.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "origin set in a Worker",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/interfaces/CloseEvent/historical.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "initCloseEvent",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Send-binary-arraybufferview-int8.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Send binary data on a WebSocket - ArrayBufferView - Int8Array - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send binary data on a WebSocket - ArrayBufferView - Int8Array - Message should be received",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send binary data on a WebSocket - ArrayBufferView - Int8Array - Connection should be closed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/constructor/012.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: no protocol in response",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/Create-nonAscii-protocol-string.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Create WebSocket - Pass a valid URL and a protocol string with non-ascii values - SYNTAX_ERR is thrown",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/security/002.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: check Sec-WebSocket-Key",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Create-Secure-verify-url-set-non-default-port.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Create Secure WebSocket - wsocket.url should be set correctly",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Send-before-open.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Send data on a WebSocket before connection is opened - INVALID_STATE_ERR is returned",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/events/020.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: error events",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/opening-handshake/001.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: invalid handshake",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/url/006.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: defineProperty setter for url",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/constructor/018.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: NULL char in url",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/constructor/013.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: multiple WebSocket objects",
          "status": "FAIL",
          "message": "assert_unreached: Reached unreachable code"
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/send/003.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: send() when readyState is CONNECTING",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/constructor/020.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: uppercase host",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/constructor/022.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: protocol array",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/constructor/004.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 1",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 2",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 3",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 4",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 5",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 6",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 7",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 8",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 9",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 10",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 11",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 12",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 13",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 14",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 15",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 16",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 17",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 18",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 19",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 20",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 21",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 22",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 23",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 24",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 25",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 26",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 27",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 28",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 29",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 30",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 31",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 32",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 33",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 34",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 35",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 36",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 37",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 38",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 39",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 40",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 41",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 42",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 43",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 44",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 45",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 46",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 47",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 48",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 49",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 50",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 51",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 52",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 53",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 54",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 55",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 56",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 57",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 58",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 59",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 60",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 61",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 62",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 63",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 64",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 65",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 66",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 67",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 68",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 69",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 70",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 71",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 72",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 73",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 74",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 75",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 76",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 77",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 78",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 79",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 80",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 81",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 82",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 83",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 84",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 85",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 86",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 87",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 88",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 89",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 90",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 91",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 92",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 93",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 94",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 95",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 96",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 97",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 98",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 99",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 100",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 101",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 102",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 103",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 104",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 105",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 106",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 107",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 108",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 109",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 110",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 111",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 112",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 113",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 114",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 115",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 116",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 117",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 118",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 119",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 120",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 121",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 122",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 123",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 124",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 125",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 126",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 127",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 128",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 129",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 130",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 131",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 132",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 133",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 134",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 135",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 136",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 137",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 138",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 139",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 140",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 141",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 142",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 143",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 144",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 145",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 146",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 147",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 148",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 149",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 150",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 151",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 152",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 153",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 154",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 155",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 156",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 157",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 158",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 159",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: new WebSocket(url, invalid protocol) 160",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/cookies/001.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: Cookie in request",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/binaryType-wrong-value.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Create WebSocket - set binaryType to something other than blob or arraybuffer - SYNTAX_ERR is returned - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Create WebSocket - set binaryType to something other than blob or arraybuffer - SYNTAX_ERR is returned - Connection should be closed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Secure-Close-Reason-124Bytes.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Create Secure WebSocket - Close the Connection - close(code, 'reason more than 123 bytes') - SYNTAX_ERR is thrown",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Secure-Send-binary-arraybufferview-uint32-offset.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Send binary data on a WebSocket - ArrayBufferView - Uint32Array with offset - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send binary data on a WebSocket - ArrayBufferView - Uint32Array with offset - Message should be received",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send binary data on a WebSocket - ArrayBufferView - Uint32Array with offset - Connection should be closed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Create-asciiSep-protocol-string.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Create WebSocket - Pass a valid URL and a protocol string with an ascii separator character - SYNTAX_ERR is thrown",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/events/019.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: removeEventListener",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: removeEventListener 1",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: removeEventListener 2",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSockets: removeEventListener 3",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Secure-Send-binary-blob.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Send binary data on a Secure WebSocket - Blob - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send binary data on a Secure WebSocket - Blob - Message should be received",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send binary data on a Secure WebSocket - Blob - Connection should be closed",
          "status": "FAIL",
          "message": "assert_true: WebSocket connection should be open expected true got false"
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/events/008.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: listening for events with onerror",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Send-0byte-data.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Send 0 byte data on a WebSocket - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send 0 byte data on a WebSocket - Message should be received",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send 0 byte data on a WebSocket - Connection should be closed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/events/009.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: listening for events with onclose",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/constructor/001.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: new WebSocket() with no args",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/cookies/005.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: setting HttpOnly cookies in ws response, checking ws request",
          "status": "FAIL",
          "message": "assert_unreached: error Reached unreachable code"
        }
      ]
    },
    {
      "test": "/websockets/multi-globals/message-received.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "ArrayBuffer should be created in the relevant realm of the WebSocket",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Blob should be created in the relevant realm of the WebSocket",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/send/001.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: send() with no args",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Secure-Close-Reason-Unpaired-surrogates.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Create Secure WebSocket - Close the Connection - close(reason with unpaired surrogates) - connection should get opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Create Secure WebSocket - Close the Connection - close(reason with unpaired surrogates) - connection should get closed",
          "status": "FAIL",
          "message": "assert_true: WebSocket connection should be opened expected true got false"
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/events/012.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "onclose",
          "status": "PASS",
          "message": null
        },
        {
          "name": "onopen",
          "status": "PASS",
          "message": null
        },
        {
          "name": "onerror",
          "status": "PASS",
          "message": null
        },
        {
          "name": "onmessage",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Secure-Send-binary-arraybuffer.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Send binary data on a Secure WebSocket - ArrayBuffer - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send binary data on a Secure WebSocket - ArrayBuffer - Message should be received",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send binary data on a Secure WebSocket - ArrayBuffer - Connection should be closed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Secure-Send-binary-arraybufferview-uint8-offset-length.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Send binary data on a WebSocket - ArrayBufferView - Uint8Array with offset and length - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send binary data on a WebSocket - ArrayBufferView - Uint8Array with offset and length - Message should be received",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send binary data on a WebSocket - ArrayBufferView - Uint8Array with offset and length - Connection should be closed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Create-blocked-port.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Basic check",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "WebSocket blocked port test 1",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 1 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 7",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 7 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 9",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 9 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 11",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 11 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 13",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 13 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 15",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 15 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 17",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 17 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 19",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 19 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 20",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 20 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 21",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 21 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 22",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 22 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 23",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 23 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 25",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 25 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 37",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 37 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 42",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 42 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 43",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 43 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 53",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 53 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 77",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 77 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 79",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 79 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 87",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 87 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 95",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 95 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 101",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 101 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 102",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 102 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 103",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 103 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 104",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 104 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 109",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 109 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 110",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 110 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 111",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 111 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 113",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 113 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 115",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 115 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 117",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 117 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 119",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 119 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 123",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 123 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 135",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 135 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 139",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 139 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 143",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 143 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 179",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 179 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 389",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 389 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 427",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 427 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 465",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 465 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 512",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 512 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 513",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 513 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 514",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 514 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 515",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 515 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 526",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 526 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 530",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 530 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 531",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 531 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 532",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 532 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 540",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 540 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 548",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 548 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 556",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 556 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 563",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 563 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 587",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 587 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 601",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 601 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 636",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 636 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 993",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 993 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 995",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 995 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 2049",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 2049 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 3659",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 3659 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 4045",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 4045 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 6000",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 6000 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 6665",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 6665 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 6666",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 6666 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 6667",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 6667 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 6668",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 6668 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 6669",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 6669 is not allowed."
        },
        {
          "name": "WebSocket blocked port test 6697",
          "status": "FAIL",
          "message": "Failed to construct 'WebSocket': The port 6697 is not allowed."
        }
      ]
    },
    {
      "test": "/websockets/Create-Secure-valid-url-binaryType-blob.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Create Secure WebSocket - wsocket.binaryType should be set to 'blob' after connection is established - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Create Secure WebSocket - wsocket.binaryType should be set to 'blob' after connection is established - Connection should be closed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/close/close-connecting.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: close() when connecting",
          "status": "FAIL",
          "message": "assert_unreached: Reached unreachable code"
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/events/003.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: listening for events with onopen",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-getting.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: bufferedAmount after send()ing",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/url/001.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: getting url",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/constants/004.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSocket.prototype.CONNECTING",
          "status": "PASS",
          "message": null
        },
        {
          "name": "ws.CONNECTING",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSocket.prototype.OPEN",
          "status": "PASS",
          "message": null
        },
        {
          "name": "ws.OPEN",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSocket.prototype.CLOSING",
          "status": "PASS",
          "message": null
        },
        {
          "name": "ws.CLOSING",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WebSocket.prototype.CLOSED",
          "status": "PASS",
          "message": null
        },
        {
          "name": "ws.CLOSED",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Secure-Send-binary-65K-arraybuffer.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Send 65K binary data on a Secure WebSocket - ArrayBuffer - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send 65K binary data on a Secure WebSocket - ArrayBuffer - Message should be received",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send 65K binary data on a Secure WebSocket - ArrayBuffer - Connection should be closed",
          "status": "FAIL",
          "message": "assert_true: WebSocket connection should be open expected true got false"
        }
      ]
    },
    {
      "test": "/websockets/binary/002.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: Send/Receive blob, blob size greater than network array buffer",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/unload-a-document/004.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: navigating nested browsing context with closed websocket",
          "status": "FAIL",
          "message": "assert_unreached: Got unexpected event error Reached unreachable code"
        }
      ]
    },
    {
      "test": "/websockets/bufferedAmount-unchanged-by-sync-xhr.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "bufferedAmount should not be updated during a sync XHR",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/events/017.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: this, e.target, e.currentTarget, e.eventPhase",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/websockets/interfaces/WebSocket/events/011.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "onclose",
          "status": "PASS",
          "message": null
        },
        {
          "name": "onopen",
          "status": "PASS",
          "message": null
        },
        {
          "name": "onerror",
          "status": "PASS",
          "message": null
        },
        {
          "name": "onmessage",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Secure-Send-binary-arraybufferview-float64.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Send binary data on a WebSocket - ArrayBufferView - Float64Array - Connection should be opened",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send binary data on a WebSocket - ArrayBufferView - Float64Array - Message should be received",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Send binary data on a WebSocket - ArrayBufferView - Float64Array - Connection should be closed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/websockets/Secure-Close-readyState-Closing.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Create Secure WebSocket - Close the Connection - readyState should be in CLOSING state just before onclose is called",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "websockets/cookies/006.https.html?wss",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "status": "TIMEOUT",
          "xstatus": "SERVERTIMEOUT"
        }
      ]
    },
    {
      "test": "/websockets/security/001.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "WebSockets: wrong accept key",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    }
  ]
}