WebKit Bugzilla
Attachment 371969 Details for
Bug 198774
: Import WPT websockets tests
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-198774-20190612092107.patch (text/plain), 587.04 KB, created by
youenn fablet
on 2019-06-12 09:21:08 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
youenn fablet
Created:
2019-06-12 09:21:08 PDT
Size:
587.04 KB
patch
obsolete
>Subversion Revision: 246347 >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index 8d06b5517faeb1b934c6bbee54f4431b89d37874..000ac30d2f03d8928ee4cb86c8f093961f53dd79 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,14 @@ >+2019-06-11 Youenn Fablet <youenn@apple.com> >+ >+ Import WPT websockets tests >+ https://bugs.webkit.org/show_bug.cgi?id=198774 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * platform/mac-wk1/TestExpectations: >+ * TestExpectations: >+ * tests-options.json: >+ > 2019-06-11 Zalan Bujtas <zalan@apple.com> > > LayoutTests/fast/events/touch/ios/double-tap-for-double-click* test cases are failing >diff --git a/LayoutTests/imported/w3c/ChangeLog b/LayoutTests/imported/w3c/ChangeLog >index ddcfdb4edd0ce2080d38a71cb5129486ef3f9dee..88deb2946ffe60b63c75dbf57efb435f595da5b8 100644 >--- a/LayoutTests/imported/w3c/ChangeLog >+++ b/LayoutTests/imported/w3c/ChangeLog >@@ -1,3 +1,16 @@ >+2019-06-11 Youenn Fablet <youenn@apple.com> >+ >+ Import WPT websockets tests >+ https://bugs.webkit.org/show_bug.cgi?id=198774 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * resources/import-expectations.json: >+ * resources/resource-files.json: >+ * web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/abort.sub.window-expected.txt: >+ Rebasing since we now have some websockets specific handlers. >+ * web-platform-tests/websockets: Added. >+ > 2019-06-11 Devin Rousso <drousso@apple.com> > > Sort the computed styles list >diff --git a/LayoutTests/TestExpectations b/LayoutTests/TestExpectations >index 71b58f02c15943e0294b8ca094c00b012a1abee3..08069e90b2adbde79c1790cfc2c6e58a3bfbb897 100644 >--- a/LayoutTests/TestExpectations >+++ b/LayoutTests/TestExpectations >@@ -3290,5 +3290,125 @@ webkit.org/b/157743 imported/w3c/web-platform-tests/resize-observer/eventloop.ht > > webkit.org/b/198103 imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/offsets-into-the-media-resource/currentTime.html [ Pass Failure ] > >+imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/005.html [ DumpJSConsoleLogInStdErr ] >+imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/006.html [ DumpJSConsoleLogInStdErr ] >+imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-setter.html [ DumpJSConsoleLogInStdErr ] >+imported/w3c/web-platform-tests/websockets/constructor/008.html [ DumpJSConsoleLogInStdErr ] >+imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/020.html [ DumpJSConsoleLogInStdErr ] >+imported/w3c/web-platform-tests/websockets/opening-handshake/003.html [ DumpJSConsoleLogInStdErr ] >+imported/w3c/web-platform-tests/websockets/close-invalid.any.worker.html [ DumpJSConsoleLogInStdErr ] >+imported/w3c/web-platform-tests/websockets/bufferedAmount-unchanged-by-sync-xhr.any.worker.html [ DumpJSConsoleLogInStdErr ] >+imported/w3c/web-platform-tests/websockets/Create-Secure-verify-url-set-non-default-port.any.worker.html [ DumpJSConsoleLogInStdErr ] >+imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-getter.html [ DumpJSConsoleLogInStdErr ] >+imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/004.html [ DumpJSConsoleLogInStdErr ] >+imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/005.html [ DumpJSConsoleLogInStdErr ] >+ >+# Flaky WebSocket tests. >+imported/w3c/web-platform-tests/websockets/cookies/005.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/constructor/014.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Send-unicode-data.any.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Send-65K-data.any.worker.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Send-Unpaired-Surrogates.any.worker.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-connecting.html [ Pass Failure ] >+imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-basic.html [ Pass Failure ] >+imported/w3c/web-platform-tests/websockets/Close-reason-unpaired-surrogates.any.worker.html [ Pass Failure ] >+imported/w3c/web-platform-tests/websockets/Close-undefined.any.html [ Pass Failure ] >+imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-getting.html [ Pass Failure ] >+imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/006.html [ Pass Failure ] >+imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/015.html [ Pass Failure ] >+imported/w3c/web-platform-tests/websockets/constructor/011.html [ Pass Failure ] >+imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/007.html [ Pass Failure ] >+imported/w3c/web-platform-tests/websockets/constructor/010.html [ Pass Failure ] >+imported/w3c/web-platform-tests/websockets/Close-1000-reason.any.html [ Pass Failure ] >+imported/w3c/web-platform-tests/websockets/binary/001.html [ Pass Failure ] >+imported/w3c/web-platform-tests/websockets/closing-handshake/002.html [ Pass Failure ] >+imported/w3c/web-platform-tests/websockets/constructor/006.html [ Pass Failure ] >+imported/w3c/web-platform-tests/websockets/cookies/001.html [ Pass Failure ] >+imported/w3c/web-platform-tests/websockets/interfaces/CloseEvent/clean-close.html [ Pass Failure ] >+ >+# Timing out WebSocket tests. >+imported/w3c/web-platform-tests/websockets/Create-blocked-port.any.worker.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Create-blocked-port.any.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/binaryType-wrong-value.any.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/binaryType-wrong-value.any.worker.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/bufferedAmount-unchanged-by-sync-xhr.any.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Close-Reason-124Bytes.any.worker.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Close-3000-verify-code.any.worker.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-protocol-string.any.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Send-65K-data.any.worker.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Close-1005.any.worker.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Close-Reason-Unpaired-surrogates.any.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Create-on-worker-shutdown.any.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Close-server-initiated-close.any.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybuffer.any.worker.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Close-1000-verify-code.any.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Close-2999-reason.any.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Create-Secure-extensions-empty.any.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Close-3000-reason.any.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybuffer.any.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Close-undefined.any.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Close-onlyReason.any.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-float32.any.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Close-3000-reason.any.worker.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Close-4999-reason.any.worker.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url.any.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-int32.any.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint8-offset.any.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-float64.any.worker.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-array-protocols.any.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Close-undefined.any.worker.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint16-offset-length.any.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Close-readyState-Closing.any.worker.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Close-1005-verify-code.any.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Close-4999-reason.any.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Close-1000-reason.any.worker.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Close-readyState-Closed.any.worker.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint16-offset-length.any.worker.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Close-1005-verify-code.any.worker.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Close-1000.any.worker.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Close-Reason-124Bytes.any.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint8-offset-length.any.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Close-3000-verify-code.any.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-binaryType-blob.any.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-binaryType-blob.any.worker.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-protocol-string.any.worker.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Close-2999-reason.any.worker.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Close-1000.any.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Create-Secure-extensions-empty.any.worker.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Close-1005.any.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Send-65K-data.any.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Close-server-initiated-close.any.worker.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-protocol-setCorrectly.any.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Close-readyState-Closing.any.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Close-onlyReason.any.worker.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-protocol-setCorrectly.any.worker.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Close-1000-verify-code.any.worker.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Send-binary-65K-arraybuffer.any.worker.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Close-1000-reason.any.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-array-protocols.any.worker.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Close-Reason-Unpaired-surrogates.any.worker.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Send-binary-65K-arraybuffer.any.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Close-readyState-Closed.any.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url.any.worker.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint8-offset-length.any.worker.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-float32.any.worker.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-float64.any.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-int32.any.worker.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint32-offset.any.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint32-offset.any.worker.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint8-offset.any.worker.html [ Skip ] >+imported/w3c/web-platform-tests/websockets/Secure-Send-binary-blob.any.html >+imported/w3c/web-platform-tests/websockets/Secure-Send-binary-blob.any.worker.html >+imported/w3c/web-platform-tests/websockets/Secure-Send-data.any.html >+imported/w3c/web-platform-tests/websockets/Secure-Send-data.any.worker.html >+imported/w3c/web-platform-tests/websockets/Secure-Send-null.any.html >+imported/w3c/web-platform-tests/websockets/Secure-Send-null.any.worker.html >+imported/w3c/web-platform-tests/websockets/Secure-Send-paired-surrogates.any.html >+imported/w3c/web-platform-tests/websockets/Secure-Send-paired-surrogates.any.worker.html >+imported/w3c/web-platform-tests/websockets/Secure-Send-unicode-data.any.html >+imported/w3c/web-platform-tests/websockets/Secure-Send-unicode-data.any.worker.html >+imported/w3c/web-platform-tests/websockets/Secure-Send-unpaired-surrogates.any.html >+imported/w3c/web-platform-tests/websockets/Secure-Send-unpaired-surrogates.any.worker.html >+ > # iOS only > fast/dom/linkify-phone-numbers.html [ ImageOnlyFailure ] >diff --git a/LayoutTests/imported/w3c/resources/import-expectations.json b/LayoutTests/imported/w3c/resources/import-expectations.json >index 22a538a9227d0dee4bda3f166914533224e28420..07e644faeaf49cdf62e18d98659d09363f7d8370 100644 >--- a/LayoutTests/imported/w3c/resources/import-expectations.json >+++ b/LayoutTests/imported/w3c/resources/import-expectations.json >@@ -352,7 +352,7 @@ > "web-platform-tests/webmessaging/": "import", > "web-platform-tests/webrtc": "import", > "web-platform-tests/webrtc/legacy": "skip", >- "web-platform-tests/websockets": "skip", >+ "web-platform-tests/websockets": "import", > "web-platform-tests/webstorage": "skip", > "web-platform-tests/webusb": "skip", > "web-platform-tests/webvr": "skip", >diff --git a/LayoutTests/imported/w3c/resources/resource-files.json b/LayoutTests/imported/w3c/resources/resource-files.json >index e942698df654dc1bf2e92ef01aa49390644da155..a7c960c86b0c8a190462d2da15f3c7bff27f7e18 100644 >--- a/LayoutTests/imported/w3c/resources/resource-files.json >+++ b/LayoutTests/imported/w3c/resources/resource-files.json >@@ -1168,6 +1168,13 @@ > "web-platform-tests/webmessaging/support/ChildWindowPostMessage.htm", > "web-platform-tests/webmessaging/without-ports/019-1.html", > "web-platform-tests/webmessaging/without-ports/020-1.html", >+ "web-platform-tests/websockets/multi-globals/support/incumbent.sub.html", >+ "web-platform-tests/websockets/multi-globals/support/relevant.html", >+ "web-platform-tests/websockets/unload-a-document/001-1.html", >+ "web-platform-tests/websockets/unload-a-document/001-2.html", >+ "web-platform-tests/websockets/unload-a-document/002-1.html", >+ "web-platform-tests/websockets/unload-a-document/002-2.html", >+ "web-platform-tests/websockets/unload-a-document/005-1.html", > "web-platform-tests/workers/data-url-shared-window.html", > "web-platform-tests/workers/non-automated/application-cache-dedicated.html", > "web-platform-tests/workers/non-automated/infinite-nested.html", >diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/abort.sub.window-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/abort.sub.window-expected.txt >index 78cb8e605e11eb11fa67d441135a39ee68a2e894..fed938f5e0fe8ccaf8f742e5c87cb77edff9e7bc 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/abort.sub.window-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/abort.sub.window-expected.txt >@@ -1,9 +1,7 @@ >-CONSOLE MESSAGE: WebSocket connection to 'ws://localhost:49001/echo' failed: Unexpected response code: 404 >-CONSOLE MESSAGE: WebSocket connection to 'ws://localhost:49001/echo' failed: Unexpected response code: 404 > > PASS document.open() does not abort documents that are not navigating (XMLHttpRequest) > PASS document.open() does not abort documents that are not navigating (fetch()) > PASS document.open() does not abort documents that are not navigating (image loading) >-FAIL document.open() does not abort documents that are not navigating (establish a WebSocket connection) assert_unreached: WebSocket should have no error Reached unreachable code >-FAIL document.open() does not abort documents that are not navigating (already established WebSocket connection) assert_unreached: WebSocket should have no error Reached unreachable code >+PASS document.open() does not abort documents that are not navigating (establish a WebSocket connection) >+PASS document.open() does not abort documents that are not navigating (already established WebSocket connection) > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-1000-reason.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-1000-reason.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..eed24ccd72c0d7d3fbac5eeb4b78f55a01bcb973 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-1000-reason.any-expected.txt >@@ -0,0 +1,4 @@ >+ >+PASS Create WebSocket - Close the Connection - Connection should be opened >+PASS Create WebSocket - Close the Connection - close(1000, reason) - readyState should be in CLOSED state and wasClean is TRUE - Connection should be closed >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-1000-reason.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-1000-reason.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-1000-reason.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-1000-reason.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-1000-reason.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..e8b49b5875bafe8e4e29b275c8d4709fea1e352f >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-1000-reason.any.js >@@ -0,0 +1,20 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Create WebSocket - Close the Connection - Connection should be opened"); >+var testClose = async_test("Create WebSocket - Close the Connection - close(1000, reason) - readyState should be in CLOSED state and wasClean is TRUE - Connection should be closed"); >+ >+var wsocket = CreateWebSocket(false, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ wsocket.close(1000, "Clean Close"); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be opened"); >+ assert_equals(wsocket.readyState, 3, "readyState should be 3(CLOSED)"); >+ assert_equals(evt.wasClean, true, "wasClean should be TRUE"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-1000-reason.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-1000-reason.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..eed24ccd72c0d7d3fbac5eeb4b78f55a01bcb973 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-1000-reason.any.worker-expected.txt >@@ -0,0 +1,4 @@ >+ >+PASS Create WebSocket - Close the Connection - Connection should be opened >+PASS Create WebSocket - Close the Connection - close(1000, reason) - readyState should be in CLOSED state and wasClean is TRUE - Connection should be closed >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-1000-reason.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-1000-reason.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-1000-reason.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-1000.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-1000.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..53547786e0b069e3d79bac6ce198ca46c8aac724 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-1000.any-expected.txt >@@ -0,0 +1,4 @@ >+ >+PASS Create WebSocket - Connection should be opened >+PASS Create WebSocket - Close the Connection - close(1000) - readyState should be in CLOSED state and wasClean is TRUE - Connection should be closed >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-1000.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-1000.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-1000.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-1000.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-1000.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..bcfceffbd54d3e71f7e45b03f703f01f8ad370a4 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-1000.any.js >@@ -0,0 +1,20 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Create WebSocket - Connection should be opened"); >+var testClose = async_test("Create WebSocket - Close the Connection - close(1000) - readyState should be in CLOSED state and wasClean is TRUE - Connection should be closed"); >+ >+var wsocket = CreateWebSocket(false, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ wsocket.close(1000); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be opened"); >+ assert_equals(wsocket.readyState, 3, "readyState should be 3(CLOSED)"); >+ assert_equals(evt.wasClean, true, "wasClean should be TRUE"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-1000.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-1000.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..53547786e0b069e3d79bac6ce198ca46c8aac724 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-1000.any.worker-expected.txt >@@ -0,0 +1,4 @@ >+ >+PASS Create WebSocket - Connection should be opened >+PASS Create WebSocket - Close the Connection - close(1000) - readyState should be in CLOSED state and wasClean is TRUE - Connection should be closed >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-1000.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-1000.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-1000.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-Reason-124Bytes.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-Reason-124Bytes.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..5673bdf70138dd0a0713c0e2169f78bf6289d5fe >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-Reason-124Bytes.any-expected.txt >@@ -0,0 +1,4 @@ >+CONSOLE MESSAGE: line 12: WebSocket close message is too long. >+ >+PASS Create WebSocket - Close the Connection - close(code, 'reason more than 123 bytes') - SYNTAX_ERR is thrown >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-Reason-124Bytes.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-Reason-124Bytes.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-Reason-124Bytes.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-Reason-124Bytes.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-Reason-124Bytes.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..357748a7c4df65f34c00fafa4a96a3a427fa2508 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-Reason-124Bytes.any.js >@@ -0,0 +1,15 @@ >+// META: script=websocket.sub.js >+ >+var test = async_test("Create WebSocket - Close the Connection - close(code, 'reason more than 123 bytes') - SYNTAX_ERR is thrown"); >+ >+var wsocket = CreateWebSocket(false, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', test.step_func(function(evt) { >+ var reason = "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123"; >+ assert_equals(reason.length, 124); >+ assert_throws("SYNTAX_ERR", function() { >+ wsocket.close(1000, reason) >+ }); >+ test.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-Reason-124Bytes.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-Reason-124Bytes.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..4fb47ebb2b28777b49f1725eb85b6f562e6c69a2 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-Reason-124Bytes.any.worker-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS Create WebSocket - Close the Connection - close(code, 'reason more than 123 bytes') - SYNTAX_ERR is thrown >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-Reason-124Bytes.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-Reason-124Bytes.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-Reason-124Bytes.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-reason-unpaired-surrogates.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-reason-unpaired-surrogates.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..d40f65d391608a40de70e8d5413a3e948cf61dda >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-reason-unpaired-surrogates.any-expected.txt >@@ -0,0 +1,4 @@ >+ >+PASS Create WebSocket - Close the Connection - close(reason with unpaired surrogates) - connection should get opened >+FAIL Create WebSocket - Close the Connection - close(reason with unpaired surrogates) - connection should get closed assert_equals: reason replaced with replacement character expected "\ufffd" but got "" >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-reason-unpaired-surrogates.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-reason-unpaired-surrogates.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-reason-unpaired-surrogates.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-reason-unpaired-surrogates.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-reason-unpaired-surrogates.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..0b2e6813cbcf106ed67020e142a9fbaeb2793842 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-reason-unpaired-surrogates.any.js >@@ -0,0 +1,21 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Create WebSocket - Close the Connection - close(reason with unpaired surrogates) - connection should get opened"); >+var testClose = async_test("Create WebSocket - Close the Connection - close(reason with unpaired surrogates) - connection should get closed"); >+ >+var wsocket = CreateWebSocket(false, false, false); >+var isOpenCalled = false; >+var replacementChar = "\uFFFD"; >+var reason = "\uD807"; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ wsocket.close(1000, reason); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be opened"); >+ assert_equals(evt.reason, replacementChar, "reason replaced with replacement character"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-reason-unpaired-surrogates.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-reason-unpaired-surrogates.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..d40f65d391608a40de70e8d5413a3e948cf61dda >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-reason-unpaired-surrogates.any.worker-expected.txt >@@ -0,0 +1,4 @@ >+ >+PASS Create WebSocket - Close the Connection - close(reason with unpaired surrogates) - connection should get opened >+FAIL Create WebSocket - Close the Connection - close(reason with unpaired surrogates) - connection should get closed assert_equals: reason replaced with replacement character expected "\ufffd" but got "" >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-reason-unpaired-surrogates.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-reason-unpaired-surrogates.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-reason-unpaired-surrogates.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-undefined.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-undefined.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..c2c15e0b8a0e54a623bcb4fdca1f4cef72eeb240 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-undefined.any-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS Untitled >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-undefined.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-undefined.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-undefined.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-undefined.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-undefined.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..67bc9b219c13353104a7e3e1b93905f26b4a6523 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-undefined.any.js >@@ -0,0 +1,11 @@ >+// META: script=websocket.sub.js >+ >+var test = async_test(); >+ >+var wsocket = CreateWebSocket(false, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', test.step_func(function(evt) { >+ wsocket.close(undefined); >+ test.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-undefined.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-undefined.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..c2c15e0b8a0e54a623bcb4fdca1f4cef72eeb240 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-undefined.any.worker-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS Untitled >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-undefined.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-undefined.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-undefined.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-extensions-empty.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-extensions-empty.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-extensions-empty.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-extensions-empty.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-extensions-empty.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..0a2d883d35b6f641d762163c4ab66f4c4fae9351 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-extensions-empty.any.js >@@ -0,0 +1,21 @@ >+// META: timeout=long >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Create Secure WebSocket - wsocket.extensions should be set to '' after connection is established - Connection should be opened"); >+var testClose = async_test("Create Secure WebSocket - wsocket.extensions should be set to '' after connection is established - Connection should be closed"); >+ >+var wsocket = CreateWebSocket(true, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ assert_equals(wsocket.extensions, "", "extensions should be empty"); >+ wsocket.close(); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be closed"); >+ assert_equals(evt.wasClean, true, "wasClean should be true"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-extensions-empty.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-extensions-empty.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-extensions-empty.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-url-with-space.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-url-with-space.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..ae0072b219933ccf1b8b01a0f8748a4c8bccc4f0 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-url-with-space.any-expected.txt >@@ -0,0 +1,4 @@ >+CONSOLE MESSAGE: line 49: Invalid url for WebSocket ws://web platform.test:49001/echo >+ >+PASS Create Secure WebSocket - Pass a URL with a space - SYNTAX_ERR should be thrown >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-url-with-space.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-url-with-space.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-url-with-space.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-url-with-space.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-url-with-space.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..f6ca19e04726a428fd8c635dc65919ca953c0479 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-url-with-space.any.js >@@ -0,0 +1,9 @@ >+// META: script=websocket.sub.js >+ >+test(function() { >+ var wsocket; >+ var spaceUrl = "web platform.test"; >+ assert_throws("SYNTAX_ERR", function() { >+ wsocket = CreateWebSocketWithSpaceInUrl(spaceUrl) >+ }); >+}, "Create Secure WebSocket - Pass a URL with a space - SYNTAX_ERR should be thrown") >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-url-with-space.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-url-with-space.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..bb832a60fc25031b5a8021e3692e225feef59bf1 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-url-with-space.any.worker-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS Create Secure WebSocket - Pass a URL with a space - SYNTAX_ERR should be thrown >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-url-with-space.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-url-with-space.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-url-with-space.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-array-protocols.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-array-protocols.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-array-protocols.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-array-protocols.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-array-protocols.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..b0ebe6a0dbe454e12a1040db90f4310c9bdeba3d >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-array-protocols.any.js >@@ -0,0 +1,20 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Create Secure WebSocket - Pass a valid URL and array of protocol strings - Connection should be opened"); >+var testClose = async_test("Create Secure WebSocket - Pass a valid URL and array of protocol strings - Connection should be closed"); >+ >+var wsocket = CreateWebSocket(true, false, true); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ assert_equals(wsocket.readyState, 1, "readyState should be 1(OPEN)"); >+ wsocket.close(); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_equals(evt.wasClean, true, "wasClean should be true"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-array-protocols.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-array-protocols.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-array-protocols.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-binaryType-blob.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-binaryType-blob.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-binaryType-blob.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-binaryType-blob.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-binaryType-blob.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..a639ee88ab290241696b498bb46501e515ee1235 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-binaryType-blob.any.js >@@ -0,0 +1,20 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Create Secure WebSocket - wsocket.binaryType should be set to 'blob' after connection is established - Connection should be opened"); >+var testClose = async_test("Create Secure WebSocket - wsocket.binaryType should be set to 'blob' after connection is established - Connection should be closed"); >+ >+var wsocket = CreateWebSocket(true, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ assert_equals(wsocket.binaryType, "blob", "binaryType should be set to Blob"); >+ wsocket.close(); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_equals(evt.wasClean, true, "wasClean should be true"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-binaryType-blob.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-binaryType-blob.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-binaryType-blob.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-protocol-setCorrectly.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-protocol-setCorrectly.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-protocol-setCorrectly.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-protocol-setCorrectly.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-protocol-setCorrectly.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..768e1bc46f6b81825ef997b4b8702b666207686c >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-protocol-setCorrectly.any.js >@@ -0,0 +1,20 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Create Secure WebSocket - Pass a valid URL and protocol string - protocol should be set correctly - Connection should be opened"); >+var testClose = async_test("Create Secure WebSocket - Pass a valid URL and protocol string - Connection should be closed"); >+ >+var wsocket = CreateWebSocket(true, true, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ assert_equals(wsocket.protocol, "echo", "protocol should be set to echo"); >+ wsocket.close(); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_equals(evt.wasClean, true, "wasClean should be true"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-protocol-setCorrectly.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-protocol-setCorrectly.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-protocol-setCorrectly.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-protocol-string.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-protocol-string.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-protocol-string.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-protocol-string.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-protocol-string.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..e1e661cf56771408bf8f8c038945431f5d315986 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-protocol-string.any.js >@@ -0,0 +1,20 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Create Secure WebSocket - Check readyState is 1"); >+var testClose = async_test("Create Secure WebSocket - Pass a valid URL and protocol string - Connection should be closed"); >+ >+var wsocket = CreateWebSocket(true, true, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ assert_equals(wsocket.readyState, 1, "readyState should be 1(OPEN)"); >+ wsocket.close(); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_equals(evt.wasClean, true, "wasClean should be true"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-protocol-string.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-protocol-string.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-protocol-string.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..ab02a19e1374bf6561687f27594360bf50f71856 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url.any.js >@@ -0,0 +1,20 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Create Secure WebSocket - Pass a valid URL - Connection should be opened"); >+var testClose = async_test("Create Secure WebSocket - Pass a valid URL - Connection should be closed"); >+ >+var wsocket = CreateWebSocket(true, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ assert_equals(wsocket.readyState, 1, "readyState should be 1(OPEN)"); >+ wsocket.close(); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_equals(evt.wasClean, true, "wasClean should be true"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-verify-url-set-non-default-port.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-verify-url-set-non-default-port.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..e18e7efc79058af28c11353b5e62670148b756a5 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-verify-url-set-non-default-port.any-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS Create Secure WebSocket - wsocket.url should be set correctly >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-verify-url-set-non-default-port.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-verify-url-set-non-default-port.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-verify-url-set-non-default-port.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-verify-url-set-non-default-port.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-verify-url-set-non-default-port.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..8ed985b58e2bd9fb33bfd39683a9f0504084fd62 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-verify-url-set-non-default-port.any.js >@@ -0,0 +1,7 @@ >+// META: script=websocket.sub.js >+ >+test(function() { >+ var urlNonDefaultPort = "wss://" + __SERVER__NAME + ":" + __NEW__SECURE__PORT + "/" + __PATH; >+ var wsocket = new WebSocket(urlNonDefaultPort); >+ assert_equals(wsocket.url, urlNonDefaultPort, "wsocket.url is set correctly"); >+}, "Create Secure WebSocket - wsocket.url should be set correctly") >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-verify-url-set-non-default-port.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-verify-url-set-non-default-port.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..e18e7efc79058af28c11353b5e62670148b756a5 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-verify-url-set-non-default-port.any.worker-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS Create Secure WebSocket - wsocket.url should be set correctly >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-verify-url-set-non-default-port.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-verify-url-set-non-default-port.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-verify-url-set-non-default-port.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-asciiSep-protocol-string.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-asciiSep-protocol-string.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..9f0b0de94a44f0867c1938ed4fcc4ca18c782f7a >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-asciiSep-protocol-string.any-expected.txt >@@ -0,0 +1,4 @@ >+CONSOLE MESSAGE: line 37: Wrong protocol for WebSocket '/echo' >+ >+PASS Create WebSocket - Pass a valid URL and a protocol string with an ascii separator character - SYNTAX_ERR is thrown >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-asciiSep-protocol-string.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-asciiSep-protocol-string.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-asciiSep-protocol-string.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-asciiSep-protocol-string.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-asciiSep-protocol-string.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..37657f18dfca8fee3157c48e88798bdbc41f68c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-asciiSep-protocol-string.any.js >@@ -0,0 +1,9 @@ >+// META: script=websocket.sub.js >+ >+test(function() { >+ var asciiWithSep = "/echo"; >+ var wsocket; >+ assert_throws("SYNTAX_ERR", function() { >+ wsocket = CreateWebSocketWithAsciiSep(asciiWithSep) >+ }); >+}, "Create WebSocket - Pass a valid URL and a protocol string with an ascii separator character - SYNTAX_ERR is thrown") >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-asciiSep-protocol-string.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-asciiSep-protocol-string.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..92af6c22253b21382be1c24ece66603d985818a6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-asciiSep-protocol-string.any.worker-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS Create WebSocket - Pass a valid URL and a protocol string with an ascii separator character - SYNTAX_ERR is thrown >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-asciiSep-protocol-string.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-asciiSep-protocol-string.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-asciiSep-protocol-string.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-blocked-port.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-blocked-port.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..9505c21319ece836977d7246f5e34e9c8b53fd56 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-blocked-port.any-expected.txt >@@ -0,0 +1,137 @@ >+CONSOLE MESSAGE: line 43: WebSocket port 1 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 7 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 9 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 11 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 13 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 15 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 17 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 19 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 20 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 21 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 22 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 23 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 25 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 37 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 42 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 43 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 53 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 77 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 79 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 87 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 95 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 101 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 102 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 103 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 104 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 109 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 110 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 111 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 113 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 115 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 117 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 119 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 123 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 135 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 139 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 143 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 179 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 389 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 427 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 465 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 512 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 513 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 514 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 515 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 526 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 530 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 531 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 532 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 540 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 548 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 556 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 563 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 587 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 601 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 636 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 993 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 995 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 2049 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 3659 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 4045 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 6000 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 6665 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 6666 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 6667 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 6668 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 6669 blocked >+CONSOLE MESSAGE: line 43: WebSocket port 6697 blocked >+ >+PASS Basic check >+FAIL WebSocket blocked port test 1 The operation is insecure. >+FAIL WebSocket blocked port test 7 The operation is insecure. >+FAIL WebSocket blocked port test 9 The operation is insecure. >+FAIL WebSocket blocked port test 11 The operation is insecure. >+FAIL WebSocket blocked port test 13 The operation is insecure. >+FAIL WebSocket blocked port test 15 The operation is insecure. >+FAIL WebSocket blocked port test 17 The operation is insecure. >+FAIL WebSocket blocked port test 19 The operation is insecure. >+FAIL WebSocket blocked port test 20 The operation is insecure. >+FAIL WebSocket blocked port test 21 The operation is insecure. >+FAIL WebSocket blocked port test 22 The operation is insecure. >+FAIL WebSocket blocked port test 23 The operation is insecure. >+FAIL WebSocket blocked port test 25 The operation is insecure. >+FAIL WebSocket blocked port test 37 The operation is insecure. >+FAIL WebSocket blocked port test 42 The operation is insecure. >+FAIL WebSocket blocked port test 43 The operation is insecure. >+FAIL WebSocket blocked port test 53 The operation is insecure. >+FAIL WebSocket blocked port test 77 The operation is insecure. >+FAIL WebSocket blocked port test 79 The operation is insecure. >+FAIL WebSocket blocked port test 87 The operation is insecure. >+FAIL WebSocket blocked port test 95 The operation is insecure. >+FAIL WebSocket blocked port test 101 The operation is insecure. >+FAIL WebSocket blocked port test 102 The operation is insecure. >+FAIL WebSocket blocked port test 103 The operation is insecure. >+FAIL WebSocket blocked port test 104 The operation is insecure. >+FAIL WebSocket blocked port test 109 The operation is insecure. >+FAIL WebSocket blocked port test 110 The operation is insecure. >+FAIL WebSocket blocked port test 111 The operation is insecure. >+FAIL WebSocket blocked port test 113 The operation is insecure. >+FAIL WebSocket blocked port test 115 The operation is insecure. >+FAIL WebSocket blocked port test 117 The operation is insecure. >+FAIL WebSocket blocked port test 119 The operation is insecure. >+FAIL WebSocket blocked port test 123 The operation is insecure. >+FAIL WebSocket blocked port test 135 The operation is insecure. >+FAIL WebSocket blocked port test 139 The operation is insecure. >+FAIL WebSocket blocked port test 143 The operation is insecure. >+FAIL WebSocket blocked port test 179 The operation is insecure. >+FAIL WebSocket blocked port test 389 The operation is insecure. >+FAIL WebSocket blocked port test 427 The operation is insecure. >+FAIL WebSocket blocked port test 465 The operation is insecure. >+FAIL WebSocket blocked port test 512 The operation is insecure. >+FAIL WebSocket blocked port test 513 The operation is insecure. >+FAIL WebSocket blocked port test 514 The operation is insecure. >+FAIL WebSocket blocked port test 515 The operation is insecure. >+FAIL WebSocket blocked port test 526 The operation is insecure. >+FAIL WebSocket blocked port test 530 The operation is insecure. >+FAIL WebSocket blocked port test 531 The operation is insecure. >+FAIL WebSocket blocked port test 532 The operation is insecure. >+FAIL WebSocket blocked port test 540 The operation is insecure. >+FAIL WebSocket blocked port test 548 The operation is insecure. >+FAIL WebSocket blocked port test 556 The operation is insecure. >+FAIL WebSocket blocked port test 563 The operation is insecure. >+FAIL WebSocket blocked port test 587 The operation is insecure. >+FAIL WebSocket blocked port test 601 The operation is insecure. >+FAIL WebSocket blocked port test 636 The operation is insecure. >+FAIL WebSocket blocked port test 993 The operation is insecure. >+FAIL WebSocket blocked port test 995 The operation is insecure. >+FAIL WebSocket blocked port test 2049 The operation is insecure. >+FAIL WebSocket blocked port test 3659 The operation is insecure. >+FAIL WebSocket blocked port test 4045 The operation is insecure. >+FAIL WebSocket blocked port test 6000 The operation is insecure. >+FAIL WebSocket blocked port test 6665 The operation is insecure. >+FAIL WebSocket blocked port test 6666 The operation is insecure. >+FAIL WebSocket blocked port test 6667 The operation is insecure. >+FAIL WebSocket blocked port test 6668 The operation is insecure. >+FAIL WebSocket blocked port test 6669 The operation is insecure. >+FAIL WebSocket blocked port test 6697 The operation is insecure. >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-blocked-port.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-blocked-port.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-blocked-port.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-blocked-port.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-blocked-port.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..0ac5b62017087ed53a86f7905de0932c8c934072 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-blocked-port.any.js >@@ -0,0 +1,84 @@ >+// META: script=websocket.sub.js >+ >+async_test(t => { >+ const ws = CreateWebSocketWithBlockedPort(__PORT) >+ ws.onerror = t.unreached_func() >+ ws.onopen = t.step_func_done() >+}, 'Basic check'); >+// list of bad ports according to >+// https://fetch.spec.whatwg.org/#port-blocking >+[ >+ 1, // tcpmux >+ 7, // echo >+ 9, // discard >+ 11, // systat >+ 13, // daytime >+ 15, // netstat >+ 17, // qotd >+ 19, // chargen >+ 20, // ftp-data >+ 21, // ftp >+ 22, // ssh >+ 23, // telnet >+ 25, // smtp >+ 37, // time >+ 42, // name >+ 43, // nicname >+ 53, // domain >+ 77, // priv-rjs >+ 79, // finger >+ 87, // ttylink >+ 95, // supdup >+ 101, // hostriame >+ 102, // iso-tsap >+ 103, // gppitnp >+ 104, // acr-nema >+ 109, // pop2 >+ 110, // pop3 >+ 111, // sunrpc >+ 113, // auth >+ 115, // sftp >+ 117, // uucp-path >+ 119, // nntp >+ 123, // ntp >+ 135, // loc-srv / epmap >+ 139, // netbios >+ 143, // imap2 >+ 179, // bgp >+ 389, // ldap >+ 427, // afp (alternate) >+ 465, // smtp (alternate) >+ 512, // print / exec >+ 513, // login >+ 514, // shell >+ 515, // printer >+ 526, // tempo >+ 530, // courier >+ 531, // chat >+ 532, // netnews >+ 540, // uucp >+ 548, // afp >+ 556, // remotefs >+ 563, // nntp+ssl >+ 587, // smtp (outgoing) >+ 601, // syslog-conn >+ 636, // ldap+ssl >+ 993, // ldap+ssl >+ 995, // pop3+ssl >+ 2049, // nfs >+ 3659, // apple-sasl >+ 4045, // lockd >+ 6000, // x11 >+ 6665, // irc (alternate) >+ 6666, // irc (alternate) >+ 6667, // irc (default) >+ 6668, // irc (alternate) >+ 6669, // irc (alternate) >+ 6697, // irc+tls >+].forEach(blockedPort => { >+ async_test(t => { >+ const ws = CreateWebSocketWithBlockedPort(blockedPort) >+ ws.onerror = t.step_func_done() >+ ws.onopen = t.unreached_func() >+ }, "WebSocket blocked port test " + blockedPort) >+}) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-blocked-port.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-blocked-port.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..85ae5465b4b5b9877a4d18ae4cde0432f570ca62 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-blocked-port.any.worker-expected.txt >@@ -0,0 +1,70 @@ >+ >+PASS Basic check >+FAIL WebSocket blocked port test 1 The operation is insecure. >+FAIL WebSocket blocked port test 7 The operation is insecure. >+FAIL WebSocket blocked port test 9 The operation is insecure. >+FAIL WebSocket blocked port test 11 The operation is insecure. >+FAIL WebSocket blocked port test 13 The operation is insecure. >+FAIL WebSocket blocked port test 15 The operation is insecure. >+FAIL WebSocket blocked port test 17 The operation is insecure. >+FAIL WebSocket blocked port test 19 The operation is insecure. >+FAIL WebSocket blocked port test 20 The operation is insecure. >+FAIL WebSocket blocked port test 21 The operation is insecure. >+FAIL WebSocket blocked port test 22 The operation is insecure. >+FAIL WebSocket blocked port test 23 The operation is insecure. >+FAIL WebSocket blocked port test 25 The operation is insecure. >+FAIL WebSocket blocked port test 37 The operation is insecure. >+FAIL WebSocket blocked port test 42 The operation is insecure. >+FAIL WebSocket blocked port test 43 The operation is insecure. >+FAIL WebSocket blocked port test 53 The operation is insecure. >+FAIL WebSocket blocked port test 77 The operation is insecure. >+FAIL WebSocket blocked port test 79 The operation is insecure. >+FAIL WebSocket blocked port test 87 The operation is insecure. >+FAIL WebSocket blocked port test 95 The operation is insecure. >+FAIL WebSocket blocked port test 101 The operation is insecure. >+FAIL WebSocket blocked port test 102 The operation is insecure. >+FAIL WebSocket blocked port test 103 The operation is insecure. >+FAIL WebSocket blocked port test 104 The operation is insecure. >+FAIL WebSocket blocked port test 109 The operation is insecure. >+FAIL WebSocket blocked port test 110 The operation is insecure. >+FAIL WebSocket blocked port test 111 The operation is insecure. >+FAIL WebSocket blocked port test 113 The operation is insecure. >+FAIL WebSocket blocked port test 115 The operation is insecure. >+FAIL WebSocket blocked port test 117 The operation is insecure. >+FAIL WebSocket blocked port test 119 The operation is insecure. >+FAIL WebSocket blocked port test 123 The operation is insecure. >+FAIL WebSocket blocked port test 135 The operation is insecure. >+FAIL WebSocket blocked port test 139 The operation is insecure. >+FAIL WebSocket blocked port test 143 The operation is insecure. >+FAIL WebSocket blocked port test 179 The operation is insecure. >+FAIL WebSocket blocked port test 389 The operation is insecure. >+FAIL WebSocket blocked port test 427 The operation is insecure. >+FAIL WebSocket blocked port test 465 The operation is insecure. >+FAIL WebSocket blocked port test 512 The operation is insecure. >+FAIL WebSocket blocked port test 513 The operation is insecure. >+FAIL WebSocket blocked port test 514 The operation is insecure. >+FAIL WebSocket blocked port test 515 The operation is insecure. >+FAIL WebSocket blocked port test 526 The operation is insecure. >+FAIL WebSocket blocked port test 530 The operation is insecure. >+FAIL WebSocket blocked port test 531 The operation is insecure. >+FAIL WebSocket blocked port test 532 The operation is insecure. >+FAIL WebSocket blocked port test 540 The operation is insecure. >+FAIL WebSocket blocked port test 548 The operation is insecure. >+FAIL WebSocket blocked port test 556 The operation is insecure. >+FAIL WebSocket blocked port test 563 The operation is insecure. >+FAIL WebSocket blocked port test 587 The operation is insecure. >+FAIL WebSocket blocked port test 601 The operation is insecure. >+FAIL WebSocket blocked port test 636 The operation is insecure. >+FAIL WebSocket blocked port test 993 The operation is insecure. >+FAIL WebSocket blocked port test 995 The operation is insecure. >+FAIL WebSocket blocked port test 2049 The operation is insecure. >+FAIL WebSocket blocked port test 3659 The operation is insecure. >+FAIL WebSocket blocked port test 4045 The operation is insecure. >+FAIL WebSocket blocked port test 6000 The operation is insecure. >+FAIL WebSocket blocked port test 6665 The operation is insecure. >+FAIL WebSocket blocked port test 6666 The operation is insecure. >+FAIL WebSocket blocked port test 6667 The operation is insecure. >+FAIL WebSocket blocked port test 6668 The operation is insecure. >+FAIL WebSocket blocked port test 6669 The operation is insecure. >+FAIL WebSocket blocked port test 6697 The operation is insecure. >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-blocked-port.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-blocked-port.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-blocked-port.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-invalid-urls.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-invalid-urls.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..3b5689d7e181f9d8f555fcdd212e384fddcda036 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-invalid-urls.any-expected.txt >@@ -0,0 +1,12 @@ >+CONSOLE MESSAGE: line 6: Wrong url scheme for WebSocket http://localhost:8800/echo >+CONSOLE MESSAGE: line 12: Wrong url scheme for WebSocket mailto:microsoft@microsoft.com >+CONSOLE MESSAGE: line 18: Wrong url scheme for WebSocket about:blank >+CONSOLE MESSAGE: line 24: Wrong url scheme for WebSocket http://localhost:8800/websockets/Create-invalid-urls.any.html?test >+CONSOLE MESSAGE: line 30: Wrong url scheme for WebSocket http://localhost:8800/websockets/Create-invalid-urls.any.html#test >+ >+PASS Url is /echo - should throw SYNTAX_ERR >+PASS Url is a mail address - should throw SYNTAX_ERR >+PASS Url is about:blank - should throw SYNTAX_ERR >+PASS Url is ?test - should throw SYNTAX_ERR >+PASS Url is #test - should throw SYNTAX_ERR >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-invalid-urls.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-invalid-urls.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-invalid-urls.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-invalid-urls.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-invalid-urls.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..5ae25a2cdc00c7f308b65a10d670fdf4e8f3582c >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-invalid-urls.any.js >@@ -0,0 +1,32 @@ >+// META: script=websocket.sub.js >+ >+var wsocket; >+test(function() { >+ assert_throws("SYNTAX_ERR", function() { >+ wsocket = new WebSocket("/echo") >+ }); >+}, "Url is /echo - should throw SYNTAX_ERR"); >+ >+test(function() { >+ assert_throws("SYNTAX_ERR", function() { >+ wsocket = new WebSocket("mailto:microsoft@microsoft.com") >+ }); >+}, "Url is a mail address - should throw SYNTAX_ERR"); >+ >+test(function() { >+ assert_throws("SYNTAX_ERR", function() { >+ wsocket = new WebSocket("about:blank") >+ }); >+}, "Url is about:blank - should throw SYNTAX_ERR"); >+ >+test(function() { >+ assert_throws("SYNTAX_ERR", function() { >+ wsocket = new WebSocket("?test") >+ }); >+}, "Url is ?test - should throw SYNTAX_ERR"); >+ >+test(function() { >+ assert_throws("SYNTAX_ERR", function() { >+ wsocket = new WebSocket("#test") >+ }); >+}, "Url is #test - should throw SYNTAX_ERR"); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-invalid-urls.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-invalid-urls.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..b0390a844531b664f5c2f3c97c813d16cf2deafd >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-invalid-urls.any.worker-expected.txt >@@ -0,0 +1,7 @@ >+ >+PASS Url is /echo - should throw SYNTAX_ERR >+PASS Url is a mail address - should throw SYNTAX_ERR >+PASS Url is about:blank - should throw SYNTAX_ERR >+PASS Url is ?test - should throw SYNTAX_ERR >+PASS Url is #test - should throw SYNTAX_ERR >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-invalid-urls.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-invalid-urls.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-invalid-urls.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-non-absolute-url.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-non-absolute-url.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..a811ad5ca60407689f3fc7a52593284f9ce26287 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-non-absolute-url.any-expected.txt >@@ -0,0 +1,4 @@ >+CONSOLE MESSAGE: line 19: Wrong url scheme for WebSocket http://localhost:8800/websockets/localhost >+ >+PASS Create WebSocket - Pass a non absolute URL - SYNTAX_ERR is thrown >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-non-absolute-url.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-non-absolute-url.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-non-absolute-url.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-non-absolute-url.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-non-absolute-url.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..9ac9707209f9b9bc6a22ea1637783c0aed8f2222 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-non-absolute-url.any.js >@@ -0,0 +1,8 @@ >+// META: script=websocket.sub.js >+ >+test(function() { >+ var wsocket; >+ assert_throws("SYNTAX_ERR", function() { >+ wsocket = CreateWebSocketNonAbsolute() >+ }); >+}, "Create WebSocket - Pass a non absolute URL - SYNTAX_ERR is thrown") >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-non-absolute-url.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-non-absolute-url.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..f217acd844d40c000e8e7481c1fd9fb019a433f3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-non-absolute-url.any.worker-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS Create WebSocket - Pass a non absolute URL - SYNTAX_ERR is thrown >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-non-absolute-url.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-non-absolute-url.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-non-absolute-url.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-nonAscii-protocol-string.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-nonAscii-protocol-string.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..a0186f0fb61a6be33a9373c4c1c5cab34f6e3d21 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-nonAscii-protocol-string.any-expected.txt >@@ -0,0 +1,4 @@ >+CONSOLE MESSAGE: line 31: Wrong protocol for WebSocket '\u0080echo' >+ >+PASS Create WebSocket - Pass a valid URL and a protocol string with non-ascii values - SYNTAX_ERR is thrown >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-nonAscii-protocol-string.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-nonAscii-protocol-string.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-nonAscii-protocol-string.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-nonAscii-protocol-string.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-nonAscii-protocol-string.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..631699413a357caf1ed950f460d484cfeda63ebd >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-nonAscii-protocol-string.any.js >@@ -0,0 +1,9 @@ >+// META: script=websocket.sub.js >+ >+test(function() { >+ var nonAsciiProtocol = "\u0080echo"; >+ var wsocket; >+ assert_throws("SYNTAX_ERR", function() { >+ wsocket = CreateWebSocketNonAsciiProtocol(nonAsciiProtocol) >+ }); >+}, "Create WebSocket - Pass a valid URL and a protocol string with non-ascii values - SYNTAX_ERR is thrown") >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-nonAscii-protocol-string.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-nonAscii-protocol-string.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..723d9a84ab9c8040d429e39ffb984a4f04d3214f >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-nonAscii-protocol-string.any.worker-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS Create WebSocket - Pass a valid URL and a protocol string with non-ascii values - SYNTAX_ERR is thrown >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-nonAscii-protocol-string.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-nonAscii-protocol-string.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-nonAscii-protocol-string.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-on-worker-shutdown.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-on-worker-shutdown.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-on-worker-shutdown.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-on-worker-shutdown.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-on-worker-shutdown.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..15f0368d93313a6b10ae85d87829faa0613a917b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-on-worker-shutdown.any.js >@@ -0,0 +1,28 @@ >+// META: script=websocket.sub.js >+ >+async_test(t => { >+ function workerCode() { >+ close(); >+ var ws = new WebSocket(self.location.origin.replace('http', 'ws')); >+ var data = { >+ originalState: ws.readyState, >+ afterCloseState: null >+ }; >+ >+ ws.close(); >+ >+ data.afterCloseState = ws.readyState; >+ postMessage(data); >+ } >+ >+ var workerBlob = new Blob([workerCode.toString() + ";workerCode();"], { >+ type: "application/javascript" >+ }); >+ >+ var w = new Worker(URL.createObjectURL(workerBlob)); >+ w.onmessage = t.step_func(function(e) { >+ assert_equals(e.data.originalState, WebSocket.CONNECTING, "WebSocket created on worker shutdown is in connecting state."); >+ assert_equals(e.data.afterCloseState, WebSocket.CLOSING, "Closed WebSocket created on worker shutdown is in closing state."); >+ t.done(); >+ }); >+}, 'WebSocket created after a worker self.close()'); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-on-worker-shutdown.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-on-worker-shutdown.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..8a68d18ad27ec80ee15fcb18162b7cfb1d4c13cf >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-on-worker-shutdown.any.worker-expected.txt >@@ -0,0 +1,3 @@ >+ >+FAIL WebSocket created after a worker self.close() Can't find variable: Worker >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-on-worker-shutdown.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-on-worker-shutdown.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-on-worker-shutdown.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocol-with-space.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocol-with-space.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..3ea2ccc03c8dd5ce2d7097470a19049c88ef8478 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocol-with-space.any-expected.txt >@@ -0,0 +1,4 @@ >+CONSOLE MESSAGE: line 55: Wrong protocol for WebSocket 'ec ho' >+ >+PASS Create WebSocket - Pass a valid URL and a protocol string with a space in it - SYNTAX_ERR is thrown >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocol-with-space.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocol-with-space.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocol-with-space.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocol-with-space.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocol-with-space.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..18f6815a489a8af0b671d9111c11210f306d0567 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocol-with-space.any.js >@@ -0,0 +1,8 @@ >+// META: script=websocket.sub.js >+ >+test(function() { >+ var wsocket; >+ assert_throws("SYNTAX_ERR", function() { >+ wsocket = CreateWebSocketWithSpaceInProtocol("ec ho") >+ }); >+}, "Create WebSocket - Pass a valid URL and a protocol string with a space in it - SYNTAX_ERR is thrown") >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocol-with-space.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocol-with-space.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..3799c9a2226082946bb522c668063d16a3d1d3d6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocol-with-space.any.worker-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS Create WebSocket - Pass a valid URL and a protocol string with a space in it - SYNTAX_ERR is thrown >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocol-with-space.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocol-with-space.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocol-with-space.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocols-repeated-case-insensitive.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocols-repeated-case-insensitive.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..210df098c8fee906c4f8467092536c24002f2625 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocols-repeated-case-insensitive.any-expected.txt >@@ -0,0 +1,5 @@ >+ >+FAIL Create WebSocket - Pass a valid URL and an array of protocol strings with repeated values but different case - SYNTAX_ERR is thrown assert_throws: function "function () { >+ wsocket = CreateWebSocketWithRepeatedProtocolsCaseInsensitive() >+ }" did not throw >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocols-repeated-case-insensitive.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocols-repeated-case-insensitive.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocols-repeated-case-insensitive.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocols-repeated-case-insensitive.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocols-repeated-case-insensitive.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..1d59015e05835074a9bf4642fe8a40850675bf64 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocols-repeated-case-insensitive.any.js >@@ -0,0 +1,8 @@ >+// META: script=websocket.sub.js >+ >+test(function() { >+ var wsocket; >+ assert_throws("SYNTAX_ERR", function() { >+ wsocket = CreateWebSocketWithRepeatedProtocolsCaseInsensitive() >+ }); >+}, "Create WebSocket - Pass a valid URL and an array of protocol strings with repeated values but different case - SYNTAX_ERR is thrown") >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocols-repeated-case-insensitive.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocols-repeated-case-insensitive.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..210df098c8fee906c4f8467092536c24002f2625 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocols-repeated-case-insensitive.any.worker-expected.txt >@@ -0,0 +1,5 @@ >+ >+FAIL Create WebSocket - Pass a valid URL and an array of protocol strings with repeated values but different case - SYNTAX_ERR is thrown assert_throws: function "function () { >+ wsocket = CreateWebSocketWithRepeatedProtocolsCaseInsensitive() >+ }" did not throw >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocols-repeated-case-insensitive.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocols-repeated-case-insensitive.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocols-repeated-case-insensitive.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocols-repeated.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocols-repeated.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..d68d9cae180a25a753bfa04a73a34dc802be85ef >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocols-repeated.any-expected.txt >@@ -0,0 +1,4 @@ >+CONSOLE MESSAGE: line 61: WebSocket protocols contain duplicates: 'echo' >+ >+PASS Create WebSocket - Pass a valid URL and an array of protocol strings with repeated values - SYNTAX_ERR is thrown >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocols-repeated.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocols-repeated.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocols-repeated.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocols-repeated.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocols-repeated.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..bdaf5606a8b16a4b9a65d0326ba1e0ab3eb330e2 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocols-repeated.any.js >@@ -0,0 +1,8 @@ >+// META: script=websocket.sub.js >+ >+test(function() { >+ var wsocket; >+ assert_throws("SYNTAX_ERR", function() { >+ wsocket = CreateWebSocketWithRepeatedProtocols() >+ }); >+}, "Create WebSocket - Pass a valid URL and an array of protocol strings with repeated values - SYNTAX_ERR is thrown") >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocols-repeated.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocols-repeated.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..3d845e3d7e2ad9262db1600066884da9305fca0a >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocols-repeated.any.worker-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS Create WebSocket - Pass a valid URL and an array of protocol strings with repeated values - SYNTAX_ERR is thrown >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocols-repeated.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocols-repeated.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocols-repeated.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-array-protocols.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-array-protocols.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..e42d3afb82c8a2f2005226a75191e5dd8f3bf75e >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-array-protocols.any-expected.txt >@@ -0,0 +1,4 @@ >+ >+PASS Create WebSocket - Pass a valid URL and array of protocol strings - Connection should be opened >+PASS Create WebSocket - Pass a valid URL and array of protocol strings - Connection should be closed >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-array-protocols.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-array-protocols.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-array-protocols.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-array-protocols.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-array-protocols.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..f8161334e5e0f3cd739daa4bf6ca3ed871d95b8a >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-array-protocols.any.js >@@ -0,0 +1,20 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Create WebSocket - Pass a valid URL and array of protocol strings - Connection should be opened"); >+var testClose = async_test("Create WebSocket - Pass a valid URL and array of protocol strings - Connection should be closed"); >+ >+var wsocket = CreateWebSocket(false, false, true); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ assert_equals(wsocket.readyState, 1, "readyState should be 1(OPEN)"); >+ wsocket.close(); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_equals(evt.wasClean, true, "wasClean should be true"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-array-protocols.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-array-protocols.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..e42d3afb82c8a2f2005226a75191e5dd8f3bf75e >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-array-protocols.any.worker-expected.txt >@@ -0,0 +1,4 @@ >+ >+PASS Create WebSocket - Pass a valid URL and array of protocol strings - Connection should be opened >+PASS Create WebSocket - Pass a valid URL and array of protocol strings - Connection should be closed >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-array-protocols.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-array-protocols.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-array-protocols.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-protocol-empty.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-protocol-empty.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..b0d4a78f27ab36a144a5c8688df060e02f2ff52b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-protocol-empty.any-expected.txt >@@ -0,0 +1,4 @@ >+CONSOLE MESSAGE: line 6: WebSocket connection to 'ws://localhost:49001/echo' failed: WebSocket is closed before the connection is established. >+ >+PASS Create WebSocket - wsocket.protocol should be empty before connection is established >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-protocol-empty.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-protocol-empty.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-protocol-empty.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-protocol-empty.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-protocol-empty.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..0bf2ff53bbc8e1fa84fa4b2728c7a3f24cd14ef8 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-protocol-empty.any.js >@@ -0,0 +1,7 @@ >+// META: script=websocket.sub.js >+ >+test(function() { >+ var wsocket = CreateWebSocket(false, true, false); >+ assert_equals(wsocket.protocol, "", "protocol should be empty"); >+ wsocket.close(); >+}, "Create WebSocket - wsocket.protocol should be empty before connection is established") >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-protocol-empty.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-protocol-empty.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..c0598fdac34bd8281115846915312daa9286289d >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-protocol-empty.any.worker-expected.txt >@@ -0,0 +1,4 @@ >+CONSOLE MESSAGE: WebSocket connection to 'ws://localhost:49001/echo' failed: WebSocket is closed before the connection is established. >+ >+PASS Create WebSocket - wsocket.protocol should be empty before connection is established >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-protocol-empty.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-protocol-empty.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-protocol-empty.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-protocol.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-protocol.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..edd3bd6bda8d75a2c5fff91304c83011b24cca21 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-protocol.any-expected.txt >@@ -0,0 +1,4 @@ >+ >+PASS Create WebSocket - Pass a valid URL and a protocol string - Connection should be opened >+PASS Create WebSocket - Pass a valid URL and a protocol string - Connection should be closed >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-protocol.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-protocol.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-protocol.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-protocol.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-protocol.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..2dcae27f1a66e52ee2674b7a08216bc5abdae87d >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-protocol.any.js >@@ -0,0 +1,20 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Create WebSocket - Pass a valid URL and a protocol string - Connection should be opened"); >+var testClose = async_test("Create WebSocket - Pass a valid URL and a protocol string - Connection should be closed"); >+ >+var wsocket = CreateWebSocket(false, true, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ assert_equals(wsocket.readyState, 1, "readyState should be 1(OPEN)"); >+ wsocket.close(); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_equals(evt.wasClean, true, "wasClean should be true"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-protocol.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-protocol.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..edd3bd6bda8d75a2c5fff91304c83011b24cca21 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-protocol.any.worker-expected.txt >@@ -0,0 +1,4 @@ >+ >+PASS Create WebSocket - Pass a valid URL and a protocol string - Connection should be opened >+PASS Create WebSocket - Pass a valid URL and a protocol string - Connection should be closed >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-protocol.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-protocol.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-protocol.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..1223b0c5c28eaa09676d69dd758dc5c2eb3466ab >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url.any-expected.txt >@@ -0,0 +1,4 @@ >+ >+PASS Create WebSocket - Pass a valid URL - Connection should be opened >+PASS Create WebSocket - Pass a valid URL - Connection should be closed >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..b84e2118a1d6d98b8b717f38360181b1100fb606 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url.any.js >@@ -0,0 +1,20 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Create WebSocket - Pass a valid URL - Connection should be opened"); >+var testClose = async_test("Create WebSocket - Pass a valid URL - Connection should be closed"); >+ >+var wsocket = CreateWebSocket(false, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ assert_equals(wsocket.readyState, 1, "readyState should be 1(OPEN)"); >+ wsocket.close(); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_equals(evt.wasClean, true, "wasClean should be true"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..1223b0c5c28eaa09676d69dd758dc5c2eb3466ab >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url.any.worker-expected.txt >@@ -0,0 +1,4 @@ >+ >+PASS Create WebSocket - Pass a valid URL - Connection should be opened >+PASS Create WebSocket - Pass a valid URL - Connection should be closed >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-verify-url-set-non-default-port.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-verify-url-set-non-default-port.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..9afa2538c21b3dc42d10aebdbb5df221d4aaa8fa >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-verify-url-set-non-default-port.any-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS Create WebSocket - wsocket.url should be set correctly >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-verify-url-set-non-default-port.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-verify-url-set-non-default-port.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-verify-url-set-non-default-port.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-verify-url-set-non-default-port.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-verify-url-set-non-default-port.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..56116719682f11349e0bee4a12219c8a2f90905a >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-verify-url-set-non-default-port.any.js >@@ -0,0 +1,7 @@ >+// META: script=websocket.sub.js >+ >+test(function() { >+ var urlNonDefaultPort = "ws://" + __SERVER__NAME + ":" + __NEW__PORT + "/" + __PATH; >+ var wsocket = new WebSocket(urlNonDefaultPort); >+ assert_equals(wsocket.url, urlNonDefaultPort, "wsocket.url is set correctly"); >+}, "Create WebSocket - wsocket.url should be set correctly"); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-verify-url-set-non-default-port.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-verify-url-set-non-default-port.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..9afa2538c21b3dc42d10aebdbb5df221d4aaa8fa >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-verify-url-set-non-default-port.any.worker-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS Create WebSocket - wsocket.url should be set correctly >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-verify-url-set-non-default-port.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-verify-url-set-non-default-port.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-verify-url-set-non-default-port.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-wrong-scheme.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-wrong-scheme.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..242a1f72b9627dbadb7904d84ae159fcaeb2409f >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-wrong-scheme.any-expected.txt >@@ -0,0 +1,4 @@ >+CONSOLE MESSAGE: line 25: Wrong url scheme for WebSocket http://localhost:49001/echo >+ >+PASS Create WebSocket - Pass a URL with a non ws/wss scheme - SYNTAX_ERR is thrown >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-wrong-scheme.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-wrong-scheme.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-wrong-scheme.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-wrong-scheme.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-wrong-scheme.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..78ff7394622edfce754d6649d478e547a77e57c5 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-wrong-scheme.any.js >@@ -0,0 +1,8 @@ >+// META: script=websocket.sub.js >+ >+test(function() { >+ var wsocket; >+ assert_throws("SYNTAX_ERR", function() { >+ wsocket = CreateWebSocketNonWsScheme() >+ }); >+}, "Create WebSocket - Pass a URL with a non ws/wss scheme - SYNTAX_ERR is thrown") >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-wrong-scheme.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-wrong-scheme.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..8e87411edb85b1367abf1425d66c18d4d61ef158 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-wrong-scheme.any.worker-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS Create WebSocket - Pass a URL with a non ws/wss scheme - SYNTAX_ERR is thrown >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-wrong-scheme.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-wrong-scheme.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-wrong-scheme.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/META.yml b/LayoutTests/imported/w3c/web-platform-tests/websockets/META.yml >new file mode 100644 >index 0000000000000000000000000000000000000000..14e23e03a854f4d83caa345d45c5b43f1a68bee3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/META.yml >@@ -0,0 +1,4 @@ >+spec: https://html.spec.whatwg.org/multipage/web-sockets.html >+suggested_reviewers: >+ - zqzhang >+ - jdm >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/README.md b/LayoutTests/imported/w3c/web-platform-tests/websockets/README.md >new file mode 100644 >index 0000000000000000000000000000000000000000..b4f173a036104ad17b96ceddcf6f6d38eaf0af09 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/README.md >@@ -0,0 +1,2 @@ >+These are the `WebSocket` tests for the >+[Web sockets chapter of the HTML Standard](https://html.spec.whatwg.org/multipage/web-sockets.html#network). >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1000-reason.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1000-reason.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1000-reason.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1000-reason.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1000-reason.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..8f289875d9ff3e428ff34cd45a32888041dd80c9 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1000-reason.any.js >@@ -0,0 +1,20 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Create Secure WebSocket - Close the Connection - close(1000, reason) - Connection should be opened"); >+var testClose = async_test("Create Secure WebSocket - Close the Connection - close(1000, reason) - readyState should be in CLOSED state and wasClean is TRUE - Connection should be closed"); >+ >+var wsocket = CreateWebSocket(true, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ wsocket.close(1000, "Clean Close"); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_equals(wsocket.readyState, 3, "readyState should be 3(CLOSED)"); >+ assert_equals(evt.wasClean, true, "wasClean should be TRUE"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1000-reason.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1000-reason.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1000-reason.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1000-verify-code.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1000-verify-code.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1000-verify-code.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1000-verify-code.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1000-verify-code.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..a812e0d62c8792945c6c62bafb5f591759a2f624 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1000-verify-code.any.js >@@ -0,0 +1,20 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Create Secure WebSocket - Close the Connection - close(1000, reason) - Connection should be opened"); >+var testClose = async_test("Create Secure WebSocket - Close the Connection - close(1000, reason) - event.code == 1000 and event.reason = 'Clean Close'"); >+ >+var wsocket = CreateWebSocket(true, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ wsocket.close(1000, "Clean Close"); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_equals(evt.code, 1000, "CloseEvent.code should be 1000"); >+ assert_equals(evt.reason, "Clean Close", "CloseEvent.reason should be the same as the reason sent in close"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1000-verify-code.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1000-verify-code.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1000-verify-code.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1000.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1000.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1000.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1000.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1000.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..2c7e5e9c63d53125ffe7a55929635ce334d988a8 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1000.any.js >@@ -0,0 +1,20 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Create Secure WebSocket - Close the Connection - close(1000) - Connection should be opened"); >+var testClose = async_test("Create Secure WebSocket - Close the Connection - close(1000) - readyState should be in CLOSED state and wasClean is TRUE - Connection should be closed"); >+ >+var wsocket = CreateWebSocket(true, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ wsocket.close(1000); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_equals(wsocket.readyState, 3, "readyState should be 3(CLOSED)"); >+ assert_equals(evt.wasClean, true, "wasClean should be TRUE"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1000.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1000.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1000.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1005-verify-code.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1005-verify-code.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1005-verify-code.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1005-verify-code.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1005-verify-code.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..aa8e37ea2245cff6bee993a080aa437f1abe48e3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1005-verify-code.any.js >@@ -0,0 +1,20 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Create Secure WebSocket - Close the Connection - close() - Connection should be opened"); >+var testClose = async_test("Create Secure WebSocket - Close the Connection - close() - return close code is 1005 - Connection should be closed"); >+ >+var wsocket = CreateWebSocket(true, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ wsocket.close(); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_equals(evt.code, 1005, "CloseEvent.code should be 1005"); >+ assert_equals(evt.reason, "", "CloseEvent.reason should be empty"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1005-verify-code.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1005-verify-code.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1005-verify-code.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1005.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1005.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1005.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1005.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1005.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..f5f2cbf6e6616e7c596789ba6bb1339fe358b0bc >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1005.any.js >@@ -0,0 +1,13 @@ >+// META: script=websocket.sub.js >+ >+var test = async_test("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"); >+ >+var wsocket = CreateWebSocket(true, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', test.step_func(function(evt) { >+ assert_throws("INVALID_ACCESS_ERR", function() { >+ wsocket.close(1005, "1005 - reserved code") >+ }); >+ test.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1005.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1005.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1005.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-2999-reason.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-2999-reason.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-2999-reason.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-2999-reason.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-2999-reason.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..ee1c756694ba258d9c8f05f469c0e94f0e4aaf53 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-2999-reason.any.js >@@ -0,0 +1,12 @@ >+// META: script=websocket.sub.js >+ >+var test = async_test("Create Secure WebSocket - Close the Connection - close(2999, reason) - INVALID_ACCESS_ERR is thrown"); >+ >+var wsocket = CreateWebSocket(true, false, false); >+ >+wsocket.addEventListener('open', test.step_func(function(evt) { >+ assert_throws("INVALID_ACCESS_ERR", function() { >+ wsocket.close(2999, "Close not in range 3000-4999") >+ }); >+ test.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-2999-reason.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-2999-reason.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-2999-reason.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-3000-reason.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-3000-reason.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-3000-reason.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-3000-reason.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-3000-reason.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..d2266ddc0222efe2c2a0c589c65bace0264861f9 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-3000-reason.any.js >@@ -0,0 +1,20 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Create Secure WebSocket - Close the Connection - close(3000, reason) - Connection should be opened"); >+var testClose = async_test("Create Secure WebSocket - Close the Connection - close(3000, reason) - readyState should be in CLOSED state and wasClean is TRUE - Connection should be closed"); >+ >+var wsocket = CreateWebSocket(true, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ wsocket.close(3000, "Clean Close with code - 3000"); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_equals(wsocket.readyState, 3, "readyState should be 3(CLOSED)"); >+ assert_equals(evt.wasClean, true, "wasClean should be TRUE"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-3000-reason.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-3000-reason.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-3000-reason.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-3000-verify-code.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-3000-verify-code.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-3000-verify-code.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-3000-verify-code.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-3000-verify-code.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..bbd5bbb22a897ed303aa71dd174b12dfbe39301b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-3000-verify-code.any.js >@@ -0,0 +1,19 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Create Secure WebSocket - Close the Connection - close(3000, reason) - Connection should be opened"); >+var testClose = async_test("Create Secure WebSocket - Close the Connection - close(3000, reason) - verify return code is 3000 - Connection should be closed"); >+ >+var wsocket = CreateWebSocket(true, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ wsocket.close(3000, "Clean Close"); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_equals(evt.code, 3000, "CloseEvent.code should be 3000"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-3000-verify-code.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-3000-verify-code.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-3000-verify-code.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-4999-reason.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-4999-reason.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-4999-reason.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-4999-reason.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-4999-reason.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..b8429cf97b5b1654a0d93f53c4421435e132e514 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-4999-reason.any.js >@@ -0,0 +1,20 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Create Secure WebSocket - Close the Connection - close(4999, reason) - Connection should be opened"); >+var testClose = async_test("Create Secure WebSocket - Close the Connection - close(4999, reason) - readyState should be in CLOSED state and wasClean is TRUE - Connection should be closed"); >+ >+var wsocket = CreateWebSocket(true, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ wsocket.close(3000, "Clean Close with code - 4999"); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_equals(wsocket.readyState, 3, "readyState should be 3(CLOSED)"); >+ assert_equals(evt.wasClean, true, "wasClean should be TRUE"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-4999-reason.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-4999-reason.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-4999-reason.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-Reason-124Bytes.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-Reason-124Bytes.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-Reason-124Bytes.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-Reason-124Bytes.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-Reason-124Bytes.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..0786c295e760c3af2cb4994267974f62c6f004c1 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-Reason-124Bytes.any.js >@@ -0,0 +1,15 @@ >+// META: script=websocket.sub.js >+ >+var test = async_test("Create Secure WebSocket - Close the Connection - close(code, 'reason more than 123 bytes') - SYNTAX_ERR is thrown"); >+ >+var wsocket = CreateWebSocket(true, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', test.step_func(function(evt) { >+ var reason = "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123"; >+ assert_equals(reason.length, 124); >+ assert_throws("SYNTAX_ERR", function() { >+ wsocket.close(1000, reason) >+ }); >+ test.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-Reason-124Bytes.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-Reason-124Bytes.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-Reason-124Bytes.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-Reason-Unpaired-surrogates.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-Reason-Unpaired-surrogates.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-Reason-Unpaired-surrogates.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-Reason-Unpaired-surrogates.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-Reason-Unpaired-surrogates.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..a7b9ea4bb6424160ced80e726cac835961a19b3b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-Reason-Unpaired-surrogates.any.js >@@ -0,0 +1,21 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Create Secure WebSocket - Close the Connection - close(reason with unpaired surrogates) - connection should get opened"); >+var testClose = async_test("Create Secure WebSocket - Close the Connection - close(reason with unpaired surrogates) - connection should get closed"); >+ >+var wsocket = CreateWebSocket(true, false, false); >+var isOpenCalled = false; >+var replacementChar = "\uFFFD"; >+var reason = "\uD807"; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ wsocket.close(1000, reason); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be opened"); >+ assert_equals(evt.reason, replacementChar, "reason replaced with replacement character"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-Reason-Unpaired-surrogates.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-Reason-Unpaired-surrogates.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-Reason-Unpaired-surrogates.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-onlyReason.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-onlyReason.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-onlyReason.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-onlyReason.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-onlyReason.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..029b8d8af8ef8517fad73cfeec84131aef8d1583 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-onlyReason.any.js >@@ -0,0 +1,12 @@ >+// META: script=websocket.sub.js >+ >+var test = async_test("Create Secure WebSocket - Close the Connection - close(only reason) - INVALID_ACCESS_ERR is thrown"); >+ >+var wsocket = CreateWebSocket(true, false, false); >+ >+wsocket.addEventListener('open', test.step_func(function(evt) { >+ assert_throws("INVALID_ACCESS_ERR", function() { >+ wsocket.close("Close with only reason") >+ }); >+ test.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-onlyReason.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-onlyReason.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-onlyReason.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-readyState-Closed.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-readyState-Closed.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-readyState-Closed.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-readyState-Closed.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-readyState-Closed.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..0dd46f14be148357c02e8878b77ddc66360b968c >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-readyState-Closed.any.js >@@ -0,0 +1,20 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Create Secure WebSocket - Close the Connection - Connection should be opened"); >+var testClose = async_test("Create Secure WebSocket - Close the Connection - readyState should be in CLOSED state and wasClean is TRUE - Connection should be closed"); >+ >+var wsocket = CreateWebSocket(true, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ wsocket.close(); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_equals(wsocket.readyState, 3, "readyState should be 3(CLOSED)"); >+ assert_equals(evt.wasClean, true, "wasClean should be TRUE"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-readyState-Closed.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-readyState-Closed.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-readyState-Closed.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-readyState-Closing.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-readyState-Closing.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-readyState-Closing.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-readyState-Closing.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-readyState-Closing.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..690ca83a2b3fbc4a850626167395625b38da919b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-readyState-Closing.any.js >@@ -0,0 +1,12 @@ >+// META: script=websocket.sub.js >+ >+var test = async_test("Create Secure WebSocket - Close the Connection - readyState should be in CLOSING state just before onclose is called"); >+ >+var wsocket = CreateWebSocket(true, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', test.step_func(function(evt) { >+ wsocket.close(); >+ assert_equals(wsocket.readyState, 2, "readyState should be 2(CLOSING)"); >+ test.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-readyState-Closing.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-readyState-Closing.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-readyState-Closing.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-server-initiated-close.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-server-initiated-close.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-server-initiated-close.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-server-initiated-close.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-server-initiated-close.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..800fbc40e1d15ef407ba824a6424de91dc22188c >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-server-initiated-close.any.js >@@ -0,0 +1,20 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Create Secure WebSocket - Server initiated Close - Client sends back a CLOSE - Connection should be opened"); >+var testClose = async_test("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"); >+ >+var wsocket = CreateWebSocket(true, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ wsocket.send("Goodbye"); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_equals(wsocket.readyState, 3, "readyState should be 3(CLOSED)"); >+ assert_equals(evt.wasClean, true, "wasClean should be TRUE"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-server-initiated-close.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-server-initiated-close.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-server-initiated-close.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-undefined.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-undefined.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-undefined.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-undefined.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-undefined.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..31b36e4d955d4c2a5d6a3e54867f47efd97253a6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-undefined.any.js >@@ -0,0 +1,11 @@ >+// META: script=websocket.sub.js >+ >+var test = async_test(); >+ >+var wsocket = CreateWebSocket(true, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', test.step_func(function(evt) { >+ wsocket.close(undefined); >+ test.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-undefined.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-undefined.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-undefined.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-65K-data.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-65K-data.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-65K-data.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-65K-data.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-65K-data.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..ca876534339d7b61eef58552bf8e028f3b9caa7b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-65K-data.any.js >@@ -0,0 +1,31 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Send 65K data on a Secure WebSocket - Connection should be opened"); >+var testMessage = async_test("Send 65K data on a Secure WebSocket - Message should be received"); >+var testClose = async_test("Send 65K data on a Secure WebSocket - Connection should be closed"); >+ >+var data = ""; >+var wsocket = CreateWebSocket(true, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ for (var i = 0; i < 65000; i++) { >+ data = data + "c"; >+ } >+ wsocket.send(data); >+ assert_equals(data.length, wsocket.bufferedAmount); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('message', testMessage.step_func(function(evt) { >+ assert_equals(evt.data, data); >+ wsocket.close(); >+ testMessage.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_equals(evt.wasClean, true, "wasClean should be true"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-65K-data.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-65K-data.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-65K-data.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-65K-arraybuffer.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-65K-arraybuffer.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-65K-arraybuffer.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-65K-arraybuffer.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-65K-arraybuffer.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..0627e7554e6e77d2e4ce1bee28cb2d0022b4ae77 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-65K-arraybuffer.any.js >@@ -0,0 +1,31 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Send 65K binary data on a Secure WebSocket - ArrayBuffer - Connection should be opened"); >+var testMessage = async_test("Send 65K binary data on a Secure WebSocket - ArrayBuffer - Message should be received"); >+var testClose = async_test("Send 65K binary data on a Secure WebSocket - ArrayBuffer - Connection should be closed"); >+ >+var data = ""; >+var datasize = 65000; >+var wsocket = CreateWebSocket(true, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ wsocket.binaryType = "arraybuffer"; >+ data = new ArrayBuffer(datasize); >+ wsocket.send(data); >+ assert_equals(datasize, wsocket.bufferedAmount); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('message', testMessage.step_func(function(evt) { >+ assert_equals(evt.data.byteLength, datasize); >+ wsocket.close(); >+ testMessage.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_equals(evt.wasClean, true, "wasClean should be true"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-65K-arraybuffer.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-65K-arraybuffer.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-65K-arraybuffer.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybuffer.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybuffer.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybuffer.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybuffer.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybuffer.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..5778a241fffd2c1c3eab0fff86a4b089c403d137 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybuffer.any.js >@@ -0,0 +1,31 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Send binary data on a Secure WebSocket - ArrayBuffer - Connection should be opened"); >+var testMessage = async_test("Send binary data on a Secure WebSocket - ArrayBuffer - Message should be received"); >+var testClose = async_test("Send binary data on a Secure WebSocket - ArrayBuffer - Connection should be closed"); >+ >+var data = ""; >+var datasize = 15; >+var wsocket = CreateWebSocket(true, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ wsocket.binaryType = "arraybuffer"; >+ data = new ArrayBuffer(datasize); >+ wsocket.send(data); >+ assert_equals(datasize, wsocket.bufferedAmount); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('message', testMessage.step_func(function(evt) { >+ assert_equals(evt.data.byteLength, datasize); >+ wsocket.close(); >+ testMessage.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_equals(evt.wasClean, true, "wasClean should be true"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybuffer.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybuffer.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybuffer.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-float32.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-float32.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-float32.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-float32.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-float32.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..2672319d40e0dbe976386ce82543b63171526b5a >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-float32.any.js >@@ -0,0 +1,38 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Send binary data on a WebSocket - ArrayBufferView - Float32Array - Connection should be opened"); >+var testMessage = async_test("Send binary data on a WebSocket - ArrayBufferView - Float32Array - Message should be received"); >+var testClose = async_test("Send binary data on a WebSocket - ArrayBufferView - Float32Array - Connection should be closed"); >+ >+var data = ""; >+var datasize = 8; >+var view; >+var wsocket = CreateWebSocket(false, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ wsocket.binaryType = "arraybuffer"; >+ data = new ArrayBuffer(datasize); >+ view = new Float32Array(data); >+ for (var i = 0; i < 2; i++) { >+ view[i] = i; >+ } >+ wsocket.send(view); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('message', testMessage.step_func(function(evt) { >+ var resultView = new Float32Array(evt.data); >+ for (var i = 0; i < resultView.length; i++) { >+ assert_equals(resultView[i], view[i], "ArrayBufferView returned is the same"); >+ } >+ wsocket.close(); >+ testMessage.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_equals(evt.wasClean, true, "wasClean should be true"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-float32.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-float32.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-float32.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-float64.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-float64.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-float64.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-float64.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-float64.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..993d5fc07e7167939678496cbf4e7ce467161527 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-float64.any.js >@@ -0,0 +1,38 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Send binary data on a WebSocket - ArrayBufferView - Float64Array - Connection should be opened"); >+var testMessage = async_test("Send binary data on a WebSocket - ArrayBufferView - Float64Array - Message should be received"); >+var testClose = async_test("Send binary data on a WebSocket - ArrayBufferView - Float64Array - Connection should be closed"); >+ >+var data = ""; >+var datasize = 8; >+var view; >+var wsocket = CreateWebSocket(true, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ wsocket.binaryType = "arraybuffer"; >+ data = new ArrayBuffer(datasize); >+ view = new Float64Array(data); >+ for (var i = 0; i < 1; i++) { >+ view[i] = i; >+ } >+ wsocket.send(view); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('message', testMessage.step_func(function(evt) { >+ var resultView = new Float64Array(evt.data); >+ for (var i = 0; i < resultView.length; i++) { >+ assert_equals(resultView[i], view[i], "ArrayBufferView returned is the same"); >+ } >+ wsocket.close(); >+ testMessage.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_equals(evt.wasClean, true, "wasClean should be true"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-float64.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-float64.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-float64.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-int32.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-int32.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-int32.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-int32.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-int32.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..58fe02b2505902823fc94b020db0ceea1652a647 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-int32.any.js >@@ -0,0 +1,38 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Send binary data on a WebSocket - ArrayBufferView - Int32Array - Connection should be opened"); >+var testMessage = async_test("Send binary data on a WebSocket - ArrayBufferView - Int32Array - Message should be received"); >+var testClose = async_test("Send binary data on a WebSocket - ArrayBufferView - Int32Array - Connection should be closed"); >+ >+var data = ""; >+var datasize = 8; >+var view; >+var wsocket = CreateWebSocket(true, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ wsocket.binaryType = "arraybuffer"; >+ data = new ArrayBuffer(datasize); >+ view = new Int32Array(data); >+ for (var i = 0; i < 2; i++) { >+ view[i] = i; >+ } >+ wsocket.send(view); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('message', testMessage.step_func(function(evt) { >+ var resultView = new Int32Array(evt.data); >+ for (var i = 0; i < resultView.length; i++) { >+ assert_equals(resultView[i], view[i], "ArrayBufferView returned is the same"); >+ } >+ wsocket.close(); >+ testMessage.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_equals(evt.wasClean, true, "wasClean should be true"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-int32.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-int32.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-int32.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint16-offset-length.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint16-offset-length.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint16-offset-length.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint16-offset-length.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint16-offset-length.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..26231b411f0256c65c25de8b854688713e2d9b7e >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint16-offset-length.any.js >@@ -0,0 +1,38 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Send binary data on a WebSocket - ArrayBufferView - Uint16Array with offset and length - Connection should be opened"); >+var testMessage = async_test("Send binary data on a WebSocket - ArrayBufferView - Uint16Array with offset and length - Message should be received"); >+var testClose = async_test("Send binary data on a WebSocket - ArrayBufferView - Uint16Array with offset and length - Connection should be closed"); >+ >+var data = ""; >+var datasize = 8; >+var view; >+var wsocket = CreateWebSocket(true, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ wsocket.binaryType = "arraybuffer"; >+ data = new ArrayBuffer(datasize); >+ view = new Uint16Array(data, 2, 2); >+ for (var i = 0; i < 4; i++) { >+ view[i] = i; >+ } >+ wsocket.send(view); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('message', testMessage.step_func(function(evt) { >+ var resultView = new Uint16Array(evt.data); >+ for (var i = 0; i < resultView.length; i++) { >+ assert_equals(resultView[i], view[i], "ArrayBufferView returned is the same"); >+ } >+ wsocket.close(); >+ testMessage.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_equals(evt.wasClean, true, "wasClean should be true"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint16-offset-length.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint16-offset-length.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint16-offset-length.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint32-offset.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint32-offset.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint32-offset.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint32-offset.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint32-offset.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..d2995ae539f156e01ba71b910346be2586ca7aaa >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint32-offset.any.js >@@ -0,0 +1,38 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Send binary data on a WebSocket - ArrayBufferView - Uint32Array with offset - Connection should be opened"); >+var testMessage = async_test("Send binary data on a WebSocket - ArrayBufferView - Uint32Array with offset - Message should be received"); >+var testClose = async_test("Send binary data on a WebSocket - ArrayBufferView - Uint32Array with offset - Connection should be closed"); >+ >+var data = ""; >+var datasize = 8; >+var view; >+var wsocket = CreateWebSocket(true, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ wsocket.binaryType = "arraybuffer"; >+ data = new ArrayBuffer(datasize); >+ view = new Uint32Array(data, 0); >+ for (var i = 0; i < 2; i++) { >+ view[i] = i; >+ } >+ wsocket.send(view); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('message', testMessage.step_func(function(evt) { >+ var resultView = new Uint32Array(evt.data); >+ for (var i = 0; i < resultView.length; i++) { >+ assert_equals(resultView[i], view[i], "ArrayBufferView returned is the same"); >+ } >+ wsocket.close(); >+ testMessage.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_equals(evt.wasClean, true, "wasClean should be true"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint32-offset.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint32-offset.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint32-offset.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint8-offset-length.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint8-offset-length.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint8-offset-length.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint8-offset-length.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint8-offset-length.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..90d9d9d51f85a58e48869fb0c2173c14808f2ff9 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint8-offset-length.any.js >@@ -0,0 +1,38 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Send binary data on a WebSocket - ArrayBufferView - Uint8Array with offset and length - Connection should be opened"); >+var testMessage = async_test("Send binary data on a WebSocket - ArrayBufferView - Uint8Array with offset and length - Message should be received"); >+var testClose = async_test("Send binary data on a WebSocket - ArrayBufferView - Uint8Array with offset and length - Connection should be closed"); >+ >+var data = ""; >+var datasize = 8; >+var view; >+var wsocket = CreateWebSocket(true, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ wsocket.binaryType = "arraybuffer"; >+ data = new ArrayBuffer(datasize); >+ view = new Uint8Array(data, 2, 4); >+ for (var i = 0; i < 8; i++) { >+ view[i] = i; >+ } >+ wsocket.send(view); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('message', testMessage.step_func(function(evt) { >+ var resultView = new Uint8Array(evt.data); >+ for (var i = 0; i < resultView.length; i++) { >+ assert_equals(resultView[i], view[i], "ArrayBufferView returned is the same"); >+ } >+ wsocket.close(); >+ testMessage.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_equals(evt.wasClean, true, "wasClean should be true"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint8-offset-length.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint8-offset-length.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint8-offset-length.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint8-offset.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint8-offset.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint8-offset.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint8-offset.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint8-offset.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..ce2e6081dd2bbacec91e588f024d8e5eb7967ad6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint8-offset.any.js >@@ -0,0 +1,38 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Send binary data on a WebSocket - ArrayBufferView - Uint8Array with offset - Connection should be opened"); >+var testMessage = async_test("Send binary data on a WebSocket - ArrayBufferView - Uint8Array with offset - Message should be received"); >+var testClose = async_test("Send binary data on a WebSocket - ArrayBufferView - Uint8Array with offset - Connection should be closed"); >+ >+var data = ""; >+var datasize = 8; >+var view; >+var wsocket = CreateWebSocket(true, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ wsocket.binaryType = "arraybuffer"; >+ data = new ArrayBuffer(datasize); >+ view = new Uint8Array(data, 2); >+ for (var i = 0; i < 8; i++) { >+ view[i] = i; >+ } >+ wsocket.send(view); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('message', testMessage.step_func(function(evt) { >+ var resultView = new Uint8Array(evt.data); >+ for (var i = 0; i < resultView.length; i++) { >+ assert_equals(resultView[i], view[i], "ArrayBufferView returned is the same"); >+ } >+ wsocket.close(); >+ testMessage.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_equals(evt.wasClean, true, "wasClean should be true"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint8-offset.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint8-offset.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint8-offset.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-blob.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-blob.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-blob.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-blob.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-blob.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..f532dfbf83ab91f429eb793d5f95fe8d8856baa9 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-blob.any.js >@@ -0,0 +1,34 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Send binary data on a Secure WebSocket - Blob - Connection should be opened"); >+var testMessage = async_test("Send binary data on a Secure WebSocket - Blob - Message should be received"); >+var testClose = async_test("Send binary data on a Secure WebSocket - Blob - Connection should be closed"); >+ >+var data = ""; >+var datasize = 65000; >+var isOpenCalled = false; >+ >+var wsocket = CreateWebSocket(true, false, false); >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ wsocket.binaryType = "blob"; >+ for (var i = 0; i < datasize; i++) >+ data += String.fromCharCode(0); >+ data = new Blob([data]); >+ isOpenCalled = true; >+ wsocket.send(data); >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('message', testMessage.step_func(function(evt) { >+ assert_true(evt.data instanceof Blob); >+ assert_equals(evt.data.size, datasize); >+ wsocket.close(); >+ testMessage.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_true(evt.wasClean, "wasClean should be true"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-blob.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-blob.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-blob.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-data.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-data.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-data.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-data.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-data.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..78de87cc78be78c60237c24a0f1d744f5bdb1249 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-data.any.js >@@ -0,0 +1,28 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Send data on a Secure WebSocket - Connection should be opened"); >+var testMessage = async_test("Send data on a Secure WebSocket - Message should be received"); >+var testClose = async_test("Send data on a Secure WebSocket - Connection should be closed"); >+ >+var data = "Message to send"; >+var wsocket = CreateWebSocket(true, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ wsocket.send(data); >+ assert_equals(data.length, wsocket.bufferedAmount); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('message', testMessage.step_func(function(evt) { >+ assert_equals(evt.data, data); >+ wsocket.close(); >+ testMessage.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_equals(evt.wasClean, true, "wasClean should be true"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-data.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-data.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-data.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-null.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-null.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-null.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-null.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-null.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..bf644c6de880bd17a8781b5f20103a297424c9c7 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-null.any.js >@@ -0,0 +1,30 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Send null data on a Secure WebSocket - Connection should be opened"); >+var testMessage = async_test("Send null data on a Secure WebSocket - Message should be received"); >+var testClose = async_test("Send null data on a Secure WebSocket - Connection should be closed"); >+ >+var data = null; >+var nullReturned = false; >+var wsocket = CreateWebSocket(true, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ wsocket.send(data); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('message', testMessage.step_func(function(evt) { >+ if ("null" == evt.data || "" == evt.data) >+ nullReturned = true; >+ assert_true(nullReturned); >+ wsocket.close(); >+ testMessage.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_equals(evt.wasClean, true, "wasClean should be true"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-null.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-null.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-null.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-paired-surrogates.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-paired-surrogates.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-paired-surrogates.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-paired-surrogates.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-paired-surrogates.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..f53b9d522acc50a6dd86c1269a828b2abe5ec094 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-paired-surrogates.any.js >@@ -0,0 +1,28 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Send paired surrogates data on a Secure WebSocket - Connection should be opened"); >+var testMessage = async_test("Send paired surrogates data on a Secure WebSocket - Message should be received"); >+var testClose = async_test("Send paired surrogates data on a Secure WebSocket - Connection should be closed"); >+ >+var data = "\uD801\uDC07"; >+var wsocket = CreateWebSocket(true, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ wsocket.send(data); >+ assert_equals(data.length * 2, wsocket.bufferedAmount); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('message', testMessage.step_func(function(evt) { >+ assert_equals(evt.data, data); >+ wsocket.close(); >+ testMessage.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_equals(evt.wasClean, true, "wasClean should be true"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-paired-surrogates.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-paired-surrogates.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-paired-surrogates.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-unicode-data.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-unicode-data.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-unicode-data.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-unicode-data.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-unicode-data.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..7156698510b9a54f6c0369bb41306ac1a1717961 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-unicode-data.any.js >@@ -0,0 +1,28 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Send unicode data on a Secure WebSocket - Connection should be opened"); >+var testMessage = async_test("Send unicode data on a Secure WebSocket - Message should be received"); >+var testClose = async_test("Send unicode data on a Secure WebSocket - Connection should be closed"); >+ >+var data = "¥¥¥¥¥¥"; >+var wsocket = CreateWebSocket(true, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ wsocket.send(data); >+ assert_equals(data.length * 2, wsocket.bufferedAmount); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('message', testMessage.step_func(function(evt) { >+ assert_equals(evt.data, data); >+ wsocket.close(); >+ testMessage.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_equals(evt.wasClean, true, "wasClean should be true"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-unicode-data.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-unicode-data.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-unicode-data.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-unpaired-surrogates.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-unpaired-surrogates.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-unpaired-surrogates.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-unpaired-surrogates.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-unpaired-surrogates.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..00d8589ed7fde5d9e2e6012c307ac3144a9acb12 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-unpaired-surrogates.any.js >@@ -0,0 +1,28 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Send unpaired surrogates on a Secure WebSocket - Connection should be opened"); >+var testMessage = async_test("Send unpaired surrogates on a Secure WebSocket - Message should be received"); >+var testClose = async_test("Send unpaired surrogates on a Secure WebSocket - Connection should be closed"); >+ >+var data = "\uD807"; >+var replacementChar = "\uFFFD"; >+var wsocket = CreateWebSocket(true, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ wsocket.send(data); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('message', testMessage.step_func(function(evt) { >+ assert_equals(evt.data, replacementChar); >+ wsocket.close(); >+ testMessage.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_equals(evt.wasClean, true, "wasClean should be true"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-unpaired-surrogates.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-unpaired-surrogates.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-unpaired-surrogates.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-0byte-data.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-0byte-data.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..3e69cc2cfb9a598c2fad5b9881174fdc74328069 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-0byte-data.any-expected.txt >@@ -0,0 +1,5 @@ >+ >+PASS Send 0 byte data on a WebSocket - Connection should be opened >+PASS Send 0 byte data on a WebSocket - Message should be received >+PASS Send 0 byte data on a WebSocket - Connection should be closed >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-0byte-data.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-0byte-data.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-0byte-data.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-0byte-data.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-0byte-data.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..b335a1fc151655b598b878b020e40eee0fd36ab8 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-0byte-data.any.js >@@ -0,0 +1,28 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Send 0 byte data on a WebSocket - Connection should be opened"); >+var testMessage = async_test("Send 0 byte data on a WebSocket - Message should be received"); >+var testClose = async_test("Send 0 byte data on a WebSocket - Connection should be closed"); >+ >+var data = ""; >+var wsocket = CreateWebSocket(false, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ wsocket.send(data); >+ assert_equals(data.length, wsocket.bufferedAmount); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('message', testMessage.step_func(function(evt) { >+ assert_equals(evt.data, data); >+ wsocket.close(); >+ testMessage.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_equals(evt.wasClean, true, "wasClean should be true"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-0byte-data.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-0byte-data.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..3e69cc2cfb9a598c2fad5b9881174fdc74328069 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-0byte-data.any.worker-expected.txt >@@ -0,0 +1,5 @@ >+ >+PASS Send 0 byte data on a WebSocket - Connection should be opened >+PASS Send 0 byte data on a WebSocket - Message should be received >+PASS Send 0 byte data on a WebSocket - Connection should be closed >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-0byte-data.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-0byte-data.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-0byte-data.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-65K-data.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-65K-data.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..0556ea9a00a0b609da186f1e3f05aba7b1d344e1 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-65K-data.any-expected.txt >@@ -0,0 +1,5 @@ >+ >+FAIL Send 65K data on a WebSocket - Connection should be opened assert_equals: expected 0 but got 65000 >+PASS Send 65K data on a WebSocket - Message should be received >+FAIL Send 65K data on a WebSocket - Connection should be closed assert_true: WebSocket connection should be open expected true got false >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-65K-data.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-65K-data.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-65K-data.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-65K-data.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-65K-data.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..ad74327fa8157c4235ced2459e73d5bc216dd5b3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-65K-data.any.js >@@ -0,0 +1,31 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Send 65K data on a WebSocket - Connection should be opened"); >+var testMessage = async_test("Send 65K data on a WebSocket - Message should be received"); >+var testClose = async_test("Send 65K data on a WebSocket - Connection should be closed"); >+ >+var data = ""; >+var wsocket = CreateWebSocket(false, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ for (var i = 0; i < 65000; i++) { >+ data = data + "c"; >+ } >+ wsocket.send(data); >+ assert_equals(data.length, wsocket.bufferedAmount); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('message', testMessage.step_func(function(evt) { >+ assert_equals(evt.data, data); >+ wsocket.close(); >+ testMessage.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_equals(evt.wasClean, true, "wasClean should be true"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-65K-data.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-65K-data.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..0556ea9a00a0b609da186f1e3f05aba7b1d344e1 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-65K-data.any.worker-expected.txt >@@ -0,0 +1,5 @@ >+ >+FAIL Send 65K data on a WebSocket - Connection should be opened assert_equals: expected 0 but got 65000 >+PASS Send 65K data on a WebSocket - Message should be received >+FAIL Send 65K data on a WebSocket - Connection should be closed assert_true: WebSocket connection should be open expected true got false >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-65K-data.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-65K-data.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-65K-data.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-Unpaired-Surrogates.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-Unpaired-Surrogates.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..50bc308952873f60b16bbc142f822d4822233219 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-Unpaired-Surrogates.any-expected.txt >@@ -0,0 +1,5 @@ >+ >+PASS Send unpaired surrogates on a WebSocket - Connection should be opened >+PASS Send unpaired surrogates on a WebSocket - Message should be received >+PASS Send unpaired surrogates on a WebSocket - Connection should be closed >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-Unpaired-Surrogates.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-Unpaired-Surrogates.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-Unpaired-Surrogates.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-Unpaired-Surrogates.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-Unpaired-Surrogates.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..820fb3115714a37d42df0bd3008daae1cd494b34 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-Unpaired-Surrogates.any.js >@@ -0,0 +1,28 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Send unpaired surrogates on a WebSocket - Connection should be opened"); >+var testMessage = async_test("Send unpaired surrogates on a WebSocket - Message should be received"); >+var testClose = async_test("Send unpaired surrogates on a WebSocket - Connection should be closed"); >+ >+var data = "\uD807"; >+var replacementChar = "\uFFFD"; >+var wsocket = CreateWebSocket(false, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ wsocket.send(data); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('message', testMessage.step_func(function(evt) { >+ assert_equals(evt.data, replacementChar); >+ wsocket.close(); >+ testMessage.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_equals(evt.wasClean, true, "wasClean should be true"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-Unpaired-Surrogates.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-Unpaired-Surrogates.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..50bc308952873f60b16bbc142f822d4822233219 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-Unpaired-Surrogates.any.worker-expected.txt >@@ -0,0 +1,5 @@ >+ >+PASS Send unpaired surrogates on a WebSocket - Connection should be opened >+PASS Send unpaired surrogates on a WebSocket - Message should be received >+PASS Send unpaired surrogates on a WebSocket - Connection should be closed >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-Unpaired-Surrogates.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-Unpaired-Surrogates.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-Unpaired-Surrogates.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-before-open.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-before-open.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..7825adaeb84941151d5043408cd2dc9de3148fcd >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-before-open.any-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS Send data on a WebSocket before connection is opened - INVALID_STATE_ERR is returned >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-before-open.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-before-open.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-before-open.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-before-open.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-before-open.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..b2f1ea9c3aa856e5e0ace17ff4ff3a69d6cf57fd >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-before-open.any.js >@@ -0,0 +1,8 @@ >+// META: script=websocket.sub.js >+ >+test(function() { >+ var wsocket = CreateWebSocket(false, false, false); >+ assert_throws("INVALID_STATE_ERR", function() { >+ wsocket.send("Message to send") >+ }); >+}, "Send data on a WebSocket before connection is opened - INVALID_STATE_ERR is returned") >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-before-open.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-before-open.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..7825adaeb84941151d5043408cd2dc9de3148fcd >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-before-open.any.worker-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS Send data on a WebSocket before connection is opened - INVALID_STATE_ERR is returned >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-before-open.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-before-open.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-before-open.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-65K-arraybuffer.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-65K-arraybuffer.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..42fe00be6da6aebfcf0b97bb52e532a6aad5411e >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-65K-arraybuffer.any-expected.txt >@@ -0,0 +1,5 @@ >+ >+FAIL Send 65K binary data on a WebSocket - ArrayBuffer - Connection should be opened assert_equals: expected 0 but got 65000 >+PASS Send 65K binary data on a WebSocket - ArrayBuffer - Message should be received >+FAIL Send 65K binary data on a WebSocket - ArrayBuffer - Connection should be closed assert_true: WebSocket connection should be open expected true got false >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-65K-arraybuffer.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-65K-arraybuffer.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-65K-arraybuffer.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-65K-arraybuffer.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-65K-arraybuffer.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..394a902c8d70258e482c650baafd3509ee3a73d9 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-65K-arraybuffer.any.js >@@ -0,0 +1,31 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Send 65K binary data on a WebSocket - ArrayBuffer - Connection should be opened"); >+var testMessage = async_test("Send 65K binary data on a WebSocket - ArrayBuffer - Message should be received"); >+var testClose = async_test("Send 65K binary data on a WebSocket - ArrayBuffer - Connection should be closed"); >+ >+var data = ""; >+var datasize = 65000; >+var wsocket = CreateWebSocket(false, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ wsocket.binaryType = "arraybuffer"; >+ data = new ArrayBuffer(datasize); >+ wsocket.send(data); >+ assert_equals(datasize, wsocket.bufferedAmount); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('message', testMessage.step_func(function(evt) { >+ assert_equals(evt.data.byteLength, datasize); >+ wsocket.close(); >+ testMessage.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_equals(evt.wasClean, true, "wasClean should be true"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-65K-arraybuffer.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-65K-arraybuffer.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..42fe00be6da6aebfcf0b97bb52e532a6aad5411e >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-65K-arraybuffer.any.worker-expected.txt >@@ -0,0 +1,5 @@ >+ >+FAIL Send 65K binary data on a WebSocket - ArrayBuffer - Connection should be opened assert_equals: expected 0 but got 65000 >+PASS Send 65K binary data on a WebSocket - ArrayBuffer - Message should be received >+FAIL Send 65K binary data on a WebSocket - ArrayBuffer - Connection should be closed assert_true: WebSocket connection should be open expected true got false >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-65K-arraybuffer.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-65K-arraybuffer.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-65K-arraybuffer.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybuffer.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybuffer.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..137d58cd6a58dfa5e9d6eb5126110f22b2015ab7 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybuffer.any-expected.txt >@@ -0,0 +1,5 @@ >+ >+FAIL Send binary data on a WebSocket - ArrayBuffer - Connection should be opened assert_equals: expected 0 but got 15 >+PASS Send binary data on a WebSocket - ArrayBuffer - Message should be received >+FAIL Send binary data on a WebSocket - ArrayBuffer - Connection should be closed assert_true: WebSocket connection should be open expected true got false >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybuffer.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybuffer.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybuffer.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybuffer.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybuffer.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..24618293fb8ba537321bd4d7d3b552e00d2d0fa2 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybuffer.any.js >@@ -0,0 +1,31 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Send binary data on a WebSocket - ArrayBuffer - Connection should be opened"); >+var testMessage = async_test("Send binary data on a WebSocket - ArrayBuffer - Message should be received"); >+var testClose = async_test("Send binary data on a WebSocket - ArrayBuffer - Connection should be closed"); >+ >+var data = ""; >+var datasize = 15; >+var wsocket = CreateWebSocket(false, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ wsocket.binaryType = "arraybuffer"; >+ data = new ArrayBuffer(datasize); >+ wsocket.send(data); >+ assert_equals(datasize, wsocket.bufferedAmount); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('message', testMessage.step_func(function(evt) { >+ assert_equals(evt.data.byteLength, datasize); >+ wsocket.close(); >+ testMessage.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_equals(evt.wasClean, true, "wasClean should be true"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybuffer.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybuffer.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..137d58cd6a58dfa5e9d6eb5126110f22b2015ab7 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybuffer.any.worker-expected.txt >@@ -0,0 +1,5 @@ >+ >+FAIL Send binary data on a WebSocket - ArrayBuffer - Connection should be opened assert_equals: expected 0 but got 15 >+PASS Send binary data on a WebSocket - ArrayBuffer - Message should be received >+FAIL Send binary data on a WebSocket - ArrayBuffer - Connection should be closed assert_true: WebSocket connection should be open expected true got false >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybuffer.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybuffer.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybuffer.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybufferview-int16-offset.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybufferview-int16-offset.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..7f052aa3b61aec75c77c38de17702f85b3bd47f1 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybufferview-int16-offset.any-expected.txt >@@ -0,0 +1,5 @@ >+ >+PASS Send binary data on a WebSocket - ArrayBufferView - Int16Array with offset - Connection should be opened >+PASS Send binary data on a WebSocket - ArrayBufferView - Int16Array with offset - Message should be received >+PASS Send binary data on a WebSocket - ArrayBufferView - Int16Array with offset - Connection should be closed >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybufferview-int16-offset.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybufferview-int16-offset.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybufferview-int16-offset.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybufferview-int16-offset.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybufferview-int16-offset.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..a32b1391dc79693cf5779c00809650ee1782cc5e >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybufferview-int16-offset.any.js >@@ -0,0 +1,38 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Send binary data on a WebSocket - ArrayBufferView - Int16Array with offset - Connection should be opened"); >+var testMessage = async_test("Send binary data on a WebSocket - ArrayBufferView - Int16Array with offset - Message should be received"); >+var testClose = async_test("Send binary data on a WebSocket - ArrayBufferView - Int16Array with offset - Connection should be closed"); >+ >+var data = ""; >+var datasize = 8; >+var view; >+var wsocket = CreateWebSocket(false, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ wsocket.binaryType = "arraybuffer"; >+ data = new ArrayBuffer(datasize); >+ view = new Int16Array(data, 2); >+ for (var i = 0; i < 4; i++) { >+ view[i] = i; >+ } >+ wsocket.send(view); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('message', testMessage.step_func(function(evt) { >+ var resultView = new Int16Array(evt.data); >+ for (var i = 0; i < resultView.length; i++) { >+ assert_equals(resultView[i], view[i], "ArrayBufferView returned is the same"); >+ } >+ wsocket.close(); >+ testMessage.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_equals(evt.wasClean, true, "wasClean should be true"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybufferview-int16-offset.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybufferview-int16-offset.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..7f052aa3b61aec75c77c38de17702f85b3bd47f1 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybufferview-int16-offset.any.worker-expected.txt >@@ -0,0 +1,5 @@ >+ >+PASS Send binary data on a WebSocket - ArrayBufferView - Int16Array with offset - Connection should be opened >+PASS Send binary data on a WebSocket - ArrayBufferView - Int16Array with offset - Message should be received >+PASS Send binary data on a WebSocket - ArrayBufferView - Int16Array with offset - Connection should be closed >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybufferview-int16-offset.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybufferview-int16-offset.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybufferview-int16-offset.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybufferview-int8.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybufferview-int8.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..adb500b032f8ca43436dda8d6c690b22c35b5889 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybufferview-int8.any-expected.txt >@@ -0,0 +1,5 @@ >+ >+PASS Send binary data on a WebSocket - ArrayBufferView - Int8Array - Connection should be opened >+PASS Send binary data on a WebSocket - ArrayBufferView - Int8Array - Message should be received >+PASS Send binary data on a WebSocket - ArrayBufferView - Int8Array - Connection should be closed >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybufferview-int8.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybufferview-int8.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybufferview-int8.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybufferview-int8.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybufferview-int8.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..d9e50b511d44164af55c486d1da78a19c4bb7eb1 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybufferview-int8.any.js >@@ -0,0 +1,38 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Send binary data on a WebSocket - ArrayBufferView - Int8Array - Connection should be opened"); >+var testMessage = async_test("Send binary data on a WebSocket - ArrayBufferView - Int8Array - Message should be received"); >+var testClose = async_test("Send binary data on a WebSocket - ArrayBufferView - Int8Array - Connection should be closed"); >+ >+var data = ""; >+var datasize = 8; >+var int8View; >+var wsocket = CreateWebSocket(false, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ wsocket.binaryType = "arraybuffer"; >+ data = new ArrayBuffer(datasize); >+ int8View = new Int8Array(data); >+ for (var i = 0; i < 8; i++) { >+ int8View[i] = i; >+ } >+ wsocket.send(int8View); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('message', testMessage.step_func(function(evt) { >+ var resultView = new Int8Array(evt.data); >+ for (var i = 0; i < resultView.length; i++) { >+ assert_equals(resultView[i], int8View[i], "ArrayBufferView returned is the same"); >+ } >+ wsocket.close(); >+ testMessage.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_equals(evt.wasClean, true, "wasClean should be true"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybufferview-int8.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybufferview-int8.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..adb500b032f8ca43436dda8d6c690b22c35b5889 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybufferview-int8.any.worker-expected.txt >@@ -0,0 +1,5 @@ >+ >+PASS Send binary data on a WebSocket - ArrayBufferView - Int8Array - Connection should be opened >+PASS Send binary data on a WebSocket - ArrayBufferView - Int8Array - Message should be received >+PASS Send binary data on a WebSocket - ArrayBufferView - Int8Array - Connection should be closed >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybufferview-int8.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybufferview-int8.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybufferview-int8.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-blob.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-blob.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..702e0a2c352f059429f9eb90e24ad439913c63c2 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-blob.any-expected.txt >@@ -0,0 +1,5 @@ >+ >+PASS Send binary data on a WebSocket - Blob - Connection should be opened >+PASS Send binary data on a WebSocket - Blob - Message should be received >+PASS Send binary data on a WebSocket - Blob - Connection should be closed >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-blob.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-blob.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-blob.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-blob.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-blob.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..12d2a83785dde0eb752907a45992f8752d70102b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-blob.any.js >@@ -0,0 +1,34 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Send binary data on a WebSocket - Blob - Connection should be opened"); >+var testMessage = async_test("Send binary data on a WebSocket - Blob - Message should be received"); >+var testClose = async_test("Send binary data on a WebSocket - Blob - Connection should be closed"); >+ >+var data = ""; >+var datasize = 65000; >+var isOpenCalled = false; >+ >+var wsocket = CreateWebSocket(false, false, false); >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ wsocket.binaryType = "blob"; >+ for (var i = 0; i < datasize; i++) >+ data += String.fromCharCode(0); >+ data = new Blob([data]); >+ isOpenCalled = true; >+ wsocket.send(data); >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('message', testMessage.step_func(function(evt) { >+ assert_true(evt.data instanceof Blob); >+ assert_equals(evt.data.size, datasize); >+ wsocket.close(); >+ testMessage.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_true(evt.wasClean, "wasClean should be true"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-blob.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-blob.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..702e0a2c352f059429f9eb90e24ad439913c63c2 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-blob.any.worker-expected.txt >@@ -0,0 +1,5 @@ >+ >+PASS Send binary data on a WebSocket - Blob - Connection should be opened >+PASS Send binary data on a WebSocket - Blob - Message should be received >+PASS Send binary data on a WebSocket - Blob - Connection should be closed >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-blob.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-blob.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-blob.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-data.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-data.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..aff87d904a844332941b61808cdbe10350cffe3e >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-data.any-expected.txt >@@ -0,0 +1,5 @@ >+ >+FAIL Send data on a WebSocket - Connection should be opened assert_equals: expected 0 but got 15 >+PASS Send data on a WebSocket - Message should be received >+FAIL Send data on a WebSocket - Connection should be closed assert_true: WebSocket connection should be open expected true got false >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-data.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-data.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-data.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-data.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-data.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..98a866b29493145b34738c2db187d670e7f27318 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-data.any.js >@@ -0,0 +1,28 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Send data on a WebSocket - Connection should be opened"); >+var testMessage = async_test("Send data on a WebSocket - Message should be received"); >+var testClose = async_test("Send data on a WebSocket - Connection should be closed"); >+ >+var data = "Message to send"; >+var wsocket = CreateWebSocket(false, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ wsocket.send(data); >+ assert_equals(data.length, wsocket.bufferedAmount); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('message', testMessage.step_func(function(evt) { >+ assert_equals(evt.data, data); >+ wsocket.close(); >+ testMessage.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_equals(evt.wasClean, true, "wasClean should be true"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-data.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-data.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..aff87d904a844332941b61808cdbe10350cffe3e >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-data.any.worker-expected.txt >@@ -0,0 +1,5 @@ >+ >+FAIL Send data on a WebSocket - Connection should be opened assert_equals: expected 0 but got 15 >+PASS Send data on a WebSocket - Message should be received >+FAIL Send data on a WebSocket - Connection should be closed assert_true: WebSocket connection should be open expected true got false >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-data.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-data.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-data.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-data.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-data.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..87a6ec084dc5f65a1a4fa4ec18812b95ddf11750 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-data.worker-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS Send data on a WebSocket in a Worker >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-data.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-data.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-data.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-data.worker.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-data.worker.js >new file mode 100644 >index 0000000000000000000000000000000000000000..6d4f693d053266f9982ff2eabcac617d61019857 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-data.worker.js >@@ -0,0 +1,21 @@ >+importScripts("/resources/testharness.js"); >+importScripts('websocket.sub.js') >+ >+var data = "test data"; >+ >+async_test(function(t) { >+ >+ var wsocket = CreateWebSocket(false, false, false); >+ >+ wsocket.addEventListener('open', function (e) { >+ wsocket.send(data) >+ }, true) >+ >+ wsocket.addEventListener('message', t.step_func_done(function(e) { >+ assert_equals(e.data, data); >+ done(); >+ }), true); >+ >+}, "Send data on a WebSocket in a Worker") >+ >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-null.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-null.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..7d26d2a78cf7358234b6fbb3ff741722e7ac904c >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-null.any-expected.txt >@@ -0,0 +1,5 @@ >+ >+PASS Send null data on a WebSocket - Connection should be opened >+PASS Send null data on a WebSocket - Message should be received >+PASS Send null data on a WebSocket - Connection should be closed >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-null.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-null.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-null.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-null.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-null.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..ac1a1b29826652e35c384653aacf79cbee2de7c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-null.any.js >@@ -0,0 +1,30 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Send null data on a WebSocket - Connection should be opened"); >+var testMessage = async_test("Send null data on a WebSocket - Message should be received"); >+var testClose = async_test("Send null data on a WebSocket - Connection should be closed"); >+ >+var data = null; >+var nullReturned = false; >+var wsocket = CreateWebSocket(false, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ wsocket.send(data); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('message', testMessage.step_func(function(evt) { >+ if ("null" == evt.data || "" == evt.data) >+ nullReturned = true; >+ assert_true(nullReturned); >+ wsocket.close(); >+ testMessage.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_equals(evt.wasClean, true, "wasClean should be true"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-null.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-null.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..7d26d2a78cf7358234b6fbb3ff741722e7ac904c >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-null.any.worker-expected.txt >@@ -0,0 +1,5 @@ >+ >+PASS Send null data on a WebSocket - Connection should be opened >+PASS Send null data on a WebSocket - Message should be received >+PASS Send null data on a WebSocket - Connection should be closed >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-null.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-null.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-null.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-paired-surrogates.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-paired-surrogates.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..cb9a06a5765dca34569d5dc29c028fbeeab28ff2 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-paired-surrogates.any-expected.txt >@@ -0,0 +1,5 @@ >+ >+FAIL Send (paired surrogates) data on a WebSocket - Connection should be opened assert_equals: expected 0 but got 4 >+PASS Send (paired surrogates) data on a WebSocket - Message should be received >+FAIL Send (paired surrogates) data on a WebSocket - Connection should be closed assert_true: WebSocket connection should be open expected true got false >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-paired-surrogates.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-paired-surrogates.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-paired-surrogates.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-paired-surrogates.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-paired-surrogates.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..003b04010a8affbf61f32ab3a7974f5b278977a9 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-paired-surrogates.any.js >@@ -0,0 +1,28 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Send (paired surrogates) data on a WebSocket - Connection should be opened"); >+var testMessage = async_test("Send (paired surrogates) data on a WebSocket - Message should be received"); >+var testClose = async_test("Send (paired surrogates) data on a WebSocket - Connection should be closed"); >+ >+var data = "\uD801\uDC07"; >+var wsocket = CreateWebSocket(false, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ wsocket.send(data); >+ assert_equals(data.length * 2, wsocket.bufferedAmount); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('message', testMessage.step_func(function(evt) { >+ assert_equals(evt.data, data); >+ wsocket.close(); >+ testMessage.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_equals(evt.wasClean, true, "wasClean should be true"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-paired-surrogates.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-paired-surrogates.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..cb9a06a5765dca34569d5dc29c028fbeeab28ff2 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-paired-surrogates.any.worker-expected.txt >@@ -0,0 +1,5 @@ >+ >+FAIL Send (paired surrogates) data on a WebSocket - Connection should be opened assert_equals: expected 0 but got 4 >+PASS Send (paired surrogates) data on a WebSocket - Message should be received >+FAIL Send (paired surrogates) data on a WebSocket - Connection should be closed assert_true: WebSocket connection should be open expected true got false >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-paired-surrogates.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-paired-surrogates.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-paired-surrogates.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-unicode-data.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-unicode-data.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..0b36da635589cb43ec71ec7c13abf11a0aabfee0 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-unicode-data.any-expected.txt >@@ -0,0 +1,5 @@ >+ >+FAIL Send unicode data on a WebSocket - Connection should be opened assert_equals: expected 0 but got 12 >+PASS Send unicode data on a WebSocket - Message should be received >+FAIL Send unicode data on a WebSocket - Connection should be closed assert_true: WebSocket connection should be open expected true got false >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-unicode-data.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-unicode-data.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-unicode-data.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-unicode-data.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-unicode-data.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..59292546db11f69b3b25ca7cce37f029f928ea33 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-unicode-data.any.js >@@ -0,0 +1,28 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Send unicode data on a WebSocket - Connection should be opened"); >+var testMessage = async_test("Send unicode data on a WebSocket - Message should be received"); >+var testClose = async_test("Send unicode data on a WebSocket - Connection should be closed"); >+ >+var data = "¥¥¥¥¥¥"; >+var wsocket = CreateWebSocket(false, false, false); >+var isOpenCalled = false; >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ wsocket.send(data); >+ assert_equals(data.length * 2, wsocket.bufferedAmount); >+ isOpenCalled = true; >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('message', testMessage.step_func(function(evt) { >+ assert_equals(evt.data, data); >+ wsocket.close(); >+ testMessage.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(isOpenCalled, "WebSocket connection should be open"); >+ assert_equals(evt.wasClean, true, "wasClean should be true"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-unicode-data.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-unicode-data.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..0b36da635589cb43ec71ec7c13abf11a0aabfee0 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-unicode-data.any.worker-expected.txt >@@ -0,0 +1,5 @@ >+ >+FAIL Send unicode data on a WebSocket - Connection should be opened assert_equals: expected 0 but got 12 >+PASS Send unicode data on a WebSocket - Message should be received >+FAIL Send unicode data on a WebSocket - Connection should be closed assert_true: WebSocket connection should be open expected true got false >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-unicode-data.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-unicode-data.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-unicode-data.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/basic-auth.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/basic-auth.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..dea59a3f6d0f71cf3656a5e2f4de39beec10769e >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/basic-auth.any-expected.txt >@@ -0,0 +1,4 @@ >+CONSOLE MESSAGE: WebSocket connection to 'ws://foo:bar@localhost:49001/basic_auth' failed: Unexpected response code: 401 >+ >+FAIL HTTP basic authentication should work with WebSockets assert_unreached: open should succeed Reached unreachable code >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/basic-auth.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/basic-auth.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/basic-auth.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/basic-auth.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/basic-auth.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..45e4dadb3b9ce5fbead88dc85d68832b6dd04b5a >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/basic-auth.any.js >@@ -0,0 +1,18 @@ >+// META: script=websocket.sub.js >+// META: global=sharedworker,serviceworker >+ >+async_test(t => { >+ const isSecure = new URL(location.href).scheme === 'https'; >+ const scheme = isSecure ? 'wss' : 'ws'; >+ const port = isSecure ? __SECURE__PORT : __PORT; >+ const url = scheme + '://' + 'foo:bar@' + __SERVER__NAME + ':' + port + '/basic_auth'; >+ const ws = new WebSocket(url); >+ ws.onopen = () => { >+ ws.onclose = ws.onerror = null; >+ ws.close(); >+ t.done(); >+ }; >+ ws.onerror = ws.onclose = t.unreached_func('open should succeed'); >+}, 'HTTP basic authentication should work with WebSockets'); >+ >+done(); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/basic-auth.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/basic-auth.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..dea59a3f6d0f71cf3656a5e2f4de39beec10769e >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/basic-auth.any.worker-expected.txt >@@ -0,0 +1,4 @@ >+CONSOLE MESSAGE: WebSocket connection to 'ws://foo:bar@localhost:49001/basic_auth' failed: Unexpected response code: 401 >+ >+FAIL HTTP basic authentication should work with WebSockets assert_unreached: open should succeed Reached unreachable code >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/basic-auth.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/basic-auth.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/basic-auth.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/binary/001-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/binary/001-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..cbc3b4f69344ab89e867fa3faba0c403a0d36d18 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/binary/001-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: Send/Receive blob, blob size less than network array buffer >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/binary/001.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/binary/001.html >new file mode 100644 >index 0000000000000000000000000000000000000000..4631ebcf7f0ec004362e0ff6d0122fc245e58c14 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/binary/001.html >@@ -0,0 +1,26 @@ >+<!doctype html> >+<title>WebSockets: Send/Receive blob, blob size less than network array buffer</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t){ >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT + '/echo'); >+ var data = ""; >+ var datasize = 10; >+ ws.onopen = t.step_func(function(e) { >+ ws.binaryType = "blob"; >+ data = new ArrayBuffer(datasize); >+ ws.send(data); >+ }) >+ ws.onmessage = t.step_func(function(e) { >+ assert_true(e.data instanceof Blob); >+ assert_equals(e.data.size, datasize); >+ t.done(); >+ }) >+ >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/binary/002-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/binary/002-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..6f9f3b689b710b84894f35fde183efc210ba1ba3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/binary/002-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: Send/Receive blob, blob size greater than network array buffer >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/binary/002.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/binary/002.html >new file mode 100644 >index 0000000000000000000000000000000000000000..313f6d219c0ae22df7bc75d54cc1dc98c0bf6919 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/binary/002.html >@@ -0,0 +1,27 @@ >+<!doctype html> >+<title>WebSockets: Send/Receive blob, blob size greater than network array buffer</title> >+<meta name=timeout content=long> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t){ >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); >+ var data = ""; >+ var datasize = 100000; >+ ws.onopen = t.step_func(function(e) { >+ ws.binaryType = "blob"; >+ data = new ArrayBuffer(datasize); >+ ws.send(data); >+ }); >+ ws.onmessage = t.step_func(function(e) { >+ assert_true(e.data instanceof Blob); >+ assert_equals(e.data.size, datasize); >+ t.done(); >+ }); >+ >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/binary/004-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/binary/004-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..9c4caba8d7f093fa129ec88b49d2e98a59439fe1 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/binary/004-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: Send/Receive ArrayBuffer, size greater than network array buffer >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/binary/004.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/binary/004.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2c4e46a2d380dc3e2b8ecebfdbc4a2311c95836c >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/binary/004.html >@@ -0,0 +1,26 @@ >+<!doctype html> >+<title>WebSockets: Send/Receive ArrayBuffer, size greater than network array buffer</title> >+<meta name=timeout content=long> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t){ >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); >+ var data = ""; >+ var datasize = 100000; >+ ws.onopen = t.step_func(function(e) { >+ ws.binaryType = "arraybuffer"; >+ data = new ArrayBuffer(datasize); >+ ws.send(data); >+ }) >+ ws.onmessage = t.step_func(function(e) { >+ assert_equals(e.data.byteLength, datasize); >+ t.done(); >+ }) >+ >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/binary/005-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/binary/005-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..d1f6c3cd03e0e776ed316372c7f2b43dc47f4c58 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/binary/005-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: Send/Receive ArrayBuffer, size less than network array buffer >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/binary/005.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/binary/005.html >new file mode 100644 >index 0000000000000000000000000000000000000000..54c1aae90f913a593d4f299d27cb568053e446bf >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/binary/005.html >@@ -0,0 +1,24 @@ >+<!doctype html> >+<title>WebSockets: Send/Receive ArrayBuffer, size less than network array buffer</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t){ >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); >+ var data = ""; >+ var datasize = 10; >+ ws.onopen = t.step_func(function(e) { >+ ws.binaryType = "arraybuffer"; >+ data = new ArrayBuffer(datasize); >+ ws.send(data); >+ }); >+ ws.onmessage = t.step_func(function(e) { >+ assert_equals(e.data.byteLength, datasize); >+ t.done(); >+ }); >+ }); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/binary/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/websockets/binary/w3c-import.log >new file mode 100644 >index 0000000000000000000000000000000000000000..4edf2e6d093a1fc53759c1e8b4c3e1a758bcaf85 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/binary/w3c-import.log >@@ -0,0 +1,20 @@ >+The tests in this directory were imported from the W3C repository. >+Do NOT modify these tests directly in WebKit. >+Instead, create a pull request on the WPT github: >+ https://github.com/web-platform-tests/wpt >+ >+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport >+ >+Do NOT modify or remove this file. >+ >+------------------------------------------------------------------------ >+Properties requiring vendor prefixes: >+None >+Property values requiring vendor prefixes: >+None >+------------------------------------------------------------------------ >+List of files: >+/LayoutTests/imported/w3c/web-platform-tests/websockets/binary/001.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/binary/002.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/binary/004.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/binary/005.html >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/binaryType-wrong-value.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/binaryType-wrong-value.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/binaryType-wrong-value.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/binaryType-wrong-value.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/binaryType-wrong-value.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..61ac6a19ffd07bf6cb942bc325282ff0b902ace1 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/binaryType-wrong-value.any.js >@@ -0,0 +1,19 @@ >+// META: script=websocket.sub.js >+ >+var testOpen = async_test("Create WebSocket - set binaryType to something other than blob or arraybuffer - SYNTAX_ERR is returned - Connection should be opened"); >+var testClose = async_test("Create WebSocket - set binaryType to something other than blob or arraybuffer - SYNTAX_ERR is returned - Connection should be closed"); >+ >+var wsocket = CreateWebSocket(true, false, false); >+ >+wsocket.addEventListener('open', testOpen.step_func(function(evt) { >+ assert_equals(wsocket.binaryType, "blob"); >+ wsocket.binaryType = "notBlobOrArrayBuffer"; >+ assert_equals(wsocket.binaryType, "blob"); >+ wsocket.close(); >+ testOpen.done(); >+}), true); >+ >+wsocket.addEventListener('close', testClose.step_func(function(evt) { >+ assert_true(evt.wasClean, "wasClean should be true"); >+ testClose.done(); >+}), true); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/binaryType-wrong-value.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/binaryType-wrong-value.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/binaryType-wrong-value.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/bufferedAmount-unchanged-by-sync-xhr.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/bufferedAmount-unchanged-by-sync-xhr.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/bufferedAmount-unchanged-by-sync-xhr.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/bufferedAmount-unchanged-by-sync-xhr.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/bufferedAmount-unchanged-by-sync-xhr.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..8397faf3c57573b6ed70c7abcb7db870e2f5ff1c >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/bufferedAmount-unchanged-by-sync-xhr.any.js >@@ -0,0 +1,23 @@ >+// META: script=websocket.sub.js >+// META: global=sharedworker >+ >+async_test(t => { >+ const url = 'wss://' + __SERVER__NAME + ':' + __SECURE__PORT + '/echo'; >+ const ws = new WebSocket(url); >+ ws.onopen = t.step_func(() => { >+ ws.onclose = ws.onerror = null; >+ assert_equals(ws.bufferedAmount, 0); >+ ws.send('hello'); >+ assert_equals(ws.bufferedAmount, 5); >+ // Stop execution for 1s with a sync XHR. >+ const xhr = new XMLHttpRequest(); >+ xhr.open('GET', '/common/blank.html?pipe=trickle(d1)', false); >+ xhr.send(); >+ assert_equals(ws.bufferedAmount, 5); >+ ws.close(); >+ t.done(); >+ }); >+ ws.onerror = ws.onclose = t.unreached_func('open should succeed'); >+}, 'bufferedAmount should not be updated during a sync XHR'); >+ >+done(); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/bufferedAmount-unchanged-by-sync-xhr.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/bufferedAmount-unchanged-by-sync-xhr.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..4776b8fa697f8d4be02f4fa88f6b9841a7e5f170 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/bufferedAmount-unchanged-by-sync-xhr.any.worker-expected.txt >@@ -0,0 +1,3 @@ >+ >+FAIL bufferedAmount should not be updated during a sync XHR assert_unreached: open should succeed Reached unreachable code >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/bufferedAmount-unchanged-by-sync-xhr.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/bufferedAmount-unchanged-by-sync-xhr.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/bufferedAmount-unchanged-by-sync-xhr.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/close-invalid.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/close-invalid.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..d8bc315555072f5ca4a41459d14153a12d7edaf4 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/close-invalid.any-expected.txt >@@ -0,0 +1,14 @@ >+ >+PASS 0 on a secure websocket >+PASS 0 on a insecure websocket >+PASS 500 on a secure websocket >+PASS 500 on a insecure websocket >+PASS NaN on a secure websocket >+PASS NaN on a insecure websocket >+PASS String on a secure websocket >+PASS String on a insecure websocket >+PASS null on a secure websocket >+PASS null on a insecure websocket >+PASS 2**16+1000 on a secure websocket >+PASS 2**16+1000 on a insecure websocket >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/close-invalid.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/close-invalid.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/close-invalid.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/close-invalid.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/close-invalid.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..8ac1da3f5de56974a1cea4a172a15c28d6047565 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/close-invalid.any.js >@@ -0,0 +1,20 @@ >+// META: script=websocket.sub.js >+ >+[ >+ [0, "0"], >+ [500, "500"], >+ [NaN, "NaN"], >+ ["string", "String"], >+ [null, "null"], >+ [0x10000 + 1000, "2**16+1000"], >+].forEach(function(t) { >+ [true, false].forEach(function(secure) { >+ test(function() { >+ var ws = CreateWebSocket(secure, false, false); >+ assert_throws("InvalidAccessError", function() { >+ ws.close(t[0]); >+ }); >+ wsocket.onerror = this.unreached_func(); >+ }, t[1] + " on a " + (secure ? "secure" : "insecure") + " websocket"); >+ }); >+}); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/close-invalid.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/close-invalid.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..d8bc315555072f5ca4a41459d14153a12d7edaf4 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/close-invalid.any.worker-expected.txt >@@ -0,0 +1,14 @@ >+ >+PASS 0 on a secure websocket >+PASS 0 on a insecure websocket >+PASS 500 on a secure websocket >+PASS 500 on a insecure websocket >+PASS NaN on a secure websocket >+PASS NaN on a insecure websocket >+PASS String on a secure websocket >+PASS String on a insecure websocket >+PASS null on a secure websocket >+PASS null on a insecure websocket >+PASS 2**16+1000 on a secure websocket >+PASS 2**16+1000 on a insecure websocket >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/close-invalid.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/close-invalid.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/close-invalid.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/closing-handshake/002-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/closing-handshake/002-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..95da22f6a246d46250d426772bfa9797ca9ceaf7 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/closing-handshake/002-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: server sends closing handshake >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/closing-handshake/002.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/closing-handshake/002.html >new file mode 100644 >index 0000000000000000000000000000000000000000..d3f7ce0cd3d8cf3be0908af46a7606793c417cf2 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/closing-handshake/002.html >@@ -0,0 +1,22 @@ >+<!doctype html> >+<title>WebSockets: server sends closing handshake</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t){ >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo_exit'); >+ ws.onmessage = ws.onerror = t.unreached_func(); >+ ws.onopen = t.step_func(function(e) { >+ ws.send('Goodbye'); >+ }) >+ ws.onclose = t.step_func(function(e) { >+ assert_equals(e.wasClean, true, 'e.wasClean'); >+ ws.onclose = t.unreached_func(); >+ t.step_timeout(() => t.done(), 50); >+ }); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/closing-handshake/003-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/closing-handshake/003-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..66a1e30aade7e91c3cbde6e922844f65073ede6a >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/closing-handshake/003-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: client sends closing handshake >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/closing-handshake/003.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/closing-handshake/003.html >new file mode 100644 >index 0000000000000000000000000000000000000000..648e77d67b3da665ae214fef374ff3b458598a0f >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/closing-handshake/003.html >@@ -0,0 +1,23 @@ >+<!doctype html> >+<title>WebSockets: client sends closing handshake</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT + '/echo'); >+ ws.onmessage = ws.onerror = t.unreached_func(); >+ ws.onopen = t.step_func(function(e) { >+ ws.close(); >+ }); >+ ws.onclose = t.step_func(function(e) { >+ assert_equals(e.code, 1005, 'e.code'); >+ assert_equals(e.wasClean, true, 'e.wasClean'); >+ ws.onclose = t.unreached_func(); >+ t.step_timeout(() => t.done(), 50); >+ }); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/closing-handshake/004-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/closing-handshake/004-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..ba4519bd32a369bdcdd53922afbec7b2668a40d0 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/closing-handshake/004-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: data after closing handshake >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/closing-handshake/004.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/closing-handshake/004.html >new file mode 100644 >index 0000000000000000000000000000000000000000..1519a4a43e93e98c0b558f53d3ce411fcb491bbb >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/closing-handshake/004.html >@@ -0,0 +1,24 @@ >+<!doctype html> >+<title>WebSockets: data after closing handshake</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo_close_data'); >+ ws.onmessage = ws.onerror = t.unreached_func(); >+ >+ ws.onopen = t.step_func(function(e) { >+ ws.send('Goodbye'); >+ }) >+ >+ ws.onclose = t.step_func(function(e) { >+ assert_equals(e.wasClean, true); >+ ws.onclose = t.unreached_func(); >+ t.step_timeout(() => t.done(), 50); >+ }) >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/closing-handshake/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/websockets/closing-handshake/w3c-import.log >new file mode 100644 >index 0000000000000000000000000000000000000000..1dcafef8a36a673e3f1c81f9aa918f21fbebb67c >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/closing-handshake/w3c-import.log >@@ -0,0 +1,19 @@ >+The tests in this directory were imported from the W3C repository. >+Do NOT modify these tests directly in WebKit. >+Instead, create a pull request on the WPT github: >+ https://github.com/web-platform-tests/wpt >+ >+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport >+ >+Do NOT modify or remove this file. >+ >+------------------------------------------------------------------------ >+Properties requiring vendor prefixes: >+None >+Property values requiring vendor prefixes: >+None >+------------------------------------------------------------------------ >+List of files: >+/LayoutTests/imported/w3c/web-platform-tests/websockets/closing-handshake/002.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/closing-handshake/003.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/closing-handshake/004.html >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constants.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/constants.js >new file mode 100644 >index 0000000000000000000000000000000000000000..cb17767f48c30863395f00d977080dd5e0501291 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constants.js >@@ -0,0 +1,11 @@ >+//This file requires server-side substitutions and must be included as constants.js?pipe=sub >+ >+var PORT = "{{ports[ws][0]}}"; >+var PORT_SSL = "{{ports[wss][0]}}"; >+ >+var SCHEME_DOMAIN_PORT; >+if (location.search == '?wss') { >+ SCHEME_DOMAIN_PORT = 'wss://{{host}}:' + PORT_SSL; >+} else { >+ SCHEME_DOMAIN_PORT = 'ws://{{host}}:' + PORT; >+} >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..6f21e2c9e15687e2ebae78e5abf11e639fac027e >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor.any-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS Calling the WebSocket constructor with too many arguments should not throw. >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..0605d5e5efc23da1a97a455548509e32cadceddd >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor.any.js >@@ -0,0 +1,7 @@ >+// META: script=websocket.sub.js >+ >+test(function() { >+ var ws = new WebSocket("ws://" + __SERVER__NAME + ":" + __PORT + "/" + __PATH, >+ "echo", "Stray argument") >+ assert_true(ws instanceof WebSocket, "Expected a WebSocket instance.") >+}, "Calling the WebSocket constructor with too many arguments should not throw.") >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..6f21e2c9e15687e2ebae78e5abf11e639fac027e >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor.any.worker-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS Calling the WebSocket constructor with too many arguments should not throw. >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/001-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/001-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..01a9f5cdc8725d5d6435506b12b5e5ea0e920716 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/001-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: new WebSocket() with no args >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/001.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/001.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2a868bfa0d37a3bb92b1847e080b1437a2a5a229 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/001.html >@@ -0,0 +1,13 @@ >+<!doctype html> >+<title>WebSockets: new WebSocket() with no args</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+test(function() { >+ assert_throws(new TypeError(), function(){new WebSocket()}); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/002-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/002-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..db708e783b48715e03c56c104ad9136c7682f2cf >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/002-expected.txt >@@ -0,0 +1,22 @@ >+CONSOLE MESSAGE: line 10: Wrong url scheme for WebSocket http://localhost:8800/test >+CONSOLE MESSAGE: line 11: Invalid url for WebSocket ws://foo bar.com/ >+CONSOLE MESSAGE: line 12: Invalid url for WebSocket wss://foo bar.com/ >+CONSOLE MESSAGE: line 13: Wrong url scheme for WebSocket http://localhost:8800/ >+CONSOLE MESSAGE: line 14: Wrong url scheme for WebSocket mailto:example@example.org >+CONSOLE MESSAGE: line 15: Wrong url scheme for WebSocket about:blank >+CONSOLE MESSAGE: line 16: URL has fragment component ws://localhost:49001/# >+CONSOLE MESSAGE: line 17: URL has fragment component ws://localhost:49001/#test >+CONSOLE MESSAGE: line 18: Wrong url scheme for WebSocket http://localhost:8800/websockets/constructor/002.html?test >+CONSOLE MESSAGE: line 19: Wrong url scheme for WebSocket http://localhost:8800/websockets/constructor/002.html#test >+ >+PASS WebSockets: new WebSocket(invalid url) >+PASS WebSockets: new WebSocket(invalid url) 1 >+PASS WebSockets: new WebSocket(invalid url) 2 >+PASS WebSockets: new WebSocket(invalid url) 3 >+PASS WebSockets: new WebSocket(invalid url) 4 >+PASS WebSockets: new WebSocket(invalid url) 5 >+PASS WebSockets: new WebSocket(invalid url) 6 >+PASS WebSockets: new WebSocket(invalid url) 7 >+PASS WebSockets: new WebSocket(invalid url) 8 >+PASS WebSockets: new WebSocket(invalid url) 9 >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/002.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/002.html >new file mode 100644 >index 0000000000000000000000000000000000000000..94015979b0a19d1dbb76f15a8347e408ab0061a7 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/002.html >@@ -0,0 +1,20 @@ >+<!doctype html> >+<title>WebSockets: new WebSocket(invalid url)</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+test(function() {assert_throws("SyntaxError", function(){new WebSocket("/test")})}); >+test(function() {assert_throws("SyntaxError", function(){new WebSocket("ws://foo bar.com/")})}); >+test(function() {assert_throws("SyntaxError", function(){new WebSocket("wss://foo bar.com/")})}); >+test(function() {assert_throws("SyntaxError", function(){new WebSocket("http://"+location.host+"/")})}); >+test(function() {assert_throws("SyntaxError", function(){new WebSocket("mailto:example@example.org")})}); >+test(function() {assert_throws("SyntaxError", function(){new WebSocket("about:blank")})}); >+test(function() {assert_throws("SyntaxError", function(){new WebSocket(SCHEME_DOMAIN_PORT+"/#")})}); >+test(function() {assert_throws("SyntaxError", function(){new WebSocket(SCHEME_DOMAIN_PORT+"/#test")})}); >+test(function() {assert_throws("SyntaxError", function(){new WebSocket("?test")})}); >+test(function() {assert_throws("SyntaxError", function(){new WebSocket("#test")})}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/004-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/004-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..8fb22d3eb193804b331b4650cb0bdecfc6f246d0 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/004-expected.txt >@@ -0,0 +1,324 @@ >+CONSOLE MESSAGE: line 13: Wrong protocol for WebSocket '' >+CONSOLE MESSAGE: line 21: Wrong protocol for WebSocket 'a\u0001b' >+CONSOLE MESSAGE: line 21: Wrong protocol for WebSocket 'a\u0002b' >+CONSOLE MESSAGE: line 21: Wrong protocol for WebSocket 'a\u0003b' >+CONSOLE MESSAGE: line 21: Wrong protocol for WebSocket 'a\u0004b' >+CONSOLE MESSAGE: line 21: Wrong protocol for WebSocket 'a\u0005b' >+CONSOLE MESSAGE: line 21: Wrong protocol for WebSocket 'a\u0006b' >+CONSOLE MESSAGE: line 21: Wrong protocol for WebSocket 'a\u0007b' >+CONSOLE MESSAGE: line 21: Wrong protocol for WebSocket 'a\u0008b' >+CONSOLE MESSAGE: line 21: Wrong protocol for WebSocket 'a\u0009b' >+CONSOLE MESSAGE: line 21: Wrong protocol for WebSocket 'a\u000Ab' >+CONSOLE MESSAGE: line 21: Wrong protocol for WebSocket 'a\u000Bb' >+CONSOLE MESSAGE: line 21: Wrong protocol for WebSocket 'a\u000Cb' >+CONSOLE MESSAGE: line 21: Wrong protocol for WebSocket 'a\u000Db' >+CONSOLE MESSAGE: line 21: Wrong protocol for WebSocket 'a\u000Eb' >+CONSOLE MESSAGE: line 21: Wrong protocol for WebSocket 'a\u000Fb' >+CONSOLE MESSAGE: line 21: Wrong protocol for WebSocket 'a\u0010b' >+CONSOLE MESSAGE: line 21: Wrong protocol for WebSocket 'a\u0011b' >+CONSOLE MESSAGE: line 21: Wrong protocol for WebSocket 'a\u0012b' >+CONSOLE MESSAGE: line 21: Wrong protocol for WebSocket 'a\u0013b' >+CONSOLE MESSAGE: line 21: Wrong protocol for WebSocket 'a\u0014b' >+CONSOLE MESSAGE: line 21: Wrong protocol for WebSocket 'a\u0015b' >+CONSOLE MESSAGE: line 21: Wrong protocol for WebSocket 'a\u0016b' >+CONSOLE MESSAGE: line 21: Wrong protocol for WebSocket 'a\u0017b' >+CONSOLE MESSAGE: line 21: Wrong protocol for WebSocket 'a\u0018b' >+CONSOLE MESSAGE: line 21: Wrong protocol for WebSocket 'a\u0019b' >+CONSOLE MESSAGE: line 21: Wrong protocol for WebSocket 'a\u001Ab' >+CONSOLE MESSAGE: line 21: Wrong protocol for WebSocket 'a\u001Bb' >+CONSOLE MESSAGE: line 21: Wrong protocol for WebSocket 'a\u001Cb' >+CONSOLE MESSAGE: line 21: Wrong protocol for WebSocket 'a\u001Db' >+CONSOLE MESSAGE: line 21: Wrong protocol for WebSocket 'a\u001Eb' >+CONSOLE MESSAGE: line 21: Wrong protocol for WebSocket 'a\u001Fb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u007Fb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u0080b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u0081b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u0082b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u0083b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u0084b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u0085b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u0086b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u0087b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u0088b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u0089b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u008Ab' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u008Bb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u008Cb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u008Db' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u008Eb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u008Fb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u0090b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u0091b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u0092b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u0093b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u0094b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u0095b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u0096b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u0097b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u0098b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u0099b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u009Ab' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u009Bb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u009Cb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u009Db' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u009Eb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u009Fb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00A0b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00A1b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00A2b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00A3b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00A4b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00A5b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00A6b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00A7b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00A8b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00A9b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00AAb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00ABb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00ACb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00ADb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00AEb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00AFb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00B0b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00B1b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00B2b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00B3b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00B4b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00B5b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00B6b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00B7b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00B8b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00B9b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00BAb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00BBb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00BCb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00BDb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00BEb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00BFb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00C0b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00C1b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00C2b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00C3b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00C4b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00C5b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00C6b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00C7b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00C8b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00C9b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00CAb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00CBb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00CCb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00CDb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00CEb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00CFb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00D0b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00D1b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00D2b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00D3b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00D4b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00D5b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00D6b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00D7b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00D8b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00D9b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00DAb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00DBb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00DCb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00DDb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00DEb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00DFb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00E0b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00E1b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00E2b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00E3b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00E4b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00E5b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00E6b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00E7b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00E8b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00E9b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00EAb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00EBb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00ECb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00EDb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00EEb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00EFb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00F0b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00F1b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00F2b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00F3b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00F4b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00F5b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00F6b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00F7b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00F8b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00F9b' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00FAb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00FBb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00FCb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00FDb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00FEb' >+CONSOLE MESSAGE: line 30: Wrong protocol for WebSocket 'a\u00FFb' >+ >+PASS WebSockets: new WebSocket(url, invalid protocol) >+PASS WebSockets: new WebSocket(url, invalid protocol) 1 >+PASS WebSockets: new WebSocket(url, invalid protocol) 2 >+PASS WebSockets: new WebSocket(url, invalid protocol) 3 >+PASS WebSockets: new WebSocket(url, invalid protocol) 4 >+PASS WebSockets: new WebSocket(url, invalid protocol) 5 >+PASS WebSockets: new WebSocket(url, invalid protocol) 6 >+PASS WebSockets: new WebSocket(url, invalid protocol) 7 >+PASS WebSockets: new WebSocket(url, invalid protocol) 8 >+PASS WebSockets: new WebSocket(url, invalid protocol) 9 >+PASS WebSockets: new WebSocket(url, invalid protocol) 10 >+PASS WebSockets: new WebSocket(url, invalid protocol) 11 >+PASS WebSockets: new WebSocket(url, invalid protocol) 12 >+PASS WebSockets: new WebSocket(url, invalid protocol) 13 >+PASS WebSockets: new WebSocket(url, invalid protocol) 14 >+PASS WebSockets: new WebSocket(url, invalid protocol) 15 >+PASS WebSockets: new WebSocket(url, invalid protocol) 16 >+PASS WebSockets: new WebSocket(url, invalid protocol) 17 >+PASS WebSockets: new WebSocket(url, invalid protocol) 18 >+PASS WebSockets: new WebSocket(url, invalid protocol) 19 >+PASS WebSockets: new WebSocket(url, invalid protocol) 20 >+PASS WebSockets: new WebSocket(url, invalid protocol) 21 >+PASS WebSockets: new WebSocket(url, invalid protocol) 22 >+PASS WebSockets: new WebSocket(url, invalid protocol) 23 >+PASS WebSockets: new WebSocket(url, invalid protocol) 24 >+PASS WebSockets: new WebSocket(url, invalid protocol) 25 >+PASS WebSockets: new WebSocket(url, invalid protocol) 26 >+PASS WebSockets: new WebSocket(url, invalid protocol) 27 >+PASS WebSockets: new WebSocket(url, invalid protocol) 28 >+PASS WebSockets: new WebSocket(url, invalid protocol) 29 >+PASS WebSockets: new WebSocket(url, invalid protocol) 30 >+PASS WebSockets: new WebSocket(url, invalid protocol) 31 >+PASS WebSockets: new WebSocket(url, invalid protocol) 32 >+PASS WebSockets: new WebSocket(url, invalid protocol) 33 >+PASS WebSockets: new WebSocket(url, invalid protocol) 34 >+PASS WebSockets: new WebSocket(url, invalid protocol) 35 >+PASS WebSockets: new WebSocket(url, invalid protocol) 36 >+PASS WebSockets: new WebSocket(url, invalid protocol) 37 >+PASS WebSockets: new WebSocket(url, invalid protocol) 38 >+PASS WebSockets: new WebSocket(url, invalid protocol) 39 >+PASS WebSockets: new WebSocket(url, invalid protocol) 40 >+PASS WebSockets: new WebSocket(url, invalid protocol) 41 >+PASS WebSockets: new WebSocket(url, invalid protocol) 42 >+PASS WebSockets: new WebSocket(url, invalid protocol) 43 >+PASS WebSockets: new WebSocket(url, invalid protocol) 44 >+PASS WebSockets: new WebSocket(url, invalid protocol) 45 >+PASS WebSockets: new WebSocket(url, invalid protocol) 46 >+PASS WebSockets: new WebSocket(url, invalid protocol) 47 >+PASS WebSockets: new WebSocket(url, invalid protocol) 48 >+PASS WebSockets: new WebSocket(url, invalid protocol) 49 >+PASS WebSockets: new WebSocket(url, invalid protocol) 50 >+PASS WebSockets: new WebSocket(url, invalid protocol) 51 >+PASS WebSockets: new WebSocket(url, invalid protocol) 52 >+PASS WebSockets: new WebSocket(url, invalid protocol) 53 >+PASS WebSockets: new WebSocket(url, invalid protocol) 54 >+PASS WebSockets: new WebSocket(url, invalid protocol) 55 >+PASS WebSockets: new WebSocket(url, invalid protocol) 56 >+PASS WebSockets: new WebSocket(url, invalid protocol) 57 >+PASS WebSockets: new WebSocket(url, invalid protocol) 58 >+PASS WebSockets: new WebSocket(url, invalid protocol) 59 >+PASS WebSockets: new WebSocket(url, invalid protocol) 60 >+PASS WebSockets: new WebSocket(url, invalid protocol) 61 >+PASS WebSockets: new WebSocket(url, invalid protocol) 62 >+PASS WebSockets: new WebSocket(url, invalid protocol) 63 >+PASS WebSockets: new WebSocket(url, invalid protocol) 64 >+PASS WebSockets: new WebSocket(url, invalid protocol) 65 >+PASS WebSockets: new WebSocket(url, invalid protocol) 66 >+PASS WebSockets: new WebSocket(url, invalid protocol) 67 >+PASS WebSockets: new WebSocket(url, invalid protocol) 68 >+PASS WebSockets: new WebSocket(url, invalid protocol) 69 >+PASS WebSockets: new WebSocket(url, invalid protocol) 70 >+PASS WebSockets: new WebSocket(url, invalid protocol) 71 >+PASS WebSockets: new WebSocket(url, invalid protocol) 72 >+PASS WebSockets: new WebSocket(url, invalid protocol) 73 >+PASS WebSockets: new WebSocket(url, invalid protocol) 74 >+PASS WebSockets: new WebSocket(url, invalid protocol) 75 >+PASS WebSockets: new WebSocket(url, invalid protocol) 76 >+PASS WebSockets: new WebSocket(url, invalid protocol) 77 >+PASS WebSockets: new WebSocket(url, invalid protocol) 78 >+PASS WebSockets: new WebSocket(url, invalid protocol) 79 >+PASS WebSockets: new WebSocket(url, invalid protocol) 80 >+PASS WebSockets: new WebSocket(url, invalid protocol) 81 >+PASS WebSockets: new WebSocket(url, invalid protocol) 82 >+PASS WebSockets: new WebSocket(url, invalid protocol) 83 >+PASS WebSockets: new WebSocket(url, invalid protocol) 84 >+PASS WebSockets: new WebSocket(url, invalid protocol) 85 >+PASS WebSockets: new WebSocket(url, invalid protocol) 86 >+PASS WebSockets: new WebSocket(url, invalid protocol) 87 >+PASS WebSockets: new WebSocket(url, invalid protocol) 88 >+PASS WebSockets: new WebSocket(url, invalid protocol) 89 >+PASS WebSockets: new WebSocket(url, invalid protocol) 90 >+PASS WebSockets: new WebSocket(url, invalid protocol) 91 >+PASS WebSockets: new WebSocket(url, invalid protocol) 92 >+PASS WebSockets: new WebSocket(url, invalid protocol) 93 >+PASS WebSockets: new WebSocket(url, invalid protocol) 94 >+PASS WebSockets: new WebSocket(url, invalid protocol) 95 >+PASS WebSockets: new WebSocket(url, invalid protocol) 96 >+PASS WebSockets: new WebSocket(url, invalid protocol) 97 >+PASS WebSockets: new WebSocket(url, invalid protocol) 98 >+PASS WebSockets: new WebSocket(url, invalid protocol) 99 >+PASS WebSockets: new WebSocket(url, invalid protocol) 100 >+PASS WebSockets: new WebSocket(url, invalid protocol) 101 >+PASS WebSockets: new WebSocket(url, invalid protocol) 102 >+PASS WebSockets: new WebSocket(url, invalid protocol) 103 >+PASS WebSockets: new WebSocket(url, invalid protocol) 104 >+PASS WebSockets: new WebSocket(url, invalid protocol) 105 >+PASS WebSockets: new WebSocket(url, invalid protocol) 106 >+PASS WebSockets: new WebSocket(url, invalid protocol) 107 >+PASS WebSockets: new WebSocket(url, invalid protocol) 108 >+PASS WebSockets: new WebSocket(url, invalid protocol) 109 >+PASS WebSockets: new WebSocket(url, invalid protocol) 110 >+PASS WebSockets: new WebSocket(url, invalid protocol) 111 >+PASS WebSockets: new WebSocket(url, invalid protocol) 112 >+PASS WebSockets: new WebSocket(url, invalid protocol) 113 >+PASS WebSockets: new WebSocket(url, invalid protocol) 114 >+PASS WebSockets: new WebSocket(url, invalid protocol) 115 >+PASS WebSockets: new WebSocket(url, invalid protocol) 116 >+PASS WebSockets: new WebSocket(url, invalid protocol) 117 >+PASS WebSockets: new WebSocket(url, invalid protocol) 118 >+PASS WebSockets: new WebSocket(url, invalid protocol) 119 >+PASS WebSockets: new WebSocket(url, invalid protocol) 120 >+PASS WebSockets: new WebSocket(url, invalid protocol) 121 >+PASS WebSockets: new WebSocket(url, invalid protocol) 122 >+PASS WebSockets: new WebSocket(url, invalid protocol) 123 >+PASS WebSockets: new WebSocket(url, invalid protocol) 124 >+PASS WebSockets: new WebSocket(url, invalid protocol) 125 >+PASS WebSockets: new WebSocket(url, invalid protocol) 126 >+PASS WebSockets: new WebSocket(url, invalid protocol) 127 >+PASS WebSockets: new WebSocket(url, invalid protocol) 128 >+PASS WebSockets: new WebSocket(url, invalid protocol) 129 >+PASS WebSockets: new WebSocket(url, invalid protocol) 130 >+PASS WebSockets: new WebSocket(url, invalid protocol) 131 >+PASS WebSockets: new WebSocket(url, invalid protocol) 132 >+PASS WebSockets: new WebSocket(url, invalid protocol) 133 >+PASS WebSockets: new WebSocket(url, invalid protocol) 134 >+PASS WebSockets: new WebSocket(url, invalid protocol) 135 >+PASS WebSockets: new WebSocket(url, invalid protocol) 136 >+PASS WebSockets: new WebSocket(url, invalid protocol) 137 >+PASS WebSockets: new WebSocket(url, invalid protocol) 138 >+PASS WebSockets: new WebSocket(url, invalid protocol) 139 >+PASS WebSockets: new WebSocket(url, invalid protocol) 140 >+PASS WebSockets: new WebSocket(url, invalid protocol) 141 >+PASS WebSockets: new WebSocket(url, invalid protocol) 142 >+PASS WebSockets: new WebSocket(url, invalid protocol) 143 >+PASS WebSockets: new WebSocket(url, invalid protocol) 144 >+PASS WebSockets: new WebSocket(url, invalid protocol) 145 >+PASS WebSockets: new WebSocket(url, invalid protocol) 146 >+PASS WebSockets: new WebSocket(url, invalid protocol) 147 >+PASS WebSockets: new WebSocket(url, invalid protocol) 148 >+PASS WebSockets: new WebSocket(url, invalid protocol) 149 >+PASS WebSockets: new WebSocket(url, invalid protocol) 150 >+PASS WebSockets: new WebSocket(url, invalid protocol) 151 >+PASS WebSockets: new WebSocket(url, invalid protocol) 152 >+PASS WebSockets: new WebSocket(url, invalid protocol) 153 >+PASS WebSockets: new WebSocket(url, invalid protocol) 154 >+PASS WebSockets: new WebSocket(url, invalid protocol) 155 >+PASS WebSockets: new WebSocket(url, invalid protocol) 156 >+PASS WebSockets: new WebSocket(url, invalid protocol) 157 >+PASS WebSockets: new WebSocket(url, invalid protocol) 158 >+PASS WebSockets: new WebSocket(url, invalid protocol) 159 >+PASS WebSockets: new WebSocket(url, invalid protocol) 160 >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/004.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/004.html >new file mode 100644 >index 0000000000000000000000000000000000000000..f358021541b2fbd476d34b395153862797c9961e >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/004.html >@@ -0,0 +1,35 @@ >+<!doctype html> >+<title>WebSockets: new WebSocket(url, invalid protocol)</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+// empty string >+test(function() { >+ assert_throws("SyntaxError", function() { >+ new WebSocket(SCHEME_DOMAIN_PORT + '/empty-message', "") >+ }) >+}); >+ >+// chars below U+0020 except U+0000; U+0000 is tested in a separate test >+for (var i = 1; i < 0x20; ++i) { >+ test(function() { >+ assert_throws("SyntaxError", function() { >+ new WebSocket(SCHEME_DOMAIN_PORT + '/empty-message', >+ "a"+String.fromCharCode(i)+"b") >+ }, 'char code '+i); >+ }) >+} >+// some chars above U+007E >+for (var i = 0x7F; i < 0x100; ++i) { >+ test(function() { >+ assert_throws("SyntaxError", function() { >+ new WebSocket(SCHEME_DOMAIN_PORT + '/empty-message', >+ "a"+String.fromCharCode(i)+"b") >+ }, 'char code '+i); >+ }) >+} >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/005-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/005-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..bdef32727c6bf7b7df7c91f2b82f00d0f6aca3d9 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/005-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: return value >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/005.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/005.html >new file mode 100644 >index 0000000000000000000000000000000000000000..63e61ddb090f208fbce78c764e8884cabb684879 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/005.html >@@ -0,0 +1,13 @@ >+<!doctype html> >+<title>WebSockets: return value</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+test(function() { >+ assert_true(new WebSocket(SCHEME_DOMAIN_PORT + '/empty-message') instanceof WebSocket); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/006-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/006-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..3d83fa3fb362ca9385e1a535af8579f34d3d7241 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/006-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: converting first arguments >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/006.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/006.html >new file mode 100644 >index 0000000000000000000000000000000000000000..e704229efcd09f37f0db69625e0111bc81366671 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/006.html >@@ -0,0 +1,28 @@ >+<!doctype html> >+<title>WebSockets: converting first arguments</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t) { >+ var a = document.createElement('a'); >+ a.href = SCHEME_DOMAIN_PORT+'/echo'; >+ var ws = new WebSocket(a); // should stringify arguments; <a> stringifies to its .href >+ assert_equals(ws.url, a.href); >+ ws.onopen = t.step_func(function(e) { >+ ws.send('test'); >+ }); >+ ws.onmessage = t.step_func(function(e) { >+ assert_equals(e.data, 'test'); >+ ws.onclose = t.step_func(function(e) { >+ ws.onclose = t.unreached_func(); >+ t.step_timeout(() => t.done(), 50); >+ }); >+ ws.close(); >+ }); >+ ws.onerror = ws.onclose = t.unreached_func(); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/007-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/007-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..419de151a197718c3bf1ba1029b5e6443d80849c >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/007-expected.txt >@@ -0,0 +1,4 @@ >+CONSOLE MESSAGE: line 12: Wrong protocol for WebSocket 'a\u0000b' >+ >+PASS WebSockets: new WebSocket(url, null char) >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/007.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/007.html >new file mode 100644 >index 0000000000000000000000000000000000000000..6f141a541865545f89c3ec9aa3604fa8bb24f257 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/007.html >@@ -0,0 +1,16 @@ >+<!doctype html> >+<title>WebSockets: new WebSocket(url, null char)</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+test(function() { >+ assert_throws("SyntaxError", function() { >+ new WebSocket(SCHEME_DOMAIN_PORT + '/empty-message', >+ 'a' + String.fromCharCode(0) + 'b') >+ }) >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/008-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/008-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..c666b1e6bf765e22c02aaee4c985061e57a17040 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/008-expected.txt >@@ -0,0 +1,6 @@ >+ >+PASS WebSockets: new WebSocket(url with not blocked port) >+PASS WebSockets: new WebSocket(url with not blocked port) 1 >+PASS WebSockets: new WebSocket(url with not blocked port) 2 >+PASS WebSockets: new WebSocket(url with not blocked port) 3 >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/008.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/008.html >new file mode 100644 >index 0000000000000000000000000000000000000000..f425ff058f401e2ae03624b082739c8f1e0ba308 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/008.html >@@ -0,0 +1,15 @@ >+<!doctype html> >+<title>WebSockets: new WebSocket(url with not blocked port)</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+//Pass condition is to not throw >+test(function(){new WebSocket('ws://example.invalid:80/')}); >+test(function(){new WebSocket('ws://example.invalid:443/')}); >+test(function(){new WebSocket('wss://example.invalid:80/')}); >+test(function(){new WebSocket('wss://example.invalid:443/')}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/009-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/009-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..665264e1b2b4f33636b824c899ad85c17cf8d990 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/009-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: protocol >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/009.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/009.html >new file mode 100644 >index 0000000000000000000000000000000000000000..7352afaebdd6dd1086bee3864a01b8e6304e3c87 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/009.html >@@ -0,0 +1,23 @@ >+<!doctype html> >+<title>WebSockets: protocol</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/protocol', 'foobar'); >+ >+ ws.onmessage = t.step_func(function(e) { >+ assert_equals(ws.protocol, 'foobar'); >+ ws.onclose = t.step_func(function(e) { >+ ws.onclose = t.unreached_func(); >+ t.step_timeout(() => t.done(), 50); >+ }) >+ ws.close(); >+ }) >+ ws.onerror = t.unreached_func(); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/010-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/010-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..f3690adfae8a9e5c6ed41d0e27e533404b3f7e6a >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/010-expected.txt >@@ -0,0 +1,4 @@ >+CONSOLE MESSAGE: WebSocket connection to 'ws://localhost:49001/handshake_protocol' failed: Unexpected response code: 400 >+ >+PASS WebSockets: protocol in response but no requested protocol >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/010.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/010.html >new file mode 100644 >index 0000000000000000000000000000000000000000..aee4d78af99179070d80fef4f95745b4d7ec580f >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/010.html >@@ -0,0 +1,21 @@ >+<!doctype html> >+<title>WebSockets: protocol in response but no requested protocol</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/handshake_protocol'); >+ ws.onopen = ws.onmessage = ws.onclose = t.step_func(e => assert_unreached(e.type)); >+ ws.onerror = t.step_func(function(e) { >+ ws.onclose = t.step_func(function(e) { >+ assert_false(e.wasClean, 'e.wasClean should be false'); >+ assert_equals(e.code, 1006, 'e.code should be 1006'); >+ t.done(); >+ }); >+ }) >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/011-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/011-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..7b86aeaaf7528fcaae23a1bfbd8ef0ff75d04de3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/011-expected.txt >@@ -0,0 +1,4 @@ >+CONSOLE MESSAGE: WebSocket connection to 'ws://localhost:49001/handshake_protocol' failed: Error during WebSocket handshake: Sec-WebSocket-Protocol mismatch >+ >+PASS WebSockets: protocol mismatch >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/011.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/011.html >new file mode 100644 >index 0000000000000000000000000000000000000000..f7a2b99b8307088aefc3204444b065651d62032f >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/011.html >@@ -0,0 +1,27 @@ >+<!doctype html> >+<title>WebSockets: protocol mismatch</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t) { >+ // Sub-protocol matching is case-sensitive. >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/handshake_protocol', 'FOOBAR'); >+ var gotOpen = false; >+ var gotError = false; >+ ws.onopen = t.step_func(function(e) { >+ gotOpen = true; >+ }); >+ ws.onerror = t.step_func(function(e) { >+ gotError = true; >+ }); >+ ws.onclose = t.step_func(function(e) { >+ assert_false(gotOpen, 'got open'); >+ assert_true(gotError, 'got error'); >+ t.done(); >+ }); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/012-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/012-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..ec9b5d4f8d908ac85a1bc123c95e2e5e026115e1 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/012-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: no protocol in response >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/012.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/012.html >new file mode 100644 >index 0000000000000000000000000000000000000000..0f68d3ef34632a0acb9092beebc9575133d9b564 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/012.html >@@ -0,0 +1,19 @@ >+<!doctype html> >+<title>WebSockets: no protocol in response</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/handshake_no_protocol', 'foobar'); >+ ws.onclose = t.step_func(function(e) { >+ ws.onclose = t.unreached_func(); >+ t.step_timeout(() => t.done(), 50); >+ }) >+ ws.onmessage = t.unreached_func(); >+}); >+</script> >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/013-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/013-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..3f1bc257f3cc01a8e0efb99d37badc2a49780e9a >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/013-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: multiple WebSocket objects >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/013.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/013.html >new file mode 100644 >index 0000000000000000000000000000000000000000..a581bc15131302522e22197b053696f86b688f85 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/013.html >@@ -0,0 +1,41 @@ >+<!doctype html> >+<title>WebSockets: multiple WebSocket objects</title> >+<meta name=timeout content=long> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t) { >+ // test that the events are fired as they should when opening 25 websockets and >+ // sending a message on each and then closing when getting the message back >+ var ws = []; >+ var events = 0; >+ for (var i = 0; i < 25; ++i) { >+ ws[i] = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); >+ ws[i].id = i; >+ ws[i].onopen = t.step_func(function(e) { >+ events++; >+ this.send(this.id); >+ this.onopen = t.step_func(function() {assert_unreached()}); >+ }, ws[i]); >+ ws[i].onmessage = t.step_func(function(e) { >+ events++; >+ assert_equals(e.data, ''+this.id); >+ this.close(); >+ this.onmessage = t.step_func(function() {assert_unreached()}); >+ }, ws[i]); >+ ws[i].onclose = t.step_func(function(e) { >+ events++; >+ if (events == 75) { >+ t.done(); >+ } >+ this.onclose = t.step_func(function() {assert_unreached()}); >+ }, ws[i]); >+ ws[i].onerror = t.step_func(function() {assert_unreached()}); >+ } >+}); >+</script> >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/014-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/014-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..716795d4bf366157192de200fba4b2e5e7cc04e3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/014-expected.txt >@@ -0,0 +1,3 @@ >+ >+FAIL WebSockets: serialize establish a connection assert_greater_than: expected a number greater than 1000 but got 5 >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/014.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/014.html >new file mode 100644 >index 0000000000000000000000000000000000000000..e668d3a1909e062fe8711cef45a0ef11693cf624 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/014.html >@@ -0,0 +1,39 @@ >+<!doctype html> >+<title>WebSockets: serialize establish a connection</title> >+<meta name="timeout" content="long"> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+ >+async_test(function(t) { >+ var ws = []; >+ var events = 0; >+ var prevDate; >+ var date; >+ for (var i = 0; i < 2; ++i) { >+ ws[i] = new WebSocket(SCHEME_DOMAIN_PORT+'/handshake_sleep_2'); >+ ws[i].id = i; >+ ws[i].onopen = t.step_func(function(e) { >+ events++; >+ date = new Date(); >+ if (prevDate) { >+ assert_greater_than(date - prevDate, 1000); >+ } >+ prevDate = date; >+ this.onopen = t.step_func(function() {assert_unreached()}); >+ }.bind(ws[i])) >+ ws[i].onclose = t.step_func(function() { >+ events++; >+ if (events == 4) { >+ t.done(); >+ } >+ this.onclose = t.step_func(function() {assert_unreached()}); >+ }.bind(ws[i])); >+ ws[i].onerror = ws[i].onmessage = t.step_func(function() {assert_unreached()}); >+ } >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/016-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/016-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..84193c6388a2628dde5d72e130d984d6f4f824cd >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/016-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: non-ascii URL in query, document encoding windows-1252 >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/016.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/016.html >new file mode 100644 >index 0000000000000000000000000000000000000000..a1bf281679075a04a77e4b342e616193ccb261b2 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/016.html >@@ -0,0 +1,19 @@ >+<!doctype html> >+<meta charset=windows-1252> >+<title>WebSockets: non-ascii URL in query, document encoding windows-1252</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo-query_v13?åäö'); >+ ws.onclose = t.step_func(function() {assert_unreached()}); >+ ws.onmessage = t.step_func(function(e) { >+ assert_equals(e.data, '%C3%A5%C3%A4%C3%B6'); >+ t.done(); >+ }); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/017-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/017-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..b31ff58dadf81bb50bddcc206f6c5daeffdcea0a >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/017-expected.txt >@@ -0,0 +1,6 @@ >+ >+PASS ws: >+PASS ws:/ >+PASS wss: >+PASS wss:/ >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/017.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/017.html >new file mode 100644 >index 0000000000000000000000000000000000000000..8a7960d8865704adeed9239078cc29a58289257d >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/017.html >@@ -0,0 +1,20 @@ >+<!doctype html> >+<title>WebSockets: too few slashes after ws: and wss:</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+var tests = [ >+ ['ws:', PORT], >+ ['ws:/', PORT], >+ ['wss:', PORT_SSL], >+ ['wss:/', PORT_SSL] >+]; >+//Pass condition is to not throw >+for (var i = 0; i < tests.length; ++i) { >+ test(function(){new WebSocket(tests[i][0] + location.hostname + ':' + tests[i][1] + '/echo')}, tests[i][0]); >+} >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/018-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/018-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..f309fee14ad0ae51dbd7020a8e72bc0a3ae04c20 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/018-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: NULL char in url >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/018.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/018.html >new file mode 100644 >index 0000000000000000000000000000000000000000..d96d4be6b655a2441d48753e1556cfd815eb74f3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/018.html >@@ -0,0 +1,19 @@ >+<!doctype html> >+<title>WebSockets: NULL char in url</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo-query?x\u0000y\u0000'); >+ ws.onmessage = t.step_func(function(e) { >+ assert_equals(e.data, 'x%00y'); >+ ws.close(); >+ t.done(); >+ }) >+ ws.onclose = ws.onerror = t.step_func(function(e) {assert_unreached(e.type)}); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/019-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/019-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..fcf428fc29b305b2baf407bb200a3a7008e9bc7d >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/019-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: uppercase 'WS:' >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/019.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/019.html >new file mode 100644 >index 0000000000000000000000000000000000000000..b56745aa264e2adbc38177f1cdc1abb9a7086f23 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/019.html >@@ -0,0 +1,20 @@ >+<!doctype html> >+<title>WebSockets: uppercase 'WS:'</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t) { >+ var scheme = SCHEME_DOMAIN_PORT.split('://')[0]; >+ var domain = SCHEME_DOMAIN_PORT.split('://')[1]; >+ var ws = new WebSocket(scheme.toUpperCase()+'://'+domain+'/echo'); >+ ws.onopen = t.step_func(function(e) { >+ ws.close(); >+ t.done(); >+ }) >+ ws.onclose = ws.onerror = ws.onmessage = t.step_func(function() {assert_unreached()}); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/020-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/020-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..0d0dea6b3339acc5c40479fdf007da9aa4fa163c >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/020-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: uppercase host >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/020.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/020.html >new file mode 100644 >index 0000000000000000000000000000000000000000..55ca9934b4edf2a05ed91ab369e2fba2b27b8d51 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/020.html >@@ -0,0 +1,20 @@ >+<!doctype html> >+<title>WebSockets: uppercase host</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t) { >+ var scheme = SCHEME_DOMAIN_PORT.split('://')[0]; >+ var domain = SCHEME_DOMAIN_PORT.split('://')[1]; >+ var ws = new WebSocket(scheme+'://'+domain.toUpperCase()+'/echo'); >+ ws.onopen = t.step_func(function(e) { >+ ws.close(); >+ t.done(); >+ }); >+ ws.onclose = ws.onerror = ws.onmessage = t.step_func(function() {assert_unreached()}); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/021-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/021-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..4094fc6b5cf44fece5861398b54eb47412c86968 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/021-expected.txt >@@ -0,0 +1,4 @@ >+CONSOLE MESSAGE: line 10: Wrong protocol for WebSocket 'foobar, foobar' >+ >+PASS WebSockets: Same sub protocol twice >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/021.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/021.html >new file mode 100644 >index 0000000000000000000000000000000000000000..80156540f7a0722432a64ba3fe32b3368494a76b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/021.html >@@ -0,0 +1,11 @@ >+<!doctype html> >+<title>WebSockets: Same sub protocol twice</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+test(function() {assert_throws("SyntaxError", function(){new WebSocket("ws://certo2.oslo.osa/protocol_array",["foobar, foobar"])})}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/022-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/022-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..a8c26ec6f0d8ce6d3494fcc997bc37a9f2f9aebd >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/022-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: protocol array >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/022.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/022.html >new file mode 100644 >index 0000000000000000000000000000000000000000..690748f5a80294909a9a04bacff0d14ea8602ee0 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/022.html >@@ -0,0 +1,22 @@ >+<!doctype html> >+<title>WebSockets: protocol array</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/protocol_array',['foobar','foobar2']); >+ ws.onmessage = t.step_func(function(e) { >+ assert_equals(ws.protocol, 'foobar'); >+ ws.onclose = t.step_func(function(e) { >+ ws.onclose = t.unreached_func(); >+ t.step_timeout(() => t.done(), 50); >+ }); >+ ws.close(); >+ }); >+ ws.onerror = t.unreached_func(); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/w3c-import.log >new file mode 100644 >index 0000000000000000000000000000000000000000..4bb85cf0794f69d762b3b07f328b09c89b57a3b9 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/w3c-import.log >@@ -0,0 +1,36 @@ >+The tests in this directory were imported from the W3C repository. >+Do NOT modify these tests directly in WebKit. >+Instead, create a pull request on the WPT github: >+ https://github.com/web-platform-tests/wpt >+ >+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport >+ >+Do NOT modify or remove this file. >+ >+------------------------------------------------------------------------ >+Properties requiring vendor prefixes: >+None >+Property values requiring vendor prefixes: >+None >+------------------------------------------------------------------------ >+List of files: >+/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/001.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/002.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/004.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/005.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/006.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/007.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/008.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/009.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/010.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/011.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/012.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/013.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/014.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/016.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/017.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/018.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/019.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/020.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/021.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor/022.html >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/001-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/001-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..c3d2441850ebdfe7af50947fb2cebd632da73ddd >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/001-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: Cookie in request >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/001.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/001.html >new file mode 100644 >index 0000000000000000000000000000000000000000..4f3514a20fd2bfe99ab730867d32dcef9e3d114d >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/001.html >@@ -0,0 +1,27 @@ >+<!doctype html> >+<title>WebSockets: Cookie in request</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+var cookie_id = ((new Date())-0) + '.' + Math.random(); >+async_test(function(t) { >+ if (window.WebSocket) { >+ document.cookie = 'ws_test_'+cookie_id+'=test; Path=/'; >+ } >+ t.add_cleanup(function() { >+ // remove cookie >+ document.cookie = 'ws_test_'+cookie_id+'=; Path=/; Expires=Sun, 06 Nov 1994 08:49:37 GMT'; >+ }); >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo-cookie'); >+ ws.onmessage = t.step_func(function(e) { >+ assert_regexp_match(e.data, new RegExp('ws_test_'+cookie_id+'=test')); >+ ws.close(); >+ t.done(); >+ }); >+ ws.onerror = ws.onclose = t.step_func(function(e) {assert_unreached(e.type)}); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/002-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/002-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..c43261dfd49b0341904c106f7d3592b991caa36d >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/002-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: Set-Cookie in response >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/002.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/002.html >new file mode 100644 >index 0000000000000000000000000000000000000000..7a1b8d8aeaffd42c39748612552120c28521383b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/002.html >@@ -0,0 +1,25 @@ >+<!doctype html> >+<title>WebSockets: Set-Cookie in response</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+var cookie_id = ((new Date())-0) + '.' + Math.random(); >+async_test(function(t) { >+ t.add_cleanup(function() { >+ // remove cookie >+ document.cookie = 'ws_test_'+cookie_id+'=; Path=/; Expires=Sun, 06 Nov 1994 08:49:37 GMT'; >+ }); >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/set-cookie?'+cookie_id); >+ ws.onopen = t.step_func(function(e) { >+ assert_regexp_match(document.cookie, new RegExp('ws_test_'+cookie_id+'=test')); >+ ws.close(); >+ ws.onclose = null; >+ t.done(); >+ }); >+ ws.onerror = ws.onclose = t.step_func(function(e) {assert_unreached(e.type)}); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/003-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/003-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..d253b8ca5741b76245884fa78d7f72fb8a593bf7 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/003-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: sending HttpOnly cookies in ws request >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/003.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/003.html >new file mode 100644 >index 0000000000000000000000000000000000000000..219f05f193af60dd4bcb619e2d0dd97c81037d38 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/003.html >@@ -0,0 +1,33 @@ >+<!doctype html> >+<title>WebSockets: sending HttpOnly cookies in ws request</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+setup({explict_done:true}) >+var cookie_id = ((new Date())-0) + '.' + Math.random(); >+ >+var t = async_test(function(t) { >+ var iframe = document.createElement('iframe'); >+ t.add_cleanup(function() { >+ // remove cookie >+ iframe.src = 'support/set-cookie.py?'+encodeURIComponent('ws_test_'+cookie_id+'=; Path=/; HttpOnly; Expires=Sun, 06 Nov 1994 08:49:37 GMT'); >+ iframe.onload = done; >+ }); >+ iframe.src = 'support/set-cookie.py?'+encodeURIComponent('ws_test_'+cookie_id+'=test; Path=/; HttpOnly'); >+ iframe.onload = t.step_func(function() { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo-cookie'); >+ ws.onmessage = t.step_func(function(e) { >+ ws.close(); >+ ws.onclose = null; >+ assert_regexp_match(e.data, new RegExp('ws_test_'+cookie_id+'=test')); >+ t.done(); >+ }); >+ ws.onerror = ws.onclose = t.step_func(function(e) {assert_unreached(e.type)}); >+ }); >+ document.body.appendChild(iframe); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/004-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/004-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..a70150e436cbc16af44046a9fdbb2586e2d71eee >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/004-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: setting HttpOnly cookies in ws response, checking document.cookie >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/004.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/004.html >new file mode 100644 >index 0000000000000000000000000000000000000000..b4d05fbec13e5c139f870be5b431571af1f121d4 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/004.html >@@ -0,0 +1,31 @@ >+<!doctype html> >+<title>WebSockets: setting HttpOnly cookies in ws response, checking document.cookie</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+setup({explicit_done:true}) >+var cookie_id = ((new Date())-0) + '.' + Math.random(); >+ >+var t = async_test(function(t) { >+ var iframe = document.createElement('iframe'); >+ t.add_cleanup(function() { >+ // remove cookie >+ iframe.src = 'support/set-cookie.py?'+encodeURIComponent('ws_test_'+cookie_id+'=; Path=/; HttpOnly; Expires=Sun, 06 Nov 1994 08:49:37 GMT'); >+ iframe.onload = done; >+ }); >+ var url = SCHEME_DOMAIN_PORT+'/set-cookie_http?'+cookie_id; >+ var ws = new WebSocket(url); >+ ws.onopen = t.step_func(function(e) { >+ ws.close(); >+ ws.onclose = null; >+ assert_false(new RegExp('ws_test_'+cookie_id+'=test').test(document.cookie)); >+ t.done(); >+ }); >+ ws.onerror = ws.onclose = t.step_func(function(e) {assert_unreached(e.type)}); >+ document.body.appendChild(iframe); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/005-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/005-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..598d7a68c0b83a1cee12aa2df354ede05be6fb47 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/005-expected.txt >@@ -0,0 +1,3 @@ >+ >+FAIL WebSockets: setting HttpOnly cookies in ws response, checking ws request assert_regexp_match: expected object "/ws_test_1560300651419.0.18655922318368579=test/" but got "(none)" >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/005.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/005.html >new file mode 100644 >index 0000000000000000000000000000000000000000..4fe7619faca14632af0b0fb71dba652fc3fe5c39 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/005.html >@@ -0,0 +1,35 @@ >+<!doctype html> >+<title>WebSockets: setting HttpOnly cookies in ws response, checking ws request</title> >+<meta name=timeout content=long> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+setup({explicit_done:true}) >+var cookie_id = ((new Date())-0) + '.' + Math.random(); >+ >+var t = async_test(function(t) { >+ var iframe = document.createElement('iframe'); >+ t.add_cleanup(function() { >+ // remove cookie >+ iframe.src = 'support/set-cookie.py?'+encodeURIComponent('ws_test_'+cookie_id+'=; Path=/; HttpOnly; Expires=Sun, 06 Nov 1994 08:49:37 GMT'); >+ iframe.onload = done; >+ }); >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/set-cookie_http?'+cookie_id); >+ ws.onopen = t.step_func(function(e) { >+ var ws2 = new WebSocket(SCHEME_DOMAIN_PORT+'/echo-cookie'); >+ ws2.onmessage = t.step_func(function(e) { >+ ws.close(); >+ ws.onclose = null; >+ ws2.close(); >+ assert_regexp_match(e.data, new RegExp('ws_test_'+cookie_id+'=test')); >+ t.done(); >+ }); >+ }); >+ ws.onerror = ws.onclose = t.step_func(function(e) {assert_unreached(e.type)}); >+ document.body.appendChild(iframe); >+}) >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/006-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/006-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..03b9884cb9769244dae649eed2a5a363183e8928 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/006-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: setting Secure cookie with document.cookie, checking ws request >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/006.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/006.html >new file mode 100644 >index 0000000000000000000000000000000000000000..0e958d25e5d276cc78b6394a1332ea42a510e3f4 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/006.html >@@ -0,0 +1,31 @@ >+<!doctype html> >+<title>WebSockets: setting Secure cookie with document.cookie, checking ws request</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+// This test doesn't work as originally intended, because an insecure page >+// cannot set a secure cookie. See 006.https.html for a working version. This >+// version is retained for historical purposes. >+var cookie_id = ((new Date())-0) + '.' + Math.random(); >+async_test(function(t) { >+ if (window.WebSocket) { >+ document.cookie = 'ws_test_'+cookie_id+'=test; Path=/; Secure'; >+ } >+ t.add_cleanup(function() { >+ // remove cookie >+ document.cookie = 'ws_test_'+cookie_id+'=; Path=/; Secure; Expires=Sun, 06 Nov 1994 08:49:37 GMT'; >+ }); >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo-cookie'); >+ ws.onmessage = t.step_func(function(e) { >+ ws.close(); >+ assert_equals(e.data.indexOf('ws_test_'+cookie_id+'=test'), -1, >+ 'cookie should not have been set'); >+ t.done(); >+ }) >+ ws.onerror = ws.onclose = t.step_func(function(e) {assert_unreached(e.type)}); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/007-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/007-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..1f87484229f50707a058765b9284bf19ccbc5036 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/007-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: when to process set-cookie fields in ws response >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/007.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/007.html >new file mode 100644 >index 0000000000000000000000000000000000000000..b1654f5b3cadf5db13746e55a7ca2d979149f42e >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/007.html >@@ -0,0 +1,35 @@ >+<!doctype html> >+<title>WebSockets: when to process set-cookie fields in ws response</title> >+<meta name=timeout content=long> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+var cookie_id = ((new Date())-0) + '.' + Math.random(); >+async_test(function(t) { >+ t.add_cleanup(function() { >+ // remove cookie >+ document.cookie = 'ws_test_'+cookie_id+'; Path=/; Expires=Sun, 06 Nov 1994 08:49:37 GMT'; >+ }); >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/set-cookie?'+cookie_id); >+ ws.onopen = t.step_func(function(e) { >+ ws.close(); >+ ws.onclose = null; >+ assert_regexp_match(document.cookie, new RegExp('ws_test_'+cookie_id+'=test')); >+ t.done(); >+ }); >+ ws.onerror = ws.onclose = t.step_func(function() {assert_unreached()}); >+ >+ // sleep for 2 seconds with sync xhr >+ var sleep = new XMLHttpRequest(); >+ sleep.open('GET', '/common/blank.html?pipe=trickle(d2)', false); >+ sleep.send(null); >+ >+ if (new RegExp('ws_test_'+cookie_id+'=test').test(document.cookie)) { >+ assert_unreached('cookie was set during script execution'); >+ } >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/support/set-cookie.py b/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/support/set-cookie.py >new file mode 100644 >index 0000000000000000000000000000000000000000..8a47d7cdd8ea0542d68f1cf5a2a76e609efb5727 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/support/set-cookie.py >@@ -0,0 +1,5 @@ >+import urllib >+ >+def main(request, response): >+ response.headers.set('Set-Cookie', urllib.unquote(request.url_parts.query)) >+ return [("Content-Type", "text/plain")], "" >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/support/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/support/w3c-import.log >new file mode 100644 >index 0000000000000000000000000000000000000000..a453f2a080f92c87c003cd0fa4c5281b093e8beb >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/support/w3c-import.log >@@ -0,0 +1,17 @@ >+The tests in this directory were imported from the W3C repository. >+Do NOT modify these tests directly in WebKit. >+Instead, create a pull request on the WPT github: >+ https://github.com/web-platform-tests/wpt >+ >+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport >+ >+Do NOT modify or remove this file. >+ >+------------------------------------------------------------------------ >+Properties requiring vendor prefixes: >+None >+Property values requiring vendor prefixes: >+None >+------------------------------------------------------------------------ >+List of files: >+/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/support/set-cookie.py >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/w3c-import.log >new file mode 100644 >index 0000000000000000000000000000000000000000..6d0a74b2c6679e5eba74d9c0e301ee406ada8c44 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/w3c-import.log >@@ -0,0 +1,23 @@ >+The tests in this directory were imported from the W3C repository. >+Do NOT modify these tests directly in WebKit. >+Instead, create a pull request on the WPT github: >+ https://github.com/web-platform-tests/wpt >+ >+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport >+ >+Do NOT modify or remove this file. >+ >+------------------------------------------------------------------------ >+Properties requiring vendor prefixes: >+None >+Property values requiring vendor prefixes: >+None >+------------------------------------------------------------------------ >+List of files: >+/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/001.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/002.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/003.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/004.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/005.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/006.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/cookies/007.html >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/eventhandlers.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/eventhandlers.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..97f2c8d93c62090129a8103d08bf38234a069bf1 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/eventhandlers.any-expected.txt >@@ -0,0 +1,6 @@ >+ >+PASS Event handler for open should have [TreatNonCallableAsNull] >+PASS Event handler for error should have [TreatNonCallableAsNull] >+PASS Event handler for close should have [TreatNonCallableAsNull] >+PASS Event handler for message should have [TreatNonCallableAsNull] >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/eventhandlers.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/eventhandlers.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/eventhandlers.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/eventhandlers.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/eventhandlers.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..b30b0b693f49a8bfecfa52db1c32c45b8fc25fed >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/eventhandlers.any.js >@@ -0,0 +1,13 @@ >+// META: script=websocket.sub.js >+ >+function testEventHandler(name) { >+ test(function() { >+ var ws = new WebSocket("ws://" + __SERVER__NAME + ":" + __PORT + "/" + __PATH, >+ "echo") >+ assert_equals(ws["on" + name], null); >+ ws["on" + name] = function() {}; >+ ws["on" + name] = 2; >+ assert_equals(ws["on" + name], null); >+ }, "Event handler for " + name + " should have [TreatNonCallableAsNull]") >+} >+["open", "error", "close", "message"].forEach(testEventHandler); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/eventhandlers.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/eventhandlers.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..97f2c8d93c62090129a8103d08bf38234a069bf1 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/eventhandlers.any.worker-expected.txt >@@ -0,0 +1,6 @@ >+ >+PASS Event handler for open should have [TreatNonCallableAsNull] >+PASS Event handler for error should have [TreatNonCallableAsNull] >+PASS Event handler for close should have [TreatNonCallableAsNull] >+PASS Event handler for message should have [TreatNonCallableAsNull] >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/eventhandlers.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/eventhandlers.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/eventhandlers.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/extended-payload-length-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/extended-payload-length-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..b0fb9881fe0d74577243fe888f857e647e06792b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/extended-payload-length-expected.txt >@@ -0,0 +1,6 @@ >+ >+PASS Application data is 125 byte which means any 'Extended payload length' field isn't used at all. >+PASS Application data is 126 byte which starts to use the 16 bit 'Extended payload length' field. >+PASS Application data is 0xFFFF byte which means the upper bound of the 16 bit 'Extended payload length' field. >+PASS Application data is (0xFFFF + 1) byte which starts to use the 64 bit 'Extended payload length' field >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/extended-payload-length.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/extended-payload-length.html >new file mode 100644 >index 0000000000000000000000000000000000000000..a5ea78fa5daba9d35b358062ec98f01942821649 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/extended-payload-length.html >@@ -0,0 +1,67 @@ >+<!doctype html> >+<title>WebSockets : Boundary-value tests for the 'Extended payload length' field in RFC6455 section5.2 'Base Framing Protocol'</title> >+<meta name=timeout content=long> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t){ >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); >+ var datasize = 125; >+ var data = null; >+ ws.onopen = t.step_func(function(e) { >+ data = new Array(datasize + 1).join('a'); >+ ws.send(data); >+ }); >+ ws.onmessage = t.step_func(function(e) { >+ assert_equals(e.data, data); >+ t.done(); >+ }); >+}, "Application data is 125 byte which means any 'Extended payload length' field isn't used at all."); >+ >+async_test(function(t){ >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); >+ var datasize = 126; >+ var data = null; >+ ws.onopen = t.step_func(function(e) { >+ data = new Array(datasize + 1).join('a'); >+ ws.send(data); >+ }); >+ ws.onmessage = t.step_func(function(e) { >+ assert_equals(e.data, data); >+ t.done(); >+ }); >+}, "Application data is 126 byte which starts to use the 16 bit 'Extended payload length' field."); >+ >+async_test(function(t){ >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); >+ var datasize = 0xFFFF; >+ var data = null; >+ ws.onopen = t.step_func(function(e) { >+ data = new Array(datasize + 1).join('a'); >+ ws.send(data); >+ }); >+ ws.onmessage = t.step_func(function(e) { >+ assert_equals(e.data, data); >+ t.done(); >+ }); >+}, "Application data is 0xFFFF byte which means the upper bound of the 16 bit 'Extended payload length' field."); >+ >+async_test(function(t){ >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); >+ var datasize = 0xFFFF + 1; >+ var data = null; >+ ws.onopen = t.step_func(function(e) { >+ data = new Array(datasize + 1).join('a'); >+ ws.send(data); >+ }); >+ ws.onmessage = t.step_func(function(e) { >+ assert_equals(e.data, data); >+ t.done(); >+ }); >+}, "Application data is (0xFFFF + 1) byte which starts to use the 64 bit 'Extended payload length' field"); >+ >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/basic_auth_wsh.py b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/basic_auth_wsh.py >new file mode 100644 >index 0000000000000000000000000000000000000000..7ace8f4edb79e4d7dae94349ff256567a17c219b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/basic_auth_wsh.py >@@ -0,0 +1,22 @@ >+#!/usr/bin/python >+ >+"""A WebSocket handler that enforces basic HTTP authentication. Username is >+'foo' and password is 'bar'.""" >+ >+ >+from mod_pywebsocket.handshake import AbortedByUserException >+ >+ >+def web_socket_do_extra_handshake(request): >+ authorization = request.headers_in.get('Authorization') >+ if authorization is None or authorization != 'Basic Zm9vOmJhcg==': >+ request.connection.write( >+ 'HTTP/1.1 401 Unauthorized\x0d\x0a' >+ 'Content-Length: 0\x0d\x0a' >+ 'WWW-Authenticate: Basic realm="camelot"\x0d\x0a' >+ '\x0d\x0a') >+ raise AbortedByUserException('Abort the connection') >+ >+ >+def web_socket_transfer_data(request): >+ pass >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/echo-cookie_wsh.py b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/echo-cookie_wsh.py >new file mode 100644 >index 0000000000000000000000000000000000000000..367d03190cfef898b092663a34891c721216f823 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/echo-cookie_wsh.py >@@ -0,0 +1,12 @@ >+#!/usr/bin/python >+ >+from mod_pywebsocket import msgutil >+ >+def web_socket_do_extra_handshake(request): >+ request.ws_cookie = request.headers_in.get('Cookie') >+ >+def web_socket_transfer_data(request): >+ if request.ws_cookie is not None: >+ msgutil.send_message(request, request.ws_cookie) >+ else: >+ msgutil.send_message(request, '(none)') >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/echo-query_v13_wsh.py b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/echo-query_v13_wsh.py >new file mode 100644 >index 0000000000000000000000000000000000000000..4083c49bc7e6c72785c1bd0e3d16082f9174d95b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/echo-query_v13_wsh.py >@@ -0,0 +1,11 @@ >+#!/usr/bin/python >+ >+from mod_pywebsocket import msgutil, util >+ >+def web_socket_do_extra_handshake(request): >+ pass >+ >+def web_socket_transfer_data(request): >+ while True: >+ msgutil.send_message(request, request.unparsed_uri.split('?')[1] or '') >+ return >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/echo-query_wsh.py b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/echo-query_wsh.py >new file mode 100644 >index 0000000000000000000000000000000000000000..8fd7ac36b2ad17c1e8a595bcf0a29de336da9e24 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/echo-query_wsh.py >@@ -0,0 +1,9 @@ >+#!/usr/bin/python >+ >+from mod_pywebsocket import msgutil, util >+ >+def web_socket_do_extra_handshake(request): >+ pass # Always accept. >+ >+def web_socket_transfer_data(request): >+ msgutil.send_message(request, request.unparsed_uri.split('?', 1)[1] or '') >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/echo_close_data_wsh.py b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/echo_close_data_wsh.py >new file mode 100644 >index 0000000000000000000000000000000000000000..4da4ce61f7bd3dc9e2bc0060c3dcf23b6b26c80e >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/echo_close_data_wsh.py >@@ -0,0 +1,22 @@ >+#!/usr/bin/python >+from mod_pywebsocket import msgutil >+ >+_GOODBYE_MESSAGE = u'Goodbye' >+ >+def web_socket_do_extra_handshake(request): >+ # This example handler accepts any request. See origin_check_wsh.py for how >+ # to reject access from untrusted scripts based on origin value. >+ >+ pass # Always accept. >+ >+ >+def web_socket_transfer_data(request): >+ while True: >+ line = request.ws_stream.receive_message() >+ if line is None: >+ return >+ if isinstance(line, unicode): >+ if line == _GOODBYE_MESSAGE: >+ return >+ request.ws_stream.send_message(line, binary=False) >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/echo_exit_wsh.py b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/echo_exit_wsh.py >new file mode 100644 >index 0000000000000000000000000000000000000000..200b92e583bd44b8b98da156b4d9ea2eb97cc47a >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/echo_exit_wsh.py >@@ -0,0 +1,21 @@ >+#!/usr/bin/python >+from mod_pywebsocket import msgutil >+ >+_GOODBYE_MESSAGE = u'Goodbye' >+ >+def web_socket_do_extra_handshake(request): >+ # This example handler accepts any request. See origin_check_wsh.py for how >+ # to reject access from untrusted scripts based on origin value. >+ >+ pass # Always accept. >+ >+ >+def web_socket_transfer_data(request): >+ while True: >+ line = request.ws_stream.receive_message() >+ if line is None: >+ return >+ if isinstance(line, unicode): >+ if line == _GOODBYE_MESSAGE: >+ return >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/echo_raw_wsh.py b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/echo_raw_wsh.py >new file mode 100644 >index 0000000000000000000000000000000000000000..c3a030c9689ab572c3664df69b110c7bd7dd09ef >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/echo_raw_wsh.py >@@ -0,0 +1,15 @@ >+#!/usr/bin/python >+ >+from mod_pywebsocket import msgutil >+import urllib >+ >+ >+def web_socket_do_extra_handshake(request): >+ pass # Always accept. >+ >+def web_socket_transfer_data(request): >+ while True: >+ line = msgutil.receive_message(request) >+ if line == 'exit': >+ return >+ request.connection.write(line.decode("string-escape")) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/echo_wsh.py b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/echo_wsh.py >new file mode 100644 >index 0000000000000000000000000000000000000000..41bcd169422c6b02d55ad8c13cfe88a923b3ba5a >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/echo_wsh.py >@@ -0,0 +1,36 @@ >+#!/usr/bin/python >+from mod_pywebsocket import msgutil >+from mod_pywebsocket import common >+ >+_GOODBYE_MESSAGE = u'Goodbye' >+ >+def web_socket_do_extra_handshake(request): >+ # This example handler accepts any request. See origin_check_wsh.py for how >+ # to reject access from untrusted scripts based on origin value. >+ if request.ws_requested_protocols: >+ if "echo" in request.ws_requested_protocols: >+ request.ws_protocol = "echo" >+ >+ >+def web_socket_transfer_data(request): >+ while True: >+ line = request.ws_stream.receive_message() >+ if line is None: >+ return >+ if isinstance(line, unicode): >+ request.ws_stream.send_message(line, binary=False) >+ if line == _GOODBYE_MESSAGE: >+ return >+ else: >+ request.ws_stream.send_message(line, binary=True) >+ >+def web_socket_passive_closing_handshake(request): >+ # Echo close status code and reason >+ code, reason = request.ws_close_code, request.ws_close_reason >+ >+ # No status received is a reserved pseudo code representing an empty code, >+ # so echo back an empty code in this case. >+ if code == common.STATUS_NO_STATUS_RECEIVED: >+ code = None >+ >+ return code, reason >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/empty-message_wsh.py b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/empty-message_wsh.py >new file mode 100644 >index 0000000000000000000000000000000000000000..0eb107f0b12b8b66ad7e35162d447b93ac7a3e91 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/empty-message_wsh.py >@@ -0,0 +1,13 @@ >+#!/usr/bin/python >+ >+from mod_pywebsocket import msgutil >+ >+def web_socket_do_extra_handshake(request): >+ pass # Always accept. >+ >+def web_socket_transfer_data(request): >+ line = msgutil.receive_message(request) >+ if line == "": >+ msgutil.send_message(request, 'pass') >+ else: >+ msgutil.send_message(request, 'fail') >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/handshake_no_protocol_wsh.py b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/handshake_no_protocol_wsh.py >new file mode 100644 >index 0000000000000000000000000000000000000000..ffc2ae80effa80962f981891840daebb59e38c70 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/handshake_no_protocol_wsh.py >@@ -0,0 +1,8 @@ >+#!/usr/bin/python >+ >+def web_socket_do_extra_handshake(request): >+ # Trick pywebsocket into believing no subprotocol was requested. >+ request.ws_requested_protocols = None >+ >+def web_socket_transfer_data(request): >+ pass >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/handshake_protocol_wsh.py b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/handshake_protocol_wsh.py >new file mode 100644 >index 0000000000000000000000000000000000000000..2ca20c052dbaad81d57fc16aed9f06e141a9606e >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/handshake_protocol_wsh.py >@@ -0,0 +1,7 @@ >+#!/usr/bin/python >+ >+def web_socket_do_extra_handshake(request): >+ request.ws_protocol = 'foobar' >+ >+def web_socket_transfer_data(request): >+ pass >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/handshake_sleep_2_wsh.py b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/handshake_sleep_2_wsh.py >new file mode 100644 >index 0000000000000000000000000000000000000000..3367ed8f80fd6810fa5a29d8fa01da81bf5bee65 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/handshake_sleep_2_wsh.py >@@ -0,0 +1,10 @@ >+#!/usr/bin/python >+ >+from mod_pywebsocket import msgutil >+import time >+ >+def web_socket_do_extra_handshake(request): >+ time.sleep(2) >+ >+def web_socket_transfer_data(request): >+ pass >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/invalid_wsh.py b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/invalid_wsh.py >new file mode 100644 >index 0000000000000000000000000000000000000000..886e970b8dc824f9892827a24de1ff4c8f492ce7 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/invalid_wsh.py >@@ -0,0 +1,9 @@ >+#!/usr/bin/python >+ >+from mod_pywebsocket import msgutil >+ >+def web_socket_do_extra_handshake(request): >+ request.connection.write("FOO BAR BAZ\r\n\r\n") >+ >+def web_socket_transfer_data(request): >+ pass >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/origin_wsh.py b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/origin_wsh.py >new file mode 100644 >index 0000000000000000000000000000000000000000..ce5f3a7f6ae7a7f816471e869584ab2eb01632e5 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/origin_wsh.py >@@ -0,0 +1,11 @@ >+#!/usr/bin/python >+ >+from mod_pywebsocket import msgutil >+ >+ >+def web_socket_do_extra_handshake(request): >+ pass # Always accept. >+ >+ >+def web_socket_transfer_data(request): >+ msgutil.send_message(request, request.ws_origin) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/protocol_array_wsh.py b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/protocol_array_wsh.py >new file mode 100644 >index 0000000000000000000000000000000000000000..5d46c588c27e826f4eb9625c6e53f0587997850b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/protocol_array_wsh.py >@@ -0,0 +1,14 @@ >+#!/usr/bin/python >+ >+from mod_pywebsocket import msgutil, util >+ >+def web_socket_do_extra_handshake(request): >+ line = request.headers_in.get('Sec-WebSocket-Protocol') >+ request.ws_protocol = line.split(',', 1)[0] >+ >+#pass >+ >+def web_socket_transfer_data(request): >+ while True: >+ msgutil.send_message(request, request.ws_protocol) >+ return >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/protocol_wsh.py b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/protocol_wsh.py >new file mode 100644 >index 0000000000000000000000000000000000000000..96a452584565c68d2651b2e2649d89175d02ea1f >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/protocol_wsh.py >@@ -0,0 +1,12 @@ >+#!/usr/bin/python >+ >+from mod_pywebsocket import msgutil, util >+ >+def web_socket_do_extra_handshake(request): >+ request.ws_protocol = request.headers_in.get('Sec-WebSocket-Protocol') >+#pass >+ >+def web_socket_transfer_data(request): >+ while True: >+ msgutil.send_message(request, request.ws_protocol) >+ return >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/referrer_wsh.py b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/referrer_wsh.py >new file mode 100644 >index 0000000000000000000000000000000000000000..3418ceb0c80e44ae32ae40a6c7f9587dc3ca1f24 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/referrer_wsh.py >@@ -0,0 +1,12 @@ >+#!/usr/bin/python >+ >+from mod_pywebsocket import msgutil >+ >+def web_socket_do_extra_handshake(request): >+ pass >+ >+def web_socket_transfer_data(request): >+ referrer = request.headers_in.get("Referer") >+ if referrer is None: >+ referrer = "MISSING AS PER FETCH" >+ msgutil.send_message(request, referrer) >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/set-cookie-secure_wsh.py b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/set-cookie-secure_wsh.py >new file mode 100644 >index 0000000000000000000000000000000000000000..4db321fc9dc21258acfbe5488623409cf080faba >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/set-cookie-secure_wsh.py >@@ -0,0 +1,11 @@ >+#!/usr/bin/python >+from six.moves import urllib >+ >+ >+def web_socket_do_extra_handshake(request): >+ url_parts = urllib.parse.urlsplit(request.uri) >+ request.extra_headers.append(('Set-Cookie', 'ws_test_'+(url_parts.query or '')+'=test; Secure; Path=/')) >+ >+def web_socket_transfer_data(request): >+ # Expect close() from user agent. >+ request.ws_stream.receive_message() >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/set-cookie_http_wsh.py b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/set-cookie_http_wsh.py >new file mode 100644 >index 0000000000000000000000000000000000000000..2fa0ded65d804bb6422e32deea3899489e112c06 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/set-cookie_http_wsh.py >@@ -0,0 +1,11 @@ >+#!/usr/bin/python >+ >+from six.moves import urllib >+ >+def web_socket_do_extra_handshake(request): >+ url_parts = urllib.parse.urlsplit(request.uri) >+ request.extra_headers.append(('Set-Cookie', 'ws_test_'+(url_parts.query or '')+'=test; Path=/; HttpOnly\x0D\x0ASec-WebSocket-Origin: '+request.ws_origin)) >+ >+def web_socket_transfer_data(request): >+ # Expect close from user agent. >+ request.ws_stream.receive_message() >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/set-cookie_wsh.py b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/set-cookie_wsh.py >new file mode 100644 >index 0000000000000000000000000000000000000000..3cec1c041cf11ebfa72503d93ecd557d12459526 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/set-cookie_wsh.py >@@ -0,0 +1,11 @@ >+#!/usr/bin/python >+from six.moves import urllib >+ >+ >+def web_socket_do_extra_handshake(request): >+ url_parts = urllib.parse.urlsplit(request.uri) >+ request.extra_headers.append(('Set-Cookie', 'ws_test_'+(url_parts.query or '')+'=test; Path=/')) >+ >+def web_socket_transfer_data(request): >+ # Expect close from user agent. >+ request.ws_stream.receive_message() >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/simple_handshake_wsh.py b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/simple_handshake_wsh.py >new file mode 100644 >index 0000000000000000000000000000000000000000..a1aa2498a88f336c4f4b319c3f755013c81e60de >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/simple_handshake_wsh.py >@@ -0,0 +1,23 @@ >+#!/usr/bin/python >+ >+from mod_pywebsocket import common, stream >+from mod_pywebsocket.handshake import AbortedByUserException, hybi >+ >+ >+def web_socket_do_extra_handshake(request): >+ # Send simple response header. This test implements the handshake >+ # manually. It's not clear why. >+ request.connection.write('HTTP/1.1 101 Switching Protocols:\x0D\x0AConnection: Upgrade\x0D\x0AUpgrade: WebSocket\x0D\x0ASet-Cookie: ws_test=test\x0D\x0ASec-WebSocket-Origin: '+request.ws_origin+'\x0D\x0ASec-WebSocket-Accept: '+hybi.compute_accept(request.headers_in.get(common.SEC_WEBSOCKET_KEY_HEADER))[0]+'\x0D\x0A\x0D\x0A') >+ # Send a clean close frame. >+ body = stream.create_closing_handshake_body(1000, '') >+ request.connection.write(stream.create_close_frame(body)); >+ # Wait for the responding close frame from the user agent. It's not possible >+ # to use the stream methods at this point because the stream hasn't been >+ # established from pywebsocket's point of view. Instead just read the >+ # appropriate number of bytes and assume they are correct. >+ request.connection.read(8) >+ # Close the socket without pywebsocket sending its own handshake response. >+ raise AbortedByUserException('Abort the connection') >+ >+def web_socket_transfer_data(request): >+ pass >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/sleep_10_v13_wsh.py b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/sleep_10_v13_wsh.py >new file mode 100644 >index 0000000000000000000000000000000000000000..e1a6d9640fd96e59dc58935b7734b34d81eb3614 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/sleep_10_v13_wsh.py >@@ -0,0 +1,25 @@ >+#!/usr/bin/python >+ >+import sys, urllib, time >+from mod_pywebsocket import common, msgutil, util >+ >+def web_socket_do_extra_handshake(request): >+ request.connection.write('x') >+ time.sleep(2) >+ request.connection.write('x') >+ time.sleep(2) >+ request.connection.write('x') >+ time.sleep(2) >+ request.connection.write('x') >+ time.sleep(2) >+ request.connection.write('x') >+ time.sleep(2) >+ return >+ >+def web_socket_transfer_data(request): >+ while True: >+ line = msgutil.receive_message(request) >+ if line == 'Goodbye': >+ return >+ request.ws_stream.send_message(line, binary=False) >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/stash_responder_wsh.py b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/stash_responder_wsh.py >new file mode 100644 >index 0000000000000000000000000000000000000000..fd6eabc7023f435b440a4310d8bcd67f0ab40414 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/stash_responder_wsh.py >@@ -0,0 +1,46 @@ >+#!/usr/bin/python >+from six.moves import urllib >+import json >+from mod_pywebsocket import common, msgutil, util >+from mod_pywebsocket.handshake import hybi >+from wptserve import stash >+ >+address, authkey = stash.load_env_config() >+stash = stash.Stash("/stash_responder", address=address, authkey=authkey) >+ >+def web_socket_do_extra_handshake(request): >+ return >+ >+def web_socket_transfer_data(request): >+ while True: >+ line = request.ws_stream.receive_message() >+ if line == "echo": >+ query = request.unparsed_uri.split('?')[1] >+ GET = dict(urllib.parse.parse_qsl(query)) >+ >+ # TODO(kristijanburnik): This code should be reused from >+ # /mixed-content/generic/expect.py or implemented more generally >+ # for other tests. >+ path = GET.get("path", request.unparsed_uri.split('?')[0]) >+ key = GET["key"] >+ action = GET["action"] >+ >+ if action == "put": >+ value = GET["value"] >+ stash.take(key=key, path=path) >+ stash.put(key=key, value=value, path=path) >+ response_data = json.dumps({"status": "success", "result": key}) >+ elif action == "purge": >+ value = stash.take(key=key, path=path) >+ response_data = json.dumps({"status": "success", "result": value}) >+ elif action == "take": >+ value = stash.take(key=key, path=path) >+ if value is None: >+ status = "allowed" >+ else: >+ status = "blocked" >+ response_data = json.dumps({"status": status, "result": value}) >+ >+ msgutil.send_message(request, response_data) >+ >+ return >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/w3c-import.log >new file mode 100644 >index 0000000000000000000000000000000000000000..3dfaf4d8eec0d9f143f81170814063459257ba8d >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/w3c-import.log >@@ -0,0 +1,40 @@ >+The tests in this directory were imported from the W3C repository. >+Do NOT modify these tests directly in WebKit. >+Instead, create a pull request on the WPT github: >+ https://github.com/web-platform-tests/wpt >+ >+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport >+ >+Do NOT modify or remove this file. >+ >+------------------------------------------------------------------------ >+Properties requiring vendor prefixes: >+None >+Property values requiring vendor prefixes: >+None >+------------------------------------------------------------------------ >+List of files: >+/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/basic_auth_wsh.py >+/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/echo-cookie_wsh.py >+/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/echo-query_v13_wsh.py >+/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/echo-query_wsh.py >+/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/echo_close_data_wsh.py >+/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/echo_exit_wsh.py >+/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/echo_raw_wsh.py >+/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/echo_wsh.py >+/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/empty-message_wsh.py >+/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/handshake_no_protocol_wsh.py >+/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/handshake_protocol_wsh.py >+/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/handshake_sleep_2_wsh.py >+/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/invalid_wsh.py >+/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/origin_wsh.py >+/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/protocol_array_wsh.py >+/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/protocol_wsh.py >+/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/referrer_wsh.py >+/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/set-cookie-secure_wsh.py >+/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/set-cookie_http_wsh.py >+/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/set-cookie_wsh.py >+/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/simple_handshake_wsh.py >+/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/sleep_10_v13_wsh.py >+/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/stash_responder_wsh.py >+/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/wrong_accept_key_wsh.py >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/wrong_accept_key_wsh.py b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/wrong_accept_key_wsh.py >new file mode 100644 >index 0000000000000000000000000000000000000000..f504a81f49148e682d874c360b64cd397ea04a72 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/handlers/wrong_accept_key_wsh.py >@@ -0,0 +1,13 @@ >+#!/usr/bin/python >+ >+import sys, urllib, time >+from mod_pywebsocket import common, msgutil, util >+ >+def web_socket_do_extra_handshake(request): >+ request.connection.write('HTTP/1.1 101 Switching Protocols:\x0D\x0AConnection: Upgrade\x0D\x0AUpgrade: WebSocket\x0D\x0ASec-WebSocket-Origin: '+request.ws_origin+'\x0D\x0ASec-WebSocket-Accept: thisisawrongacceptkey\x0D\x0A\x0D\x0A') >+ return >+ >+def web_socket_transfer_data(request): >+ while True: >+ request.ws_stream.send_message('test', binary=False) >+ return >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/CloseEvent/clean-close-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/CloseEvent/clean-close-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..cf754b3fabd0a43409889cfb79f3af5b70e30b96 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/CloseEvent/clean-close-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: wasClean, true >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/CloseEvent/clean-close.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/CloseEvent/clean-close.html >new file mode 100644 >index 0000000000000000000000000000000000000000..ad22107287a07014666c05d64434b0066c4a5de4 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/CloseEvent/clean-close.html >@@ -0,0 +1,23 @@ >+<!doctype html> >+<title>WebSockets: wasClean, true</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); >+ ws.onopen = t.step_func(function(e) { >+ ws.send('Test'); >+ }); >+ ws.onmessage = t.step_func(function(e) { >+ ws.close(); >+ }); >+ ws.onclose = t.step_func(function(e) { >+ assert_equals(e.wasClean,true); >+ t.done(); >+ }); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/CloseEvent/constructor-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/CloseEvent/constructor-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..267c74307c908543781d650b3548e6be2ac88451 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/CloseEvent/constructor-expected.txt >@@ -0,0 +1,4 @@ >+ >+PASS new CloseEvent() without dictionary >+PASS new CloseEvent() with dictionary >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/CloseEvent/constructor.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/CloseEvent/constructor.html >new file mode 100644 >index 0000000000000000000000000000000000000000..1ed86bdf8fdb5428ac7912c97f5456b592492948 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/CloseEvent/constructor.html >@@ -0,0 +1,35 @@ >+<!doctype html> >+<meta charset=utf-8> >+<title>CloseEvent: constructor</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<div id=log></div> >+<script> >+test(function() { >+ var event = new CloseEvent("foo"); >+ assert_true(event instanceof CloseEvent, "should be a CloseEvent"); >+ assert_equals(event.type, "foo"); >+ assert_false(event.bubbles, "bubbles"); >+ assert_false(event.cancelable, "cancelable"); >+ assert_false(event.wasClean, "wasClean"); >+ assert_equals(event.code, 0); >+ assert_equals(event.reason, ""); >+}, "new CloseEvent() without dictionary"); >+ >+test(function() { >+ var event = new CloseEvent("foo", { >+ bubbles: true, >+ cancelable: true, >+ wasClean: true, >+ code: 7, >+ reason: "x", >+ }); >+ assert_true(event instanceof CloseEvent, "should be a CloseEvent"); >+ assert_equals(event.type, "foo"); >+ assert_true(event.bubbles, "bubbles"); >+ assert_true(event.cancelable, "cancelable"); >+ assert_true(event.wasClean, "wasClean"); >+ assert_equals(event.code, 7); >+ assert_equals(event.reason, "x"); >+}, "new CloseEvent() with dictionary"); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/CloseEvent/historical-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/CloseEvent/historical-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..8f9de881c100f178aac7118b38f22e687f165d40 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/CloseEvent/historical-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS initCloseEvent >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/CloseEvent/historical.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/CloseEvent/historical.html >new file mode 100644 >index 0000000000000000000000000000000000000000..24528a86fb0c528f6516930b7879cf8fcf333cf3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/CloseEvent/historical.html >@@ -0,0 +1,12 @@ >+<!doctype html> >+<meta charset=utf-8> >+<title>CloseEvent: historical initialization</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<div id=log></div> >+<script> >+test(function() { >+ assert_false("initCloseEvent" in CloseEvent.prototype); >+ assert_false("initCloseEvent" in new CloseEvent('close')); >+}, "initCloseEvent"); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/CloseEvent/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/CloseEvent/w3c-import.log >new file mode 100644 >index 0000000000000000000000000000000000000000..10369ca8eb997649c8a0cece9bd37dec5862b6d9 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/CloseEvent/w3c-import.log >@@ -0,0 +1,19 @@ >+The tests in this directory were imported from the W3C repository. >+Do NOT modify these tests directly in WebKit. >+Instead, create a pull request on the WPT github: >+ https://github.com/web-platform-tests/wpt >+ >+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport >+ >+Do NOT modify or remove this file. >+ >+------------------------------------------------------------------------ >+Properties requiring vendor prefixes: >+None >+Property values requiring vendor prefixes: >+None >+------------------------------------------------------------------------ >+List of files: >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/CloseEvent/clean-close.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/CloseEvent/constructor.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/CloseEvent/historical.html >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-arraybuffer-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-arraybuffer-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..45c11152e083baf652a745fa0dbe30606c2b0bb3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-arraybuffer-expected.txt >@@ -0,0 +1,3 @@ >+ >+FAIL WebSockets: bufferedAmount for ArrayBuffer assert_equals: expected 10 but got 0 >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-arraybuffer.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-arraybuffer.html >new file mode 100644 >index 0000000000000000000000000000000000000000..faf09783aed9d9f2315124e90e18cb3a4a810fd3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-arraybuffer.html >@@ -0,0 +1,25 @@ >+<!doctype html> >+<meta charset=utf-8> >+<title>WebSockets: bufferedAmount for ArrayBuffer</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); >+ var datasize = 10; >+ ws.onopen = t.step_func(function(e) { >+ ws.binaryType = "arraybuffer"; >+ var data = new ArrayBuffer(datasize); >+ ws.send(data); >+ assert_equals(ws.bufferedAmount, data.byteLength); >+ }) >+ ws.onmessage = t.step_func(function(e) { >+ assert_equals(e.data.byteLength, datasize); >+ t.done(); >+ }) >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-blob-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-blob-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..e8d0825342e071066bb10322176ae3aad5584373 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-blob-expected.txt >@@ -0,0 +1,3 @@ >+ >+FAIL WebSockets: bufferedAmount for blob assert_equals: expected 10 but got 0 >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-blob.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-blob.html >new file mode 100644 >index 0000000000000000000000000000000000000000..3af1d93a777ed5436c111942f83a2a6fde6591c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-blob.html >@@ -0,0 +1,26 @@ >+<!doctype html> >+<meta charset=utf-8> >+<title>WebSockets: bufferedAmount for blob</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); >+ var datasize = 10; >+ ws.onopen = t.step_func(function(e) { >+ ws.binaryType = "blob"; >+ var data = new ArrayBuffer(datasize); >+ ws.send(data); >+ assert_equals(ws.bufferedAmount, data.byteLength); >+ }); >+ ws.onmessage = t.step_func(function(e) { >+ assert_true(e.data instanceof Blob); >+ assert_equals(e.data.size, datasize); >+ t.done(); >+ }); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-getter-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-getter-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..ed6be747470a63f54dbd5075ddb8369a6aef4dd3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-getter-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: defineProperty getter for bufferedAmount >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-getter.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-getter.html >new file mode 100644 >index 0000000000000000000000000000000000000000..b564da2396790500888fe154f1eb5b8a819e2f73 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-getter.html >@@ -0,0 +1,18 @@ >+<!doctype html> >+<meta charset=utf-8> >+<title>WebSockets: defineProperty getter for bufferedAmount</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+test(function(){ >+ Object.defineProperty(WebSocket.prototype, 'bufferedAmount', { >+ get: function() { return 'foo'; } >+ }); >+ var ws = new WebSocket('ws://example.invalid/'); >+ assert_equals(ws.bufferedAmount, 'foo'); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-setter-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-setter-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..0800dee7a6c06cd1f40b4738bc41dc7216d6ffa6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-setter-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: defineProperty setter for bufferedAmount >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-setter.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-setter.html >new file mode 100644 >index 0000000000000000000000000000000000000000..feddfb90ee683b13a3a8b3eb6988664450adf17f >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-setter.html >@@ -0,0 +1,20 @@ >+<!doctype html> >+<meta charset=utf-8> >+<title>WebSockets: defineProperty setter for bufferedAmount</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+test(function() { >+ window.setter_ran = false; >+ Object.defineProperty(WebSocket.prototype, 'bufferedAmount', { >+ set: function(v) { window[v] = true; } >+ }); >+ var ws = new WebSocket('ws://example.invalid/'); >+ ws.bufferedAmount = 'setter_ran'; >+ assert_true(setter_ran); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-deleting-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-deleting-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..e85786452bf2f0f08ac8c03aff3d600e1951ba89 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-deleting-expected.txt >@@ -0,0 +1,4 @@ >+CONSOLE MESSAGE: line 14: WebSocket connection to 'ws://localhost:49001/echo' failed: WebSocket is closed before the connection is established. >+ >+PASS WebSockets: delete bufferedAmount >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-deleting.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-deleting.html >new file mode 100644 >index 0000000000000000000000000000000000000000..68c47e4901e2a84fe71085c9e2ecd89f5afdbd76 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-deleting.html >@@ -0,0 +1,23 @@ >+<!doctype html> >+<meta charset=utf-8> >+<title>WebSockets: delete bufferedAmount</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+test(function(){ >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); >+ assert_equals(ws.bufferedAmount, 0, 'after creation'); >+ ws.close(); >+ delete ws.bufferedAmount; >+ assert_equals(ws.bufferedAmount, 0, >+ 'after attempt to delete ws.bufferedAmount'); >+ delete WebSocket.prototype.bufferedAmount; >+ assert_equals(ws.bufferedAmount, undefined, >+ 'after attempt to delete WebSocket.prototype.bufferedAmount'); >+}); >+</script> >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-getting-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-getting-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..868262864af870d2041a40fbe4df9360103f6802 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-getting-expected.txt >@@ -0,0 +1,3 @@ >+ >+FAIL WebSockets: bufferedAmount after send()ing assert_equals: bufferedAmount after sent "x" expected 1 but got 0 >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-getting.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-getting.html >new file mode 100644 >index 0000000000000000000000000000000000000000..0398b0a9cd8f63f9010ed1dc5f683ecf12abd200 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-getting.html >@@ -0,0 +1,53 @@ >+<!doctype html> >+<meta charset=utf-8> >+<title>WebSockets: bufferedAmount after send()ing</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t){ >+ // bufferedAmount should increase sync in the send() method and decrease between >+ // events in the event loop (so never while script is running). >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); >+ ws.onopen = t.step_func(function(e) { >+ ws.send('x'); >+ assert_equals(ws.bufferedAmount, 1, 'bufferedAmount after sent "x"'); >+ ws.send('\u00E5'); >+ assert_equals(ws.bufferedAmount, 1+2, 'bufferedAmount after sent "x", "\u00E5"'); >+ ws.send('\u5336'); >+ assert_equals(ws.bufferedAmount, 1+2+3, 'bufferedAmount after sent "x", "\u00E5", "\u5336"'); >+ ws.send('\uD801\uDC7E'); >+ assert_equals(ws.bufferedAmount, 1+2+3+4, 'bufferedAmount after sent "x", "\u00E5", "\u5336", "\uD801\uDC7E"'); >+ }) >+ var i = 0; >+ ws.onmessage = t.step_func(function(e) { >+ i++; >+ switch(i) { >+ case 1: >+ assert_equals(e.data, 'x'); >+ assert_true(ws.bufferedAmount < 2+3+4 + 1, 'bufferedAmount after received "x"'); >+ break; >+ case 2: >+ assert_equals(e.data, '\u00E5'); >+ assert_true(ws.bufferedAmount < 3+4 + 1, 'bufferedAmount after received "x", "\u00E5"'); >+ break; >+ case 3: >+ assert_equals(e.data, '\u5336'); >+ assert_true(ws.bufferedAmount < 4 + 1, 'bufferedAmount after received "x", "\u00E5", "\u5336"'); >+ break; >+ case 4: >+ assert_equals(e.data, '\uD801\uDC7E'); >+ assert_equals(ws.bufferedAmount, 0, 'bufferedAmount after received "x", "\u00E5", "\u5336", "\uD801\uDC7E"'); >+ t.done(); >+ break; >+ default: >+ assert_unreached(i); >+ } >+ }) >+ ws.onerror = ws.onclose = t.step_func(function() {assert_unreached()}); >+}); >+</script> >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-initial-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-initial-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..c3e800f5ca68864e2c3e5b516da4fad95dd36b59 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-initial-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: getting bufferedAmount >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-initial.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-initial.html >new file mode 100644 >index 0000000000000000000000000000000000000000..55e9cf9e99c03e7348d705355fb9764a4f6feb36 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-initial.html >@@ -0,0 +1,15 @@ >+<!doctype html> >+<meta charset=utf-8> >+<title>WebSockets: getting bufferedAmount</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+test(function(){ >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); >+ assert_equals(ws.bufferedAmount, 0); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-large-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-large-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..4531a30a25ed4fd759bed794441982fb37a5d5f6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-large-expected.txt >@@ -0,0 +1,3 @@ >+ >+FAIL WebSockets: bufferedAmount for 65K data assert_equals: expected 0 but got 65000 >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-large.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-large.html >new file mode 100644 >index 0000000000000000000000000000000000000000..c9f15b082c79b43de3ed8f02389049253a2d9df6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-large.html >@@ -0,0 +1,27 @@ >+<!doctype html> >+<meta charset=utf-8> >+<title>WebSockets: bufferedAmount for 65K data</title> >+<meta name=timeout content=long> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); >+ var data = ""; >+ ws.onopen = t.step_func(function(e) { >+ for (var i = 0; i < 65000; i++) { >+ data = data + "x"; >+ } >+ ws.send(data); >+ assert_equals(data.length, ws.bufferedAmount); >+ }); >+ ws.onmessage = t.step_func(function(e) { >+ assert_equals(e.data, data); >+ t.done(); >+ }) >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-readonly-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-readonly-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..36698b15c9bf7f9ec2a79434d5f89694dc1059bb >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-readonly-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: setting bufferedAmount >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-readonly.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-readonly.html >new file mode 100644 >index 0000000000000000000000000000000000000000..8200b7504ccc279eece5739d0cd74f395986ed37 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-readonly.html >@@ -0,0 +1,16 @@ >+<!doctype html> >+<meta charset=utf-8> >+<title>WebSockets: setting bufferedAmount</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+test(function(){ >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); >+ ws.bufferedAmount = 5; >+ assert_equals(ws.bufferedAmount, 0); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-unicode-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-unicode-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..ac58940c049c8750bdb89e474754768559de2a1e >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-unicode-expected.txt >@@ -0,0 +1,3 @@ >+ >+FAIL WebSockets: bufferedAmount for unicode data assert_equals: expected 0 but got 12 >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-unicode.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-unicode.html >new file mode 100644 >index 0000000000000000000000000000000000000000..49b1330c9778feab74fab7905a2892144643ec7f >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-unicode.html >@@ -0,0 +1,23 @@ >+<!doctype html> >+<meta charset=utf-8> >+<title>WebSockets: bufferedAmount for unicode data</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); >+ var data = "¥¥¥¥¥¥"; >+ ws.onopen = t.step_func(function(e) { >+ ws.send(data); >+ assert_equals(data.length * 2, ws.bufferedAmount); >+ }); >+ ws.onmessage = t.step_func(function(e) { >+ assert_equals(e.data, data); >+ t.done(); >+ }); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/w3c-import.log >new file mode 100644 >index 0000000000000000000000000000000000000000..917baa9b9ddfcf66b436b1f57cf7316188bbaa41 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/w3c-import.log >@@ -0,0 +1,26 @@ >+The tests in this directory were imported from the W3C repository. >+Do NOT modify these tests directly in WebKit. >+Instead, create a pull request on the WPT github: >+ https://github.com/web-platform-tests/wpt >+ >+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport >+ >+Do NOT modify or remove this file. >+ >+------------------------------------------------------------------------ >+Properties requiring vendor prefixes: >+None >+Property values requiring vendor prefixes: >+None >+------------------------------------------------------------------------ >+List of files: >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-arraybuffer.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-blob.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-getter.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-setter.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-deleting.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-getting.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-initial.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-large.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-readonly.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-unicode.html >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-basic-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-basic-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..e3e9e77fb910809ed1404762ba0eb91b19d83bcf >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-basic-expected.txt >@@ -0,0 +1,4 @@ >+CONSOLE MESSAGE: line 23: WebSocket connection to 'ws://localhost:49001/' failed: WebSocket is closed before the connection is established. >+ >+FAIL WebSockets: close() assert_equals: expected 2 but got 3 >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-basic.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-basic.html >new file mode 100644 >index 0000000000000000000000000000000000000000..673f730cfaee082c33bfc4083e474876fa3db7a7 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-basic.html >@@ -0,0 +1,26 @@ >+<!doctype html> >+<title>WebSockets: close()</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); >+ ws.onclose = t.step_func(function(e) { >+ assert_equals(e instanceof CloseEvent, true, 'e instanceof CloseEvent'); >+ assert_equals(e.wasClean, false, 'e.wasClean'); >+ e.wasClean = true; >+ assert_equals(e.wasClean, false, 'e.wasClean = true'); >+ delete e.wasClean; >+ assert_equals(e.wasClean, false, 'delete e.wasClean'); >+ delete CloseEvent.prototype.wasClean; >+ assert_equals(e.wasClean, undefined, 'delete CloseEvent.prototype.wasClean'); >+ t.done(); >+ }); >+ ws.close(); >+ assert_equals(ws.readyState, ws.CLOSING); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-connecting-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-connecting-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..1fb2d243a8364c5acea0fdcd0694df44e81eb7b5 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-connecting-expected.txt >@@ -0,0 +1,4 @@ >+CONSOLE MESSAGE: line 15: WebSocket connection to 'ws://localhost:49001/sleep_10_v13' failed: WebSocket is closed before the connection is established. >+ >+FAIL WebSockets: close() when connecting assert_equals: expected 2 but got 3 >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-connecting.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-connecting.html >new file mode 100644 >index 0000000000000000000000000000000000000000..3e9e51b319e5273025dc17c339991d1ba47705cd >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-connecting.html >@@ -0,0 +1,25 @@ >+<!doctype html> >+<title>WebSockets: close() when connecting</title> >+<meta name=timeout content=long> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/sleep_10_v13'); >+ t.step_timeout(function() { >+ assert_equals(ws.readyState, ws.CONNECTING); >+ ws.close(); >+ assert_equals(ws.readyState, ws.CLOSING); >+ ws.onclose = t.step_func(function(e) { >+ assert_equals(ws.readyState, ws.CLOSED); >+ assert_equals(e.wasClean, false); >+ t.done(); >+ }); >+ }, 1000); >+ ws.onopen = ws.onclose = t.unreached_func(); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-multiple-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-multiple-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..854e429d1f779e15db8f5e0072c7ea655ecfeeac >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-multiple-expected.txt >@@ -0,0 +1,4 @@ >+CONSOLE MESSAGE: line 16: WebSocket connection to 'ws://localhost:49001/' failed: WebSocket is closed before the connection is established. >+ >+PASS WebSockets: close() several times >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-multiple.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-multiple.html >new file mode 100644 >index 0000000000000000000000000000000000000000..c6da41ac588c5e44b9325f9cafc5bb4b0e499519 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-multiple.html >@@ -0,0 +1,29 @@ >+<!doctype html> >+<title>WebSockets: close() several times</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+var i = 0; >+async_test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); >+ ws.onclose = t.step_func(function(e) { >+ i++; >+ }); >+ ws.close(); >+ ws.close(); >+ ws.close(); >+ var f = t.step_func(function() { >+ if (i < 1) { >+ t.step_timeout(f, 500); >+ return; >+ } >+ assert_equals(i, 1); >+ t.done() >+ }); >+ t.step_timeout(f, 500); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-nested-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-nested-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..9e29c73628cdab63389e03a1cb6232e008951edf >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-nested-expected.txt >@@ -0,0 +1,4 @@ >+CONSOLE MESSAGE: line 25: WebSocket connection to 'ws://localhost:49001/' failed: WebSocket is closed before the connection is established. >+ >+FAIL WebSockets: close() in close event handler assert_equals: expected 2 but got 3 >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-nested.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-nested.html >new file mode 100644 >index 0000000000000000000000000000000000000000..3ba99af966f407a428b61880125d75ea0343755a >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-nested.html >@@ -0,0 +1,28 @@ >+<!doctype html> >+<title>WebSockets: close() in close event handler</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); >+ var i = 0; >+ ws.onclose = t.step_func(function(e) { >+ i++; >+ if (i == 1) { >+ assert_equals(ws.readyState, ws.CLOSED); >+ ws.close(); >+ assert_equals(ws.readyState, ws.CLOSED); >+ } >+ t.step_timeout(function() { >+ assert_equals(i, 1); >+ t.done(); >+ }, 50); >+ }); >+ ws.close(); >+ assert_equals(ws.readyState, ws.CLOSING); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-replace-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-replace-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..a4f20b2872d36a1857376eb31f3f9011942f5193 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-replace-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: replacing close >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-replace.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-replace.html >new file mode 100644 >index 0000000000000000000000000000000000000000..a3d29d0c94d7ec22af1781cd8fe6f9e8eb8349ac >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-replace.html >@@ -0,0 +1,15 @@ >+<!doctype html> >+<title>WebSockets: replacing close</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+test(function() { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); >+ ws.close = 5; >+ assert_equals(ws.close, 5); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-return-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-return-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..fa52c836ff41cf0bb04ce402a122a96b728daad3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-return-expected.txt >@@ -0,0 +1,4 @@ >+CONSOLE MESSAGE: line 12: WebSocket connection to 'ws://localhost:49001/' failed: WebSocket is closed before the connection is established. >+ >+PASS WebSockets: close() return value >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-return.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-return.html >new file mode 100644 >index 0000000000000000000000000000000000000000..c752c4224820e99c4493d8b2618be1b7035affbc >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-return.html >@@ -0,0 +1,14 @@ >+<!doctype html> >+<title>WebSockets: close() return value</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+test(function() { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); >+ assert_equals(ws.close(), undefined); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/w3c-import.log >new file mode 100644 >index 0000000000000000000000000000000000000000..ca7255ffe43e45eeb99b3aaacb47a9106e9501c8 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/w3c-import.log >@@ -0,0 +1,22 @@ >+The tests in this directory were imported from the W3C repository. >+Do NOT modify these tests directly in WebKit. >+Instead, create a pull request on the WPT github: >+ https://github.com/web-platform-tests/wpt >+ >+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport >+ >+Do NOT modify or remove this file. >+ >+------------------------------------------------------------------------ >+Properties requiring vendor prefixes: >+None >+Property values requiring vendor prefixes: >+None >+------------------------------------------------------------------------ >+List of files: >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-basic.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-connecting.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-multiple.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-nested.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-replace.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-return.html >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/001-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/001-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..456891c90b168cda72e72b15bf7872ce959ba572 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/001-expected.txt >@@ -0,0 +1,6 @@ >+ >+PASS Constants on constructors CONNECTING >+PASS Constants on constructors OPEN >+PASS Constants on constructors CLOSING >+PASS Constants on constructors CLOSED >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/001.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/001.html >new file mode 100644 >index 0000000000000000000000000000000000000000..efc249aab15391e835b4be33598cd147e2d7a0ce >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/001.html >@@ -0,0 +1,17 @@ >+<!doctype html> >+<title>WebSockets: getting constants on constructor</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+var constants = ['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED']; >+for (var i = 0; i < constants.length; ++i) { >+ test(function(){ >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); >+ assert_equals(WebSocket[constants[i]], i, 'WebSocket.'+constants[i]); >+ }, "Constants on constructors " + constants[i]); >+}; >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/002-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/002-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..d2db1f28ab7de145bcb7bc00282a4c9245dd1408 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/002-expected.txt >@@ -0,0 +1,6 @@ >+ >+PASS Readonly constants CONNECTING >+PASS Readonly constants OPEN >+PASS Readonly constants CLOSING >+PASS Readonly constants CLOSED >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/002.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/002.html >new file mode 100644 >index 0000000000000000000000000000000000000000..7280e09b4a860b988601717c7b8a5a05dee9230d >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/002.html >@@ -0,0 +1,24 @@ >+<!doctype html> >+<title>WebSockets: setting constants</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+// this test is testing WebIDL stuff >+var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); >+var constants = ['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED']; >+for (var i = 0; i < constants.length; ++i) { >+ test(function() { >+ WebSocket[constants[i]] = 5; // should be ignored, has { ReadOnly } >+ WebSocket.prototype[constants[i]] = 5; // should be ignored, has { ReadOnly } >+ ws[constants[i]] = 5; // should be ignored, { ReadOnly } is inherited from prototype >+ assert_equals(WebSocket[constants[i]], i, 'WebSocket.'+constants[i]); >+ assert_equals(WebSocket.prototype[constants[i]], i, 'WebSocket.prototype.'+constants[i]); >+ assert_equals(ws[constants[i]], i, 'ws.'+constants[i]); >+ }, "Readonly constants " + constants[i]); >+}; >+</script> >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/003-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/003-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..6b2a44fbb82295bfc410590041b0726b6e42e115 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/003-expected.txt >@@ -0,0 +1,6 @@ >+ >+PASS WebSockets: deleting constants >+PASS WebSockets: deleting constants 1 >+PASS WebSockets: deleting constants 2 >+PASS WebSockets: deleting constants 3 >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/003.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/003.html >new file mode 100644 >index 0000000000000000000000000000000000000000..cdb06e5ebb0007d1e3d524c5359467cc869798bd >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/003.html >@@ -0,0 +1,22 @@ >+<!doctype html> >+<title>WebSockets: deleting constants</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+var constants = ['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED']; >+for (var i = 0; i < constants.length; ++i) { >+ test(function(){ >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); >+ delete WebSocket[constants[i]]; // should be ignored, has { DontDelete } >+ delete WebSocket.prototype[constants[i]]; // should be ignored, has { DontDelete } >+ delete ws[constants[i]]; // should be ignored, there is no such property on the object >+ assert_equals(WebSocket[constants[i]], i, 'WebSocket.'+constants[i]); >+ assert_equals(WebSocket.prototype[constants[i]], i, 'WebSocket.prototype.'+constants[i]); >+ assert_equals(ws[constants[i]], i, 'ws.'+constants[i]); >+ }) >+}; >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/004-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/004-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..68b125069b364e1b2073fdeeebf92f22eeeeb02c >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/004-expected.txt >@@ -0,0 +1,10 @@ >+ >+PASS WebSocket.prototype.CONNECTING >+PASS ws.CONNECTING >+PASS WebSocket.prototype.OPEN >+PASS ws.OPEN >+PASS WebSocket.prototype.CLOSING >+PASS ws.CLOSING >+PASS WebSocket.prototype.CLOSED >+PASS ws.CLOSED >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/004.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/004.html >new file mode 100644 >index 0000000000000000000000000000000000000000..a5b7649dffa1759f3a6570e07af77afc82624a4c >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/004.html >@@ -0,0 +1,21 @@ >+<!doctype html> >+<title>WebSockets: getting constants on prototype and object</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+var constants = ['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED']; >+for (var i = 0; i < constants.length; ++i) { >+ test(function() { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); >+ assert_equals(WebSocket.prototype[constants[i]], i); >+ }, 'WebSocket.prototype.'+constants[i]); >+ test(function() { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); >+ assert_equals(ws[constants[i]], i); >+ }, 'ws.'+constants[i]); >+}; >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/005-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/005-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..ccc64fab38525bb38c45442ac95c62c55d091f75 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/005-expected.txt >@@ -0,0 +1,6 @@ >+ >+PASS defineProperty getter CONNECTING >+PASS defineProperty getter OPEN >+PASS defineProperty getter CLOSING >+PASS defineProperty getter CLOSED >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/005.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/005.html >new file mode 100644 >index 0000000000000000000000000000000000000000..b3c2e932e6d08c11b964040005564fe822e0d572 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/005.html >@@ -0,0 +1,20 @@ >+<!doctype html> >+<title>WebSockets: defineProperty getter for constants</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+var constants = ['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED']; >+for (var i = 0; i < constants.length; ++i) { >+ test(function() { >+ assert_throws(new TypeError(), function() { >+ Object.defineProperty(WebSocket.prototype, constants[i], { >+ get: function() { return 'foo'; } >+ }); >+ }); >+ }, "defineProperty getter " + constants[i]); >+}; >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/006-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/006-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..ec5f2e52426fda3514e013562370aa79c34d5210 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/006-expected.txt >@@ -0,0 +1,6 @@ >+ >+PASS defineProperty setter CONNECTING >+PASS defineProperty setter OPEN >+PASS defineProperty setter CLOSING >+PASS defineProperty setter CLOSED >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/006.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/006.html >new file mode 100644 >index 0000000000000000000000000000000000000000..702193456477816e2a799c71245e1adb17de1397 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/006.html >@@ -0,0 +1,20 @@ >+<!doctype html> >+<title>WebSockets: defineProperty setter for constants</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+var constants = ['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED']; >+for (var i = 0; i < constants.length; ++i) { >+ test(function() { >+ assert_throws(new TypeError(), function(){ >+ Object.defineProperty(WebSocket.prototype, constants[i], { >+ set: function() { return 'foo'; } >+ }); >+ }); >+ }, "defineProperty setter " + constants[i]) >+}; >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/w3c-import.log >new file mode 100644 >index 0000000000000000000000000000000000000000..c3efafab2b5cb6c981a261e8106fe7dc0e6fe2fa >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/w3c-import.log >@@ -0,0 +1,22 @@ >+The tests in this directory were imported from the W3C repository. >+Do NOT modify these tests directly in WebKit. >+Instead, create a pull request on the WPT github: >+ https://github.com/web-platform-tests/wpt >+ >+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport >+ >+Do NOT modify or remove this file. >+ >+------------------------------------------------------------------------ >+Properties requiring vendor prefixes: >+None >+Property values requiring vendor prefixes: >+None >+------------------------------------------------------------------------ >+List of files: >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/001.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/002.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/003.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/004.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/005.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/constants/006.html >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/001-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/001-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..804fa4541b6396667bb9375f03fe1e21987be1f3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/001-expected.txt >@@ -0,0 +1,6 @@ >+ >+PASS WebSockets: getting on* >+PASS WebSockets: getting on* 1 >+PASS WebSockets: getting on* 2 >+PASS WebSockets: getting on* 3 >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/001.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/001.html >new file mode 100644 >index 0000000000000000000000000000000000000000..4af7636bf43723f30caba4c6321a8f39f18a7551 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/001.html >@@ -0,0 +1,17 @@ >+<!doctype html> >+<title>WebSockets: getting on*</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+var events = ['open', 'message', 'error', 'close']; >+for (var i = 0; i < events.length; ++i) { >+ test(function(){ >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); >+ assert_equals(ws['on'+events[i]], null, 'on'+events[i]); >+ }); >+}; >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/002-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/002-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..1a29808e0784680f4e782523f35fb421a58dead3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/002-expected.txt >@@ -0,0 +1,6 @@ >+ >+PASS WebSockets: setting on* >+PASS WebSockets: setting on* 1 >+PASS WebSockets: setting on* 2 >+PASS WebSockets: setting on* 3 >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/002.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/002.html >new file mode 100644 >index 0000000000000000000000000000000000000000..279e0c5806f9dfa824d05dafb0b3d3b31b68dcd7 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/002.html >@@ -0,0 +1,19 @@ >+<!doctype html> >+<title>WebSockets: setting on*</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+var events = ['open', 'message', 'error', 'close']; >+for (var i = 0; i < events.length; ++i) { >+ test(function(){ >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); >+ var foo = function () {}; >+ ws['on'+events[i]] = foo; >+ assert_equals(ws['on'+events[i]], foo); >+ }); >+} >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/003-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/003-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..3eeacc9ebb1febb465cd9be33cf8f0f1e96d0a29 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/003-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: listening for events with onopen >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/003.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/003.html >new file mode 100644 >index 0000000000000000000000000000000000000000..430ea14f6775be3189f3a44fe7d1cd1b8274d13c >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/003.html >@@ -0,0 +1,21 @@ >+<!doctype html> >+<title>WebSockets: listening for events with onopen</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); >+ var foo = t.step_func(function (e) { >+ if (e.detail == 5) >+ t.done(); >+ }) >+ ws.onopen = foo; >+ var ev = document.createEvent('UIEvents'); >+ ev.initUIEvent('open', false, false, window, 5); >+ ws.dispatchEvent(ev); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/004-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/004-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..7ef4773cbc664f6af81dd64993a261082fa1f460 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/004-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: members of EventTarget >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/004.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/004.html >new file mode 100644 >index 0000000000000000000000000000000000000000..0c384a6cfa2fc9248524d295974d403bf1517c2b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/004.html >@@ -0,0 +1,16 @@ >+<!doctype html> >+<title>WebSockets: members of EventTarget</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+test(function(){ >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); >+ assert_equals(typeof ws.addEventListener, 'function'); >+ assert_equals(typeof ws.removeEventListener, 'function'); >+ assert_equals(typeof ws.dispatchEvent, 'function'); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/006-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/006-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..e1abfb5f91197704cdfbb01ad603777cf49fbd39 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/006-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: 'on*' in ws >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/006.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/006.html >new file mode 100644 >index 0000000000000000000000000000000000000000..f7ccf1030e39b4ce91961feb8dd2f70af1ebcf1c >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/006.html >@@ -0,0 +1,17 @@ >+<!doctype html> >+<title>WebSockets: 'on*' in ws</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+test(function(){ >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); >+ assert_equals('onopen' in ws, true, 'onopen'); >+ assert_equals('onmessage' in ws, true, 'onmessage'); >+ assert_equals('onerror' in ws, true, 'onerror'); >+ assert_equals('onclose' in ws, true, 'onclose'); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/007-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/007-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..50660cb04c3d1d3cb0726694199494f845995670 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/007-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: listening for events with onmessage >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/007.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/007.html >new file mode 100644 >index 0000000000000000000000000000000000000000..1e4f2361c5a08f2e1220b31716d5739d6222046e >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/007.html >@@ -0,0 +1,21 @@ >+<!doctype html> >+<title>WebSockets: listening for events with onmessage</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); >+ var foo = t.step_func(function (e) { >+ if (e.detail == 5) >+ t.done(); >+ }) >+ ws.onmessage = foo; >+ var ev = document.createEvent('UIEvents'); >+ ev.initUIEvent('message', false, false, window, 5); >+ ws.dispatchEvent(ev); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/008-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/008-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..dbbeb91950bb8ebbffc6a9d104d3ff9ce4991c98 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/008-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: listening for events with onerror >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/008.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/008.html >new file mode 100644 >index 0000000000000000000000000000000000000000..dd06f0d18839588e94a325d912adac2fa88c4708 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/008.html >@@ -0,0 +1,24 @@ >+<!doctype html> >+<title>WebSockets: listening for events with onerror</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); >+ var run = false; >+ var foo = t.step_func(function (e) { >+ run = true; >+ assert_equals(e.detail, 5) >+ }); >+ ws.onerror = foo; >+ var ev = document.createEvent('UIEvents'); >+ ev.initUIEvent('error', false, false, window, 5); >+ ws.dispatchEvent(ev); >+ assert_true(run); >+ t.done(); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/009-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/009-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..22f58dbc50157703118c151a52931179fd61484b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/009-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: listening for events with onclose >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/009.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/009.html >new file mode 100644 >index 0000000000000000000000000000000000000000..58df1d618172b95558880a7f5f43eaa816c16c65 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/009.html >@@ -0,0 +1,21 @@ >+<!doctype html> >+<title>WebSockets: listening for events with onclose</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); >+ var foo = t.step_func(function (e) { >+ if (e.detail == 5) >+ t.done(); >+ }); >+ ws.onclose = foo; >+ var ev = document.createEvent('UIEvents'); >+ ev.initUIEvent('close', false, false, window, 5); >+ ws.dispatchEvent(ev); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/010-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/010-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..1dce8d9f910abb85a26714384bf3382ab272948b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/010-expected.txt >@@ -0,0 +1,6 @@ >+ >+PASS WebSockets: setting event handlers to undefined >+PASS WebSockets: setting event handlers to undefined 1 >+PASS WebSockets: setting event handlers to undefined 2 >+PASS WebSockets: setting event handlers to undefined 3 >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/010.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/010.html >new file mode 100644 >index 0000000000000000000000000000000000000000..f4a4850d66ff9165992939e73b9b69093b51b4ec >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/010.html >@@ -0,0 +1,21 @@ >+<!doctype html> >+<title>WebSockets: setting event handlers to undefined</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+var events = ['onclose', 'onopen', 'onerror', 'onmessage']; >+for (var i = 0; i < events.length; ++i) { >+ test(function(){ >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/empty-message'); >+ var foo = function() {} >+ ws[events[i]] = foo; >+ assert_equals(ws[events[i]], foo, events[i]); >+ ws[events[i]] = undefined; >+ assert_equals(ws[events[i]], null, events[i]); >+ }); >+} >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/011-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/011-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..04efe380f7101306dbdb5f1ffdc7b4b93488e2da >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/011-expected.txt >@@ -0,0 +1,6 @@ >+ >+PASS onclose >+PASS onopen >+PASS onerror >+PASS onmessage >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/011.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/011.html >new file mode 100644 >index 0000000000000000000000000000000000000000..918becc1033da080e34ed2773dbeab89b0183e9e >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/011.html >@@ -0,0 +1,18 @@ >+<!doctype html> >+<title>WebSockets: setting event handlers to 1</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+var events = ['onclose', 'onopen', 'onerror', 'onmessage']; >+for (var i = 0; i < events.length; ++i) { >+ test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/empty-message'); >+ ws[events[i]] = 1; >+ assert_equals(ws[events[i]], null); >+ }, events[i]); >+}; >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/012-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/012-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..04efe380f7101306dbdb5f1ffdc7b4b93488e2da >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/012-expected.txt >@@ -0,0 +1,6 @@ >+ >+PASS onclose >+PASS onopen >+PASS onerror >+PASS onmessage >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/012.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/012.html >new file mode 100644 >index 0000000000000000000000000000000000000000..633f02c4acbed2ba36ba37f79c8f0291f9b454ba >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/012.html >@@ -0,0 +1,18 @@ >+<!doctype html> >+<title>WebSockets: setting event handlers to ";"</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+var events = ['onclose', 'onopen', 'onerror', 'onmessage']; >+for (var i = 0; i < events.length; ++i) { >+ test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/empty-message'); >+ ws[events[i]] = ";"; >+ assert_equals(ws[events[i]], null); >+ }, events[i]); >+}; >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/013-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/013-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..aa7779f1f1d367229d9e0cfbed92b301dbda48bc >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/013-expected.txt >@@ -0,0 +1,6 @@ >+ >+FAIL onclose assert_unreached: handleEvent was called Reached unreachable code >+FAIL onopen assert_unreached: handleEvent was called Reached unreachable code >+FAIL onerror assert_unreached: handleEvent was called Reached unreachable code >+FAIL onmessage assert_unreached: handleEvent was called Reached unreachable code >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/013.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/013.html >new file mode 100644 >index 0000000000000000000000000000000000000000..465505128e53cc8c3f05cb7a2485fffcffc92ecb >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/013.html >@@ -0,0 +1,20 @@ >+<!doctype html> >+<title>WebSockets: setting event handlers to {handleEvent:function(){}}</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+var events = ['onclose', 'onopen', 'onerror', 'onmessage']; >+for (var i = 0; i < events.length; ++i) { >+ test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/empty-message'); >+ var obj = {handleEvent:this.unreached_func("handleEvent was called")}; >+ ws[events[i]] = obj; >+ assert_equals(ws[events[i]], obj); >+ ws.dispatchEvent(new Event(events[i].substr(2))); >+ }, events[i]); >+}; >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/014-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/014-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..79ac5710a486b694ef13c4501d91092228a3edd3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/014-expected.txt >@@ -0,0 +1,6 @@ >+ >+PASS Setting event handlers to null onclose >+PASS Setting event handlers to null onopen >+PASS Setting event handlers to null onerror >+PASS Setting event handlers to null onmessage >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/014.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/014.html >new file mode 100644 >index 0000000000000000000000000000000000000000..9250fb26731980e87840c6a746d174bd5a346506 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/014.html >@@ -0,0 +1,21 @@ >+<!doctype html> >+<title>WebSockets: setting event handlers to null</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+var events = ['onclose', 'onopen', 'onerror', 'onmessage']; >+for (var i = 0; i < events.length; ++i) { >+ test(function() { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/empty-message'); >+ var foo = function() {} >+ ws[events[i]] = foo; >+ assert_equals(ws[events[i]], foo, events[i]); >+ ws[events[i]] = null; >+ assert_equals(ws[events[i]], null, events[i]); >+ }, "Setting event handlers to null " + events[i]); >+}; >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/015-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/015-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..e002c084d7ec23656094d778ea488e563d757885 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/015-expected.txt >@@ -0,0 +1,4 @@ >+CONSOLE MESSAGE: WebSocket connection to 'ws://localhost:49001/echo_raw' failed: Unrecognized frame opcode: 3 >+ >+PASS WebSockets: instanceof on events >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/015.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/015.html >new file mode 100644 >index 0000000000000000000000000000000000000000..8852e6415a7c28826495cdc69fb0ef6c2f80aea6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/015.html >@@ -0,0 +1,33 @@ >+<!doctype html> >+<title>WebSockets: instanceof on events</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo_raw'); >+ ws.onopen = t.step_func(function(e) { >+ assert_true(e instanceof Event); >+ // first a text frame, then a frame with reserved opcode 3 >+ // which should fail the connection >+ ws.send('\\x81\\x04test\\x83\\x03LOL'); >+ }); >+ ws.onmessage = t.step_func(function(e) { >+ assert_true(e instanceof Event); >+ assert_true(e instanceof MessageEvent); >+ assert_equals(ws.readyState, ws.OPEN); >+ }) >+ ws.onerror = t.step_func(function(e) { >+ assert_true(e instanceof Event); >+ assert_equals(ws.readyState, ws.CLOSED); >+ }) >+ ws.onclose = t.step_func(function(e) { >+ assert_true(e instanceof Event); >+ assert_true(e instanceof CloseEvent); >+ t.done(); >+ }) >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/016-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/016-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..d79f33a9c89b524b25c71acf9770ee5ce5b53916 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/016-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: addEventListener >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/016.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/016.html >new file mode 100644 >index 0000000000000000000000000000000000000000..1f2f252e189c08919b5d6c21868c4b520830d8ca >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/016.html >@@ -0,0 +1,38 @@ >+<!doctype html> >+<title>WebSockets: addEventListener</title> >+<meta name="timeout" content="long"> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); >+ var count = 0; >+ var checkCount = t.step_func(function (c, e) { >+ count++; >+ assert_equals(count, c); >+ }); >+ // no spec requires this order for event listeners but the web does >+ ws.addEventListener('open', t.step_func(function(e) { >+ checkCount(1, e); >+ ws.send('Goodbye'); >+ }), false); >+ ws.onopen = t.step_func(function(e) {checkCount(2, e) }); >+ ws.addEventListener('open', t.step_func(function(e) {checkCount(3, e); }), false); >+ >+ ws.addEventListener('message', t.step_func(function(e) {checkCount(4, e); }), false); >+ ws.onmessage = t.step_func(function(e) {checkCount(5, e) }); >+ ws.addEventListener('message', t.step_func(function(e) {checkCount(6, e); }), false); >+ >+ ws.addEventListener('close', t.step_func(function(e) {checkCount(7, e); }), false); >+ ws.onclose = t.step_func(function(e) {checkCount(8, e) }); >+ ws.addEventListener('close', t.step_func(function(e) { >+ checkCount(9, e); >+ t.done(); >+ }), false); >+ >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/017-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/017-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..f8a520c87a2d9fda20714a3b403c250f0f763c55 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/017-expected.txt >@@ -0,0 +1,4 @@ >+CONSOLE MESSAGE: WebSocket connection to 'ws://localhost:49001/echo_raw' failed: Unrecognized frame opcode: 3 >+ >+PASS WebSockets: this, e.target, e.currentTarget, e.eventPhase >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/017.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/017.html >new file mode 100644 >index 0000000000000000000000000000000000000000..b2ed593673390048ad683917f05c386550c1fd5b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/017.html >@@ -0,0 +1,53 @@ >+<!doctype html> >+<title>WebSockets: this, e.target, e.currentTarget, e.eventPhase</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo_raw'); >+ ws.addEventListener('open', function(e) { >+ var this_val = this; >+ t.step(function() { >+ // first a text frame, then a frame with reserved opcode 3 >+ // which should fail the connection >+ ws.send('\\x81\\x04test\\x83\\x03LOL'); >+ assert_equals(this_val, ws); >+ assert_equals(e.target, ws); >+ assert_equals(e.currentTarget, ws); >+ assert_equals(e.eventPhase, 2); >+ }); >+ }, false); >+ ws.addEventListener('message', function(e) { >+ var this_val = this; >+ t.step(function() { >+ assert_equals(this_val, ws); >+ assert_equals(e.target, ws); >+ assert_equals(e.currentTarget, ws); >+ assert_equals(e.eventPhase, 2); >+ }); >+ }, false); >+ ws.addEventListener('error', function(e) { >+ var this_val = this; >+ t.step(function() { >+ assert_equals(this_val, ws); >+ assert_equals(e.target, ws); >+ assert_equals(e.currentTarget, ws); >+ assert_equals(e.eventPhase, 2); >+ }); >+ }, false); >+ ws.addEventListener('close', function(e) { >+ var this_val = this; >+ t.step(function() { >+ assert_equals(this_val, ws); >+ assert_equals(e.target, ws); >+ assert_equals(e.currentTarget, ws); >+ assert_equals(e.eventPhase, 2); >+ t.done(); >+ }); >+ }, false); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/018-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/018-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..485a37a530205753b3ce8f6e15d103fee98f97f4 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/018-expected.txt >@@ -0,0 +1,7 @@ >+CONSOLE MESSAGE: WebSocket connection to 'ws://localhost:49001/echo_raw' failed: Unrecognized frame opcode: 3 >+ >+PASS open event >+PASS message event >+PASS error event >+PASS close event >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/018.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/018.html >new file mode 100644 >index 0000000000000000000000000000000000000000..a3ef0f500f902e1ca09ea7e68c90b7f2885a4aee >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/018.html >@@ -0,0 +1,49 @@ >+<!doctype html> >+<title>WebSockets: toString(), bubbles, cancelable</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+var ws = null; >+setup(function() { >+ ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo_raw'); >+}); >+ >+async_test(function(t) { >+ ws.addEventListener('open', t.step_func_done(function(e) { >+ // first a text frame, then a frame with reserved opcode 3 >+ // which should fail the connection >+ ws.send('\\x81\\x04test\\x83\\x03LOL'); >+ assert_equals(e.toString(), '[object Event]', "open e.toString()"); >+ assert_equals(e.bubbles, false, 'open e.bubbles'); >+ assert_equals(e.cancelable, false, 'open e.cancelable'); >+ }), false); >+}, "open event"); >+ >+async_test(function(t) { >+ ws.addEventListener('message', t.step_func_done(function(e) { >+ assert_equals(e.toString(), '[object MessageEvent]', "message e.toString()"); >+ assert_equals(e.bubbles, false, 'message e.bubbles'); >+ assert_equals(e.cancelable, false, 'message e.cancelable'); >+ }), false); >+}, "message event"); >+ >+async_test(function(t) { >+ ws.addEventListener('error', t.step_func_done(function(e) { >+ assert_equals(e.toString(), '[object Event]', "error e.toString()"); >+ assert_equals(e.bubbles, false, 'error e.bubbles'); >+ assert_equals(e.cancelable, false, 'error e.cancelable'); >+ }), false); >+}, "error event"); >+ >+async_test(function(t) { >+ ws.addEventListener('close', t.step_func_done(function(e) { >+ assert_equals(e.toString(), '[object CloseEvent]', "close e.toString()"); >+ assert_equals(e.bubbles, false, 'close e.bubbles'); >+ assert_equals(e.cancelable, false, 'close e.cancelable'); >+ }), false); >+}, "close event"); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/019-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/019-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..862bccf5d24a4558491b7ae5673b12a655ba24a0 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/019-expected.txt >@@ -0,0 +1,10 @@ >+CONSOLE MESSAGE: line 14: WebSocket connection to 'ws://localhost:49001/echo' failed: WebSocket is closed before the connection is established. >+CONSOLE MESSAGE: line 14: WebSocket connection to 'ws://localhost:49001/echo' failed: WebSocket is closed before the connection is established. >+CONSOLE MESSAGE: line 14: WebSocket connection to 'ws://localhost:49001/echo' failed: WebSocket is closed before the connection is established. >+CONSOLE MESSAGE: line 14: WebSocket connection to 'ws://localhost:49001/echo' failed: WebSocket is closed before the connection is established. >+ >+PASS WebSockets: removeEventListener >+PASS WebSockets: removeEventListener 1 >+PASS WebSockets: removeEventListener 2 >+PASS WebSockets: removeEventListener 3 >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/019.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/019.html >new file mode 100644 >index 0000000000000000000000000000000000000000..f975a809808bcae05da8d7f4d9099918b2d26849 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/019.html >@@ -0,0 +1,31 @@ >+<!doctype html> >+<title>WebSockets: removeEventListener</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+var events = ['open', 'message', 'error', 'close']; >+for (var i = 0; i < events.length; ++i) { >+ test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); >+ ws.close(); >+ var got = []; >+ var event; >+ function addThis(e) { >+ got.push(e.type); >+ } >+ ws.addEventListener(events[i], addThis, false); >+ ws.removeEventListener(events[i], addThis, false); >+ event = document.createEvent('Event'); >+ event.initEvent(events[i], false, false); >+ ws.dispatchEvent(event); >+ assert_equals(got.length, 0); >+ if (got.length) { >+ debug('Got: '+got); >+ } >+ }) >+}; >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/020-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/020-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..9b98798b9533511a10742a96c7215511396be303 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/020-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: error events >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/020.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/020.html >new file mode 100644 >index 0000000000000000000000000000000000000000..54d96fe638f46ebf160c45981fb15c27b03f9fc7 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/020.html >@@ -0,0 +1,17 @@ >+<!doctype html> >+<title>WebSockets: error events</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t) { >+ var ws = new WebSocket('ws://example.invalid/'); >+ ws.onerror = t.step_func(function(e) { >+ assert_true(e instanceof Event); >+ t.done(); >+ }) >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/w3c-import.log >new file mode 100644 >index 0000000000000000000000000000000000000000..7cedab92f78046c81a6777e53698157554b8a9f5 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/w3c-import.log >@@ -0,0 +1,35 @@ >+The tests in this directory were imported from the W3C repository. >+Do NOT modify these tests directly in WebKit. >+Instead, create a pull request on the WPT github: >+ https://github.com/web-platform-tests/wpt >+ >+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport >+ >+Do NOT modify or remove this file. >+ >+------------------------------------------------------------------------ >+Properties requiring vendor prefixes: >+None >+Property values requiring vendor prefixes: >+None >+------------------------------------------------------------------------ >+List of files: >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/001.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/002.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/003.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/004.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/006.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/007.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/008.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/009.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/010.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/011.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/012.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/013.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/014.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/015.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/016.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/017.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/018.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/019.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/020.html >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/extensions/001-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/extensions/001-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..dcdff700ba5fd70f77e4605c126e1bc30d5e320f >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/extensions/001-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: getting extensions in connecting >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/extensions/001.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/extensions/001.html >new file mode 100644 >index 0000000000000000000000000000000000000000..f5003868e8fee3a814a3aedc58c030f2459f44cf >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/extensions/001.html >@@ -0,0 +1,14 @@ >+<!doctype html> >+<title>WebSockets: getting extensions in connecting</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+test(function(t) { >+ // The extensions attribute must initially return the empty string >+ assert_equals((new WebSocket(SCHEME_DOMAIN_PORT+'/empty-message')).extensions, ''); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/extensions/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/extensions/w3c-import.log >new file mode 100644 >index 0000000000000000000000000000000000000000..ce72803ddc3f35735ca266d5e05f635523df3a3f >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/extensions/w3c-import.log >@@ -0,0 +1,17 @@ >+The tests in this directory were imported from the W3C repository. >+Do NOT modify these tests directly in WebKit. >+Instead, create a pull request on the WPT github: >+ https://github.com/web-platform-tests/wpt >+ >+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport >+ >+Do NOT modify or remove this file. >+ >+------------------------------------------------------------------------ >+Properties requiring vendor prefixes: >+None >+Property values requiring vendor prefixes: >+None >+------------------------------------------------------------------------ >+List of files: >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/extensions/001.html >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/protocol/protocol-initial-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/protocol/protocol-initial-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..e4dbb3e88449c977a260ff11dc753295949cabf3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/protocol/protocol-initial-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: getting protocol in connecting >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/protocol/protocol-initial.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/protocol/protocol-initial.html >new file mode 100644 >index 0000000000000000000000000000000000000000..ba27228ec9122ecca6656433a18c30766fcdb914 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/protocol/protocol-initial.html >@@ -0,0 +1,14 @@ >+<!doctype html> >+<title>WebSockets: getting protocol in connecting</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+test(function(t) { >+ // The protocol attribute must initially return the empty string >+ assert_equals((new WebSocket(SCHEME_DOMAIN_PORT + '/empty-message')).protocol, ''); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/protocol/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/protocol/w3c-import.log >new file mode 100644 >index 0000000000000000000000000000000000000000..cb70c0b3210b4bbb85da49586a49fe91d3dc9aee >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/protocol/w3c-import.log >@@ -0,0 +1,17 @@ >+The tests in this directory were imported from the W3C repository. >+Do NOT modify these tests directly in WebKit. >+Instead, create a pull request on the WPT github: >+ https://github.com/web-platform-tests/wpt >+ >+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport >+ >+Do NOT modify or remove this file. >+ >+------------------------------------------------------------------------ >+Properties requiring vendor prefixes: >+None >+Property values requiring vendor prefixes: >+None >+------------------------------------------------------------------------ >+List of files: >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/protocol/protocol-initial.html >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/001-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/001-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..81fb9c5ccbc5b142f1746727df433c18e4e92e42 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/001-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: getting readyState in connecting >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/001.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/001.html >new file mode 100644 >index 0000000000000000000000000000000000000000..aa5d9fdf19490be809b825c673f1bf9b17662bc8 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/001.html >@@ -0,0 +1,13 @@ >+<!doctype html> >+<title>WebSockets: getting readyState in connecting</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+test(function(t) { >+ assert_equals((new WebSocket(SCHEME_DOMAIN_PORT+'/')).readyState, WebSocket.CONNECTING); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/002-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/002-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..48c9673c01e2a6ea6bd888de83c8333efabac6d4 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/002-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: setting readyState >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/002.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/002.html >new file mode 100644 >index 0000000000000000000000000000000000000000..9e97416f36ec81f374bf3b53d8899d0db5618b1a >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/002.html >@@ -0,0 +1,15 @@ >+<!doctype html> >+<title>WebSockets: setting readyState</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); >+ ws.readyState = 5; >+ assert_equals(ws.readyState, ws.CONNECTING); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/003-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/003-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..e12c6acf33ea93df301cb5b250a847879d385ca1 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/003-expected.txt >@@ -0,0 +1,4 @@ >+CONSOLE MESSAGE: line 12: WebSocket connection to 'ws://localhost:49001/' failed: WebSocket is closed before the connection is established. >+ >+FAIL WebSockets: delete readyState assert_equals: delete ws.readyState expected 2 but got 3 >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/003.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/003.html >new file mode 100644 >index 0000000000000000000000000000000000000000..93d72b64bf2394402df448679677ef87d3b59d05 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/003.html >@@ -0,0 +1,18 @@ >+<!doctype html> >+<title>WebSockets: delete readyState</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); >+ ws.close(); >+ delete ws.readyState; >+ assert_equals(ws.readyState, ws.CLOSING, 'delete ws.readyState'); >+ delete WebSocket.prototype.readyState; >+ assert_equals(ws.readyState, undefined, 'delete WebSocket.prototype.readyState'); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/004-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/004-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..54aaea8f58f20232584464a884d8e9098f71ad00 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/004-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: defineProperty getter for readyState >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/004.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/004.html >new file mode 100644 >index 0000000000000000000000000000000000000000..fbe326a103d0b4520d0c7784845664abd9678829 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/004.html >@@ -0,0 +1,17 @@ >+<!doctype html> >+<title>WebSockets: defineProperty getter for readyState</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+test(function() { >+ Object.defineProperty(WebSocket.prototype, 'readyState', { >+ get: function() { return 'foo'; } >+ }); >+ var ws = new WebSocket('ws://example.invalid/'); >+ assert_equals(ws.readyState, 'foo'); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/005-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/005-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..e8a82c8f8bae67c9bb69bc12265ce0dd2b79c752 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/005-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: defineProperty setter for readyState >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/005.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/005.html >new file mode 100644 >index 0000000000000000000000000000000000000000..3ca8705296e4b1b653000e227e2e37558523a52f >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/005.html >@@ -0,0 +1,19 @@ >+<!doctype html> >+<title>WebSockets: defineProperty setter for readyState</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+test(function(){ >+ window.setter_ran = false; >+ Object.defineProperty(WebSocket.prototype, 'readyState', { >+ set: function(v) { window[v] = true; } >+ }); >+ var ws = new WebSocket('ws://example.invalid/'); >+ ws.readyState = 'setter_ran'; >+ assert_true(setter_ran); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/006-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/006-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..db0e2e932d12f1678c5e68d5c2c2915bb1875e45 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/006-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: getting readyState in open >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/006.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/006.html >new file mode 100644 >index 0000000000000000000000000000000000000000..e0be938abc8d3554513646a3d6c1363ca4d245d6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/006.html >@@ -0,0 +1,19 @@ >+<!doctype html> >+<title>WebSockets: getting readyState in open</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); >+ ws.onopen = t.step_func(function(e) { >+ assert_equals(ws.readyState, ws.OPEN); >+ ws.close(); >+ t.done(); >+ }); >+ ws.onerror = ws.onmessage = ws.onclose = t.step_func(function() {assert_unreached()}); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/007-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/007-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..63025ce5a0bdc1ef85351bc696f64e0a61830f11 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/007-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: getting readyState in closing >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/007.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/007.html >new file mode 100644 >index 0000000000000000000000000000000000000000..12a4cd087bc9937b5a6ff70c09f4854a805ca802 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/007.html >@@ -0,0 +1,19 @@ >+<!doctype html> >+<title>WebSockets: getting readyState in closing</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); >+ ws.onopen = t.step_func(function(e) { >+ ws.close(); >+ assert_equals(ws.readyState, ws.CLOSING); >+ t.done(); >+ }); >+ ws.onerror = ws.onmessage = ws.onclose = t.step_func(function() {assert_unreached()}); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/008-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/008-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..2646f4f7dac0bb0e10b4e90dffbd5b195d41ae0b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/008-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: getting readyState in closed >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/008.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/008.html >new file mode 100644 >index 0000000000000000000000000000000000000000..c83ead4e7be554f3e2e09a860a7f427471333a92 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/008.html >@@ -0,0 +1,21 @@ >+<!doctype html> >+<title>WebSockets: getting readyState in closed</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); >+ ws.onopen = t.step_func(function(e) { >+ ws.onclose = t.step_func(function(e) { >+ assert_equals(ws.readyState, ws.CLOSED); >+ t.done(); >+ }) >+ ws.close(); >+ }); >+ ws.onerror = ws.onmessage = ws.onclose = t.step_func(function() {assert_unreached()}); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/w3c-import.log >new file mode 100644 >index 0000000000000000000000000000000000000000..913a0d28a734181fc00572eaaa0f50c4266c40c2 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/w3c-import.log >@@ -0,0 +1,24 @@ >+The tests in this directory were imported from the W3C repository. >+Do NOT modify these tests directly in WebKit. >+Instead, create a pull request on the WPT github: >+ https://github.com/web-platform-tests/wpt >+ >+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport >+ >+Do NOT modify or remove this file. >+ >+------------------------------------------------------------------------ >+Properties requiring vendor prefixes: >+None >+Property values requiring vendor prefixes: >+None >+------------------------------------------------------------------------ >+List of files: >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/001.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/002.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/003.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/004.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/005.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/006.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/007.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/008.html >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/001-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/001-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..1d79317d541a4c45c763fd9d694e7d9dc58ab75c >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/001-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: send() with no args >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/001.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/001.html >new file mode 100644 >index 0000000000000000000000000000000000000000..3a22420ad6cb273e00f1ddf53fb55146247252c0 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/001.html >@@ -0,0 +1,15 @@ >+<!doctype html> >+<title>WebSockets: send() with no args</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); >+ assert_throws(new TypeError(), function(){ws.send()}); >+}); >+</script> >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/002-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/002-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..367a038d74ddb529cbe4e0c9c661b7b4de714b3d >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/002-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: replacing send >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/002.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/002.html >new file mode 100644 >index 0000000000000000000000000000000000000000..f5c7e4feb63b65e282222de5693938417b87534a >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/002.html >@@ -0,0 +1,15 @@ >+<!doctype html> >+<title>WebSockets: replacing send</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+test(function() { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); >+ ws.send = 5; >+ assert_equals(ws.send, 5); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/003-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/003-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..5909c2f63ad61ef06168a0e445c029a0a5ef909c >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/003-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: send() when readyState is CONNECTING >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/003.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/003.html >new file mode 100644 >index 0000000000000000000000000000000000000000..08aadbf4665b73a02d8e0aec3c228c71ef05e080 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/003.html >@@ -0,0 +1,15 @@ >+<!doctype html> >+<title>WebSockets: send() when readyState is CONNECTING</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); >+ assert_throws("INVALID_STATE_ERR", function(){ws.send('a')}); >+}); >+</script> >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/004-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/004-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..5addc9b5219232a334346c6217b18c8f39a77f6d >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/004-expected.txt >@@ -0,0 +1,5 @@ >+ >+PASS lone low surrogate >+PASS lone high surrogate >+PASS surrogates in wrong order >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/004.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/004.html >new file mode 100644 >index 0000000000000000000000000000000000000000..af906b55333168a73b527b6f24e4c44746ffbe49 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/004.html >@@ -0,0 +1,25 @@ >+<!doctype html> >+<title>WebSockets: send() with unpaired surrogate when readyState is CONNECTING</title> >+ >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); >+ assert_throws("INVALID_STATE_ERR", function(){ws.send('a\uDC00x')}); >+}, "lone low surrogate"); >+ >+test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); >+ assert_throws("INVALID_STATE_ERR", function(){ws.send('a\uD800x')}); >+}, "lone high surrogate"); >+ >+test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); >+ assert_throws("INVALID_STATE_ERR", function(){ws.send('a\uDC00\uD800x')}); >+}, "surrogates in wrong order"); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/005-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/005-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..8234517ea344d146dfa9a807c6cfcb04d039af21 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/005-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: send() return value >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/005.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/005.html >new file mode 100644 >index 0000000000000000000000000000000000000000..aef5c1c9d3c05ae4818906bf69ef4caf72dc4990 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/005.html >@@ -0,0 +1,19 @@ >+<!doctype html> >+<title>WebSockets: send() return value</title> >+<meta name="timeout" content="long"> >+ >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t){ >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); >+ ws.onopen = t.step_func(function(e) { >+ assert_equals(ws.send('test'), undefined); >+ t.done(); >+ }); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/006-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/006-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..cd805a24b4c3ebbc6dcfafa8a1d96734c7fba22d >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/006-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: send() with unpaired surrogate when readyState is OPEN >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/006.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/006.html >new file mode 100644 >index 0000000000000000000000000000000000000000..bcbd4ca7f4337331d51e3813e9d9e381429f8185 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/006.html >@@ -0,0 +1,25 @@ >+<!doctype html> >+<title>WebSockets: send() with unpaired surrogate when readyState is OPEN</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id="log"></div> >+<script> >+async_test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); >+ ws.onopen = t.step_func(function(e) { >+ // lone low surrogate, lone high surrogate + surrogates in wrong order. >+ ws.send('a\uDC00xb\uD800xc\uDC00\uD800x'); >+ }) >+ ws.onmessage = t.step_func(function(e) { >+ assert_equals(e.data, 'a\uFFFDxb\uFFFDxc\uFFFD\uFFFDx'); >+ ws.onclose = t.step_func(function(e) { >+ ws.onclose = t.unreached_func(); >+ t.step_timeout(() => t.done(), 50); >+ }); >+ ws.close(); >+ }) >+ }); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/007-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/007-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..65e8b3588358f791d1a3d1cfe4c46467cb1dbe3d >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/007-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: close() followed by send() >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/007.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/007.html >new file mode 100644 >index 0000000000000000000000000000000000000000..6b93526fcf5850fa271f7ef0f61a70fe9d393648 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/007.html >@@ -0,0 +1,26 @@ >+<!doctype html> >+<title>WebSockets: close() followed by send()</title> >+ >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+ >+async_test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); >+ ws.onopen = t.step_func(function(e) { >+ // test that nothing strange happens if we send something after close() >+ ws.close(); >+ var sent = ws.send('test'); >+ assert_equals(sent, undefined); >+ }); >+ ws.onclose = t.step_func(function(e) { >+ ws.onclose = t.unreached_func(); >+ t.step_timeout(() => t.done(), 50); >+ }); >+ ws.onerror = ws.onmessage = t.unreached_func(); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/008-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/008-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..08e05bf4bc64f65d2a8a1e97be4826d2fcb25569 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/008-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: send() in onclose >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/008.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/008.html >new file mode 100644 >index 0000000000000000000000000000000000000000..084e05088bcd83f61257659f82a0bf066d36babe >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/008.html >@@ -0,0 +1,25 @@ >+<!doctype html> >+<title>WebSockets: send() in onclose</title> >+ >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); >+ ws.onopen = t.step_func(function(e) { >+ ws.send('Goodbye'); >+ }) >+ ws.onclose = t.step_func(function(e) { >+ // test that nothing strange happens when send()ing in closed state >+ var sent = ws.send('test'); >+ assert_equals(sent, undefined); >+ ws.onclose = t.unreached_func(); >+ t.step_timeout(() => t.done(), 50); >+ }) >+ ws.onerror = t.unreached_func(); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/009-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/009-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..702fa892357d343bcc06e4a7ca674c1304ece3ce >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/009-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: send('') >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/009.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/009.html >new file mode 100644 >index 0000000000000000000000000000000000000000..12fd8b87fc38c4cfd7892b8787da2d5d18131b35 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/009.html >@@ -0,0 +1,26 @@ >+<!doctype html> >+<title>WebSockets: send('')</title> >+ >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t){ >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/empty-message'); >+ ws.onopen = t.step_func(function(e) { >+ ws.send(''); >+ }) >+ ws.onmessage = t.step_func(function(e) { >+ assert_equals(e.data, 'pass'); >+ ws.close(); >+ }); >+ ws.onclose = t.step_func(function(e) { >+ ws.onclose = t.unreached_func(); >+ t.step_timeout(() => t.done(), 50); >+ }); >+ ws.onerror = t.unreached_func(); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/010-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/010-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..c73e86c09ddeb2ec4a1da55cfa93e8f46d157f1f >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/010-expected.txt >@@ -0,0 +1,13 @@ >+ >+PASS Constructor succeeds >+PASS WebSockets: sending non-strings (null) >+PASS WebSockets: sending non-strings (undefined) >+PASS WebSockets: sending non-strings (1) >+PASS WebSockets: sending non-strings ([object Window]) >+PASS WebSockets: sending non-strings ([object HTMLBodyElement]) >+PASS WebSockets: sending non-strings ([object Object]) >+PASS WebSockets: sending non-strings () >+PASS WebSockets: sending non-strings ([object WebSocket]) >+PASS WebSockets: sending non-strings (function (){}) >+PASS WebSockets: sending non-strings (Error) >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/010.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/010.html >new file mode 100644 >index 0000000000000000000000000000000000000000..3688ec417983abdf79279f36d74d719000713156 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/010.html >@@ -0,0 +1,42 @@ >+<!doctype html> >+<title>WebSockets: sending non-strings</title> >+<meta name="timeout" content="long"> >+ >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(outer) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); >+ var stuffToSend = [null, undefined, 1, window, document.body, {}, [], ws, function(){}, new Error()] >+ var tests = []; >+ >+ for (var i=0; i<stuffToSend.length; i++) { >+ tests.push(async_test(document.title + " (" + stuffToSend[i] + ")")); >+ } >+ >+ i = 0; >+ function sendNext() { >+ if (i === stuffToSend.length) { >+ outer.done() >+ ws.close(); >+ } else { >+ var t = tests[i]; >+ ws.onmessage = t.step_func(function(e) { >+ assert_equals(e.data, String(stuffToSend[i])); >+ i++; >+ sendNext(); >+ t.done(); >+ }); >+ ws.onclose = ws.onerror = t.step_func(function() {assert_unreached()}); >+ ws.send(stuffToSend[i]); >+ } >+ } >+ ws.onopen = outer.step_func(function(e) { >+ sendNext(); >+ }); >+}, "Constructor succeeds"); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/011-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/011-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..b44425b8cefcb91dee543a6dca31a0c2078ec23d >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/011-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: sending non-ascii, combining chars and non-BMP >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/011.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/011.html >new file mode 100644 >index 0000000000000000000000000000000000000000..3be974e4140a31c4b2076d8f9d9da7854dac0e84 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/011.html >@@ -0,0 +1,27 @@ >+<!doctype html> >+<title>WebSockets: sending non-ascii, combining chars and non-BMP</title> >+ >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+ >+async_test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); >+ ws.onopen = t.step_func(function(e) { >+ ws.send('\u00E5 a\u030A \uD801\uDC7E'); >+ }); >+ ws.onmessage = t.step_func(function(e) { >+ assert_equals(e.data, '\u00E5 a\u030A \uD801\uDC7E'); >+ ws.onclose = t.step_func(function(e) { >+ ws.onclose = t.unreached_func(); >+ t.step_timeout(() => t.done(), 50); >+ }) >+ ws.close(); >+ }) >+ ws.onclose = ws.onerror = t.unreached_func(); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/012-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/012-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..8ee14a83687d13d0fda04305703e98ef9aa25486 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/012-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: sending null >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/012.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/012.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2667517d86aee902e1236d1e1053e7d7779b8296 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/012.html >@@ -0,0 +1,27 @@ >+<!doctype html> >+<title>WebSockets: sending null</title> >+ >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+ >+async_test(function(t){ >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); >+ ws.onopen = t.step_func(function(e) { >+ ws.send(null); >+ }); >+ ws.onmessage = t.step_func(function(e) { >+ assert_equals(e.data, 'null'); >+ ws.onclose = t.step_func(function(e) { >+ ws.onclose = t.unreached_func(); >+ t.step_timeout(() => t.done(), 50); >+ }) >+ ws.close(); >+ }); >+ ws.onclose = ws.onerror = t.unreached_func(); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/w3c-import.log >new file mode 100644 >index 0000000000000000000000000000000000000000..631278c4be845e62010fc98b7b3998880c8842ee >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/w3c-import.log >@@ -0,0 +1,28 @@ >+The tests in this directory were imported from the W3C repository. >+Do NOT modify these tests directly in WebKit. >+Instead, create a pull request on the WPT github: >+ https://github.com/web-platform-tests/wpt >+ >+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport >+ >+Do NOT modify or remove this file. >+ >+------------------------------------------------------------------------ >+Properties requiring vendor prefixes: >+None >+Property values requiring vendor prefixes: >+None >+------------------------------------------------------------------------ >+List of files: >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/001.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/002.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/003.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/004.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/005.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/006.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/007.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/008.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/009.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/010.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/011.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/012.html >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/001-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/001-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..994e9dd056a819394c4880f4391c6aa9ba11c0b9 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/001-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: getting url >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/001.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/001.html >new file mode 100644 >index 0000000000000000000000000000000000000000..3d1e5e5b89c4d8e45ea26c2116d4ff4702ed7d8a >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/001.html >@@ -0,0 +1,13 @@ >+<!doctype html> >+<title>WebSockets: getting url</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+test(function() { >+ assert_equals((new WebSocket(SCHEME_DOMAIN_PORT)).url, SCHEME_DOMAIN_PORT+'/'); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/002-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/002-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..958b4bf06b1728237425dde122998d6eda81264c >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/002-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: setting url >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/002.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/002.html >new file mode 100644 >index 0000000000000000000000000000000000000000..aa11664020ac412995f6b82824a8f969b8d924fe >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/002.html >@@ -0,0 +1,15 @@ >+<!doctype html> >+<title>WebSockets: setting url</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+test(function() { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); >+ ws.url = SCHEME_DOMAIN_PORT+'/test'; >+ assert_equals(ws.url, SCHEME_DOMAIN_PORT+'/'); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/003-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/003-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..5a3aa61dc45c75b12a030620dfbc7c31998b7628 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/003-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: deleting url >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/003.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/003.html >new file mode 100644 >index 0000000000000000000000000000000000000000..8cc0b79194379851c9c3eb08f0dbc21ff843298e >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/003.html >@@ -0,0 +1,17 @@ >+<!doctype html> >+<title>WebSockets: deleting url</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+test(function() { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); >+ delete ws.url; >+ assert_equals(ws.url, SCHEME_DOMAIN_PORT+'/', 'delete ws.url'); >+ delete WebSocket.prototype.url; >+ assert_equals(ws.url, undefined, 'delete WebSocket.prototype.url'); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/004-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/004-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..24bbe4d27a8aa536bba407ac0f44dfef0bb50464 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/004-expected.txt >@@ -0,0 +1,3 @@ >+ >+FAIL WebSockets: 'URL' assert_equals: expected (undefined) undefined but got (string) "ws://localhost:49001/" >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/004.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/004.html >new file mode 100644 >index 0000000000000000000000000000000000000000..908e2cd9eb1b25bb2bd2d9455c24556f7684e2fd >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/004.html >@@ -0,0 +1,17 @@ >+<!doctype html> >+<title>WebSockets: 'URL'</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+test(function() { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/'); >+ assert_equals(ws.URL, undefined); >+ assert_equals('URL' in ws, false); >+ assert_equals(WebSocket.prototype.URL, undefined); >+ assert_equals('URL' in WebSocket.prototype, false); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/005-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/005-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..426b0437ee9833a9e3e981fff9110f240e69f10a >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/005-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: defineProperty getter for url >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/005.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/005.html >new file mode 100644 >index 0000000000000000000000000000000000000000..f3d89cf2eaed63821dd1cf4cb944243798e0eb2e >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/005.html >@@ -0,0 +1,17 @@ >+<!doctype html> >+<title>WebSockets: defineProperty getter for url</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+test(function() { >+ Object.defineProperty(WebSocket.prototype, 'url', { >+ get: function() { return 'foo'; } >+ }); >+ var ws = new WebSocket('ws://example.invalid/'); >+ assert_equals(ws.url, 'foo'); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/006-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/006-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..fef12f2cb46694bbd8ced7b46eede7be8d14ba93 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/006-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: defineProperty setter for url >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/006.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/006.html >new file mode 100644 >index 0000000000000000000000000000000000000000..124bdbc19e5bab4f1cf73707f73deda1daec1d2d >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/006.html >@@ -0,0 +1,19 @@ >+<!doctype html> >+<title>WebSockets: defineProperty setter for url</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+test(function() { >+ window.setter_ran = false; >+ Object.defineProperty(WebSocket.prototype, 'url', { >+ set: function(v) { window[v] = true; } >+ }); >+ var ws = new WebSocket('ws://example.invalid/'); >+ ws.url = 'setter_ran'; >+ assert_true(setter_ran); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/resolve-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/resolve-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..8be98459eda74c972721e9ab7e12025ed47f231a >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/resolve-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSocket#url: resolving >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/resolve.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/resolve.html >new file mode 100644 >index 0000000000000000000000000000000000000000..ad7db147f2f74dea31b9eb563ba8727ebdf415b0 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/resolve.html >@@ -0,0 +1,14 @@ >+<!doctype html> >+<title>WebSocket#url: resolving</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../../../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+test(function() { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT + '/echo?foo%20bar baz'); >+ assert_equals(ws.url, SCHEME_DOMAIN_PORT + '/echo?foo%20bar%20baz'); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/w3c-import.log >new file mode 100644 >index 0000000000000000000000000000000000000000..16c591d8fc4a50622cb1fad40ac996a9cf8d33a3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/w3c-import.log >@@ -0,0 +1,23 @@ >+The tests in this directory were imported from the W3C repository. >+Do NOT modify these tests directly in WebKit. >+Instead, create a pull request on the WPT github: >+ https://github.com/web-platform-tests/wpt >+ >+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport >+ >+Do NOT modify or remove this file. >+ >+------------------------------------------------------------------------ >+Properties requiring vendor prefixes: >+None >+Property values requiring vendor prefixes: >+None >+------------------------------------------------------------------------ >+List of files: >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/001.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/002.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/003.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/004.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/005.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/006.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/resolve.html >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/keeping-connection-open/001-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/keeping-connection-open/001-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..8825a36956a275ad59feafde4878d1c0d7b39920 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/keeping-connection-open/001-expected.txt >@@ -0,0 +1,5 @@ >+Note: This test takes 20 seconds to run. >+ >+ >+PASS WebSockets: 20s inactivity after handshake >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/keeping-connection-open/001.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/keeping-connection-open/001.html >new file mode 100644 >index 0000000000000000000000000000000000000000..f6d77a65ee8e60f9442eeeb70f9596c614a9b4a9 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/keeping-connection-open/001.html >@@ -0,0 +1,28 @@ >+<!doctype html> >+<title>WebSockets: 20s inactivity after handshake</title> >+<meta name=timeout content=long> >+<p>Note: This test takes 20 seconds to run.</p> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); >+ ws.onclose = ws.onerror = ws.onmessage = t.unreached_func(); >+ ws.onopen = t.step_func(function(e) { >+ t.step_timeout(function() { >+ ws.send('test'); >+ ws.onmessage = t.step_func(function(e) { >+ assert_equals(e.data, 'test'); >+ ws.onclose = t.step_func(function(e) { >+ t.step_timeout(() => t.done(), 50); >+ }); >+ ws.close(); >+ }); >+ }, 20000); >+ }) >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/keeping-connection-open/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/websockets/keeping-connection-open/w3c-import.log >new file mode 100644 >index 0000000000000000000000000000000000000000..b64278c3643ca083e831501d8c839d1d97104a9f >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/keeping-connection-open/w3c-import.log >@@ -0,0 +1,17 @@ >+The tests in this directory were imported from the W3C repository. >+Do NOT modify these tests directly in WebKit. >+Instead, create a pull request on the WPT github: >+ https://github.com/web-platform-tests/wpt >+ >+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport >+ >+Do NOT modify or remove this file. >+ >+------------------------------------------------------------------------ >+Properties requiring vendor prefixes: >+None >+Property values requiring vendor prefixes: >+None >+------------------------------------------------------------------------ >+List of files: >+/LayoutTests/imported/w3c/web-platform-tests/websockets/keeping-connection-open/001.html >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/multi-globals/message-received-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/multi-globals/message-received-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..2c91d46206b2a17ec6d807b9efe57d3e7dbbc42a >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/multi-globals/message-received-expected.txt >@@ -0,0 +1,5 @@ >+ >+ >+PASS ArrayBuffer should be created in the relevant realm of the WebSocket >+PASS Blob should be created in the relevant realm of the WebSocket >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/multi-globals/message-received.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/multi-globals/message-received.html >new file mode 100644 >index 0000000000000000000000000000000000000000..58d8d84c6ea8f58c6ef60d52db79cb1a40d190ec >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/multi-globals/message-received.html >@@ -0,0 +1,34 @@ >+<!DOCTYPE html> >+<title>"A WebSocket message has been received", with multiple globals in play</title> >+<link rel="help" href="https://html.spec.whatwg.org/multipage/comms.html#feedback-from-the-protocol"> >+<link rel="author" title="Domenic Denicola" href="mailto:d@domenic.me"> >+<script src="/resources/testharness.js"></script> >+<script src="/resources/testharnessreport.js"></script> >+<script src="../websocket.sub.js"></script> >+ >+<!-- This is the entry global --> >+ >+<iframe src="support/incumbent.sub.html"></iframe> >+ >+<script> >+"use strict"; >+setup({ explicit_done: true }); >+ >+window.onload = function() { >+ async_test(function(t) { >+ frames[0].setupWebSocket("arraybuffer", t.step_func_done(function(relevantWindow, event) { >+ assert_equals(event.constructor, relevantWindow.MessageEvent); >+ assert_equals(event.data.constructor, relevantWindow.ArrayBuffer); >+ })); >+ }, "ArrayBuffer should be created in the relevant realm of the WebSocket"); >+ >+ async_test(function(t) { >+ frames[0].setupWebSocket("blob", t.step_func_done(function(relevantWindow, event) { >+ assert_equals(event.constructor, relevantWindow.MessageEvent); >+ assert_equals(event.data.constructor, relevantWindow.Blob); >+ })); >+ }, "Blob should be created in the relevant realm of the WebSocket"); >+ >+ done(); >+}; >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/multi-globals/support/incumbent.sub.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/multi-globals/support/incumbent.sub.html >new file mode 100644 >index 0000000000000000000000000000000000000000..a138b7023572a3a7399c7253d9217d8005040e30 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/multi-globals/support/incumbent.sub.html >@@ -0,0 +1,24 @@ >+<!DOCTYPE html> >+<title>Incumbent page used as a test helper</title> >+ >+<iframe src="relevant.html" id="r"></iframe> >+ >+<script> >+"use strict"; >+ >+const relevant = document.querySelector("#r").contentWindow; >+ >+window.setupWebSocket = (binaryType, fn) => { >+ const wsocket = new relevant.WebSocket("ws://{{host}}:{{ports[ws][0]}}/echo"); >+ >+ wsocket.addEventListener("open", () => { >+ wsocket.binaryType = binaryType; >+ wsocket.send(new ArrayBuffer(15)); >+ }); >+ >+ wsocket.addEventListener("message", ev => { >+ fn(relevant, ev); >+ }); >+}; >+ >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/multi-globals/support/relevant.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/multi-globals/support/relevant.html >new file mode 100644 >index 0000000000000000000000000000000000000000..44f42eda493c27f5b4c83a3b53d427a2c51f7ce4 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/multi-globals/support/relevant.html >@@ -0,0 +1,2 @@ >+<!DOCTYPE html> >+<title>Relevant page used as a test helper</title> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/multi-globals/support/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/websockets/multi-globals/support/w3c-import.log >new file mode 100644 >index 0000000000000000000000000000000000000000..6bed11a60c9eb508e0508dbeae84d79d63a30910 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/multi-globals/support/w3c-import.log >@@ -0,0 +1,18 @@ >+The tests in this directory were imported from the W3C repository. >+Do NOT modify these tests directly in WebKit. >+Instead, create a pull request on the WPT github: >+ https://github.com/web-platform-tests/wpt >+ >+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport >+ >+Do NOT modify or remove this file. >+ >+------------------------------------------------------------------------ >+Properties requiring vendor prefixes: >+None >+Property values requiring vendor prefixes: >+None >+------------------------------------------------------------------------ >+List of files: >+/LayoutTests/imported/w3c/web-platform-tests/websockets/multi-globals/support/incumbent.sub.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/multi-globals/support/relevant.html >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/multi-globals/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/websockets/multi-globals/w3c-import.log >new file mode 100644 >index 0000000000000000000000000000000000000000..8cda2a5afeea7a9158cb3030923931d9da797b16 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/multi-globals/w3c-import.log >@@ -0,0 +1,17 @@ >+The tests in this directory were imported from the W3C repository. >+Do NOT modify these tests directly in WebKit. >+Instead, create a pull request on the WPT github: >+ https://github.com/web-platform-tests/wpt >+ >+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport >+ >+Do NOT modify or remove this file. >+ >+------------------------------------------------------------------------ >+Properties requiring vendor prefixes: >+None >+Property values requiring vendor prefixes: >+None >+------------------------------------------------------------------------ >+List of files: >+/LayoutTests/imported/w3c/web-platform-tests/websockets/multi-globals/message-received.html >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/opening-handshake/001-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/opening-handshake/001-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..928f0e2cf5ab5b850d36363fed58853ae560faca >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/opening-handshake/001-expected.txt >@@ -0,0 +1,4 @@ >+CONSOLE MESSAGE: WebSocket connection to 'ws://localhost:49001/invalid' failed: Invalid HTTP version string: FOO >+ >+PASS WebSockets: invalid handshake >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/opening-handshake/001.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/opening-handshake/001.html >new file mode 100644 >index 0000000000000000000000000000000000000000..e0e9b4e2eab47e48ae2f27a71e216c57955ec25a >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/opening-handshake/001.html >@@ -0,0 +1,19 @@ >+<!doctype html> >+<title>WebSockets: invalid handshake</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/invalid'); >+ ws.onclose = t.step_func(function(e) { >+ assert_false(e.wasClean); >+ ws.onclose = t.unreached_func(); >+ t.step_timeout(() => t.done(), 50); >+ }); >+ ws.onmessage = ws.onopen = t.unreached_func(); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/opening-handshake/002-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/opening-handshake/002-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..4460aced24e45c08340eae6c6a2f9008c808d09c >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/opening-handshake/002-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: valid handshake >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/opening-handshake/002.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/opening-handshake/002.html >new file mode 100644 >index 0000000000000000000000000000000000000000..95139e199eb9dc330784ce86aa8aeb60da266137 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/opening-handshake/002.html >@@ -0,0 +1,23 @@ >+<!doctype html> >+<title>WebSockets: valid handshake</title> >+<meta name=timeout content=long> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); >+ ws.onopen = t.step_func(function(e) { >+ ws.onclose = t.step_func(function(e) { >+ assert_equals(e.wasClean, true); >+ ws.onclose = t.unreached_func(); >+ t.step_timeout(() => t.done(), 50); >+ }) >+ ws.close(); >+ }); >+ ws.onerror = ws.onmessage = ws.onclose = t.unreached_func(); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/opening-handshake/003-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/opening-handshake/003-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..e88cc88cd071344f7837c04e57d18d0ee0bd7aa8 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/opening-handshake/003-expected.txt >@@ -0,0 +1,3 @@ >+ >+FAIL WebSockets: origin assert_unreached: Reached unreachable code >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/opening-handshake/003-sets-origin.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/opening-handshake/003-sets-origin.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..99ff60a42f2b2369b6870a8318e09c175083b99f >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/opening-handshake/003-sets-origin.worker-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS origin set in a Worker >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/opening-handshake/003-sets-origin.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/opening-handshake/003-sets-origin.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/opening-handshake/003-sets-origin.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/opening-handshake/003-sets-origin.worker.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/opening-handshake/003-sets-origin.worker.js >new file mode 100644 >index 0000000000000000000000000000000000000000..cc54f2b88416e6b2f665a576e32fd6ae301df54f >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/opening-handshake/003-sets-origin.worker.js >@@ -0,0 +1,18 @@ >+importScripts("/resources/testharness.js"); >+importScripts('../constants.js?pipe=sub'); >+importScripts('../websocket.sub.js'); >+ >+async_test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/origin'); >+ ws.onmessage = t.step_func(function(e) { >+ assert_equals(e.data, location.protocol+'//'+location.host); >+ ws.onclose = t.step_func(function(e) { >+ assert_equals(e.wasClean, true); >+ ws.onclose = t.unreached_func(); >+ t.step_timeout(() => t.done(), 50); >+ }) >+ ws.close(); >+ }) >+ ws.onerror = ws.onclose = t.unreached_func(); >+}, "origin set in a Worker"); >+done(); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/opening-handshake/003.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/opening-handshake/003.html >new file mode 100644 >index 0000000000000000000000000000000000000000..bc8a9e51d19c10cb2f9041efb6915a66a355c34b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/opening-handshake/003.html >@@ -0,0 +1,27 @@ >+<!doctype html> >+<meta charset=utf-8> >+<title>WebSockets: origin</title> >+<meta name="timeout" content="long"> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t) { >+ const url = SCHEME_DOMAIN_PORT+'/origin', >+ ws = new WebSocket(url.replace("://", "://天æ°ã®è¯ãæ¥.")); >+ ws.onmessage = t.step_func(function(e) { >+ assert_equals(e.origin, new URL(url).origin.replace("://", "://xn--n8j6ds53lwwkrqhv28a.")) >+ assert_equals(e.data, location.protocol+'//'+location.host); >+ ws.onclose = t.step_func(function(e) { >+ assert_equals(e.wasClean, true); >+ ws.onclose = t.unreached_func(); >+ t.step_timeout(() => t.done(), 50); >+ }) >+ ws.close(); >+ }) >+ ws.onerror = ws.onclose = t.unreached_func(); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/opening-handshake/005-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/opening-handshake/005-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..35dcc2738577fd001a173eb9f1388208d027fdf9 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/opening-handshake/005-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: proper first line >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/opening-handshake/005.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/opening-handshake/005.html >new file mode 100644 >index 0000000000000000000000000000000000000000..c55cd655cfec59ee1a56ee9d1e08226363d658f4 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/opening-handshake/005.html >@@ -0,0 +1,22 @@ >+<!doctype html> >+<title>WebSockets: proper first line</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/simple_handshake'); >+ ws.onmessage = t.unreached_func(); >+ ws.onopen = t.step_func(function(e) { >+ ws.onclose = t.step_func(function(e) { >+ assert_equals(e.wasClean, true); >+ ws.onclose = t.unreached_func(); >+ t.step_timeout(() => t.done(), 50); >+ }) >+ ws.close(); >+ }) >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/opening-handshake/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/websockets/opening-handshake/w3c-import.log >new file mode 100644 >index 0000000000000000000000000000000000000000..4fbb39ca8f09a1f1b0bac8987583a5197736a40b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/opening-handshake/w3c-import.log >@@ -0,0 +1,21 @@ >+The tests in this directory were imported from the W3C repository. >+Do NOT modify these tests directly in WebKit. >+Instead, create a pull request on the WPT github: >+ https://github.com/web-platform-tests/wpt >+ >+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport >+ >+Do NOT modify or remove this file. >+ >+------------------------------------------------------------------------ >+Properties requiring vendor prefixes: >+None >+Property values requiring vendor prefixes: >+None >+------------------------------------------------------------------------ >+List of files: >+/LayoutTests/imported/w3c/web-platform-tests/websockets/opening-handshake/001.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/opening-handshake/002.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/opening-handshake/003-sets-origin.worker.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/opening-handshake/003.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/opening-handshake/005.html >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/referrer.any-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/referrer.any-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..d5c98930ebe5dae8a69e84a0858e5b618d695733 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/referrer.any-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS Ensure no Referer header is included >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/referrer.any.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/referrer.any.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/referrer.any.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/referrer.any.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/referrer.any.js >new file mode 100644 >index 0000000000000000000000000000000000000000..914af77e6780b68ffdad8ab357c76ab0e2a2f1c6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/referrer.any.js >@@ -0,0 +1,13 @@ >+// META: script=constants.js?pipe=sub >+ >+async_test(t => { >+ const ws = new WebSocket(SCHEME_DOMAIN_PORT + "/referrer"); >+ ws.onmessage = t.step_func_done(e => { >+ assert_equals(e.data, "MISSING AS PER FETCH"); >+ ws.close(); >+ }); >+ >+ // Avoid timeouts in case of failure >+ ws.onclose = t.unreached_func("close"); >+ ws.onerror = t.unreached_func("error"); >+}, "Ensure no Referer header is included"); >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/referrer.any.worker-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/referrer.any.worker-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..d5c98930ebe5dae8a69e84a0858e5b618d695733 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/referrer.any.worker-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS Ensure no Referer header is included >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/referrer.any.worker.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/referrer.any.worker.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2382913528e693b3a5d56c660a45060980b548c3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/referrer.any.worker.html >@@ -0,0 +1 @@ >+<!-- This file is required for WebKit test infrastructure to run the templated test --> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/security/001-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/security/001-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..344a000add82ce48c580d774fdc7ac281b75f195 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/security/001-expected.txt >@@ -0,0 +1,4 @@ >+CONSOLE MESSAGE: WebSocket connection to 'ws://localhost:49001/wrong_accept_key' failed: Error during WebSocket handshake: Sec-WebSocket-Accept mismatch >+ >+PASS WebSockets: wrong accept key >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/security/001.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/security/001.html >new file mode 100644 >index 0000000000000000000000000000000000000000..4cc24598bd31ea466b5f71979c61e6eb42e12b0d >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/security/001.html >@@ -0,0 +1,16 @@ >+<!doctype html> >+<title>WebSockets: wrong accept key</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t) { >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/wrong_accept_key'); >+ ws.onclose = t.step_func(function(e) { >+ t.done(); >+ }); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/security/002-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/security/002-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..e4c3f5ca6ab7d5b4ffc72b1576fbfec04e90b1aa >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/security/002-expected.txt >@@ -0,0 +1,4 @@ >+CONSOLE MESSAGE: line 17: Refused to set unsafe header "Sec-WebSocket-Key" >+ >+PASS WebSockets: check Sec-WebSocket-Key >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/security/002.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/security/002.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2bdc133ec2390789c2533d12a42121dab2e786dc >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/security/002.html >@@ -0,0 +1,20 @@ >+<!doctype html> >+<title>WebSockets: check Sec-WebSocket-Key</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<script> >+async_test(function(t) { >+ var xhr = new XMLHttpRequest(); >+ xhr.onload = t.step_func(function() { >+ assert_equals(xhr.responseText, 'PASS'); >+ t.done(); >+ }); >+ xhr.open("GET", "check.py", true); >+ xhr.setRequestHeader('Sec-WebSocket-Key', 'jW7qmdXj5Kk5jTClF1BN3'); >+ xhr.send(null); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/security/check.py b/LayoutTests/imported/w3c/web-platform-tests/websockets/security/check.py >new file mode 100644 >index 0000000000000000000000000000000000000000..f1414376dcf165ab1c7da18a6f5856796dfec2c2 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/security/check.py >@@ -0,0 +1,2 @@ >+def main(request, response): >+ return "FAIL" if 'Sec-WebSocket-Key' in request.headers else "PASS" >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/security/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/websockets/security/w3c-import.log >new file mode 100644 >index 0000000000000000000000000000000000000000..2d4b87c4466e9ee46ec871b8c79142645c0a53ec >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/security/w3c-import.log >@@ -0,0 +1,19 @@ >+The tests in this directory were imported from the W3C repository. >+Do NOT modify these tests directly in WebKit. >+Instead, create a pull request on the WPT github: >+ https://github.com/web-platform-tests/wpt >+ >+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport >+ >+Do NOT modify or remove this file. >+ >+------------------------------------------------------------------------ >+Properties requiring vendor prefixes: >+None >+Property values requiring vendor prefixes: >+None >+------------------------------------------------------------------------ >+List of files: >+/LayoutTests/imported/w3c/web-platform-tests/websockets/security/001.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/security/002.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/security/check.py >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/001-1.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/001-1.html >new file mode 100644 >index 0000000000000000000000000000000000000000..bd0c36686954938a1d2bf70918bc506da431e296 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/001-1.html >@@ -0,0 +1,28 @@ >+<!doctype html> >+<title>WebSockets: navigating top-level browsing context</title> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<script> >+var controller = opener || parent; >+var t = controller.t; >+var assert_equals = controller.asset_equals; >+var assert_unreached = controller.assert_unreached; >+var uuid = controller.uuid; >+t.add_cleanup(function() {delete sessionStorage[uuid];}); >+t.step(function() { >+ if (sessionStorage[uuid]) { >+ t.done(); >+ } else { >+ sessionStorage[uuid] = 'true'; >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); >+ ws.onopen = t.step_func(function(e) { >+ t.step_timeout(function() { >+ assert_unreached('document was not discarded'); >+ }, 1000); >+ controller.navigate(); >+ }) >+ ws.onerror = ws.onmessage = t.step_func(e => assert_unreached("Got unexpected event " + e.type)); >+ } >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/001-2.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/001-2.html >new file mode 100644 >index 0000000000000000000000000000000000000000..24c419ce1855225a6e37013c9ad3afa8c8101c52 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/001-2.html >@@ -0,0 +1,4 @@ >+<!doctype html> >+<title>WebSockets: navigating top-level browsing context</title> >+<body onload="history.back()"></body> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/001-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/001-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..74411cb84152f3c7d6316d8347ff18823843363b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/001-expected.txt >@@ -0,0 +1,5 @@ >+Test requires popup blocker disabled >+ >+ >+PASS WebSockets: navigating top-level browsing context >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/001.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/001.html >new file mode 100644 >index 0000000000000000000000000000000000000000..56e883c6492be7c6a18100ca275864fe3e284526 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/001.html >@@ -0,0 +1,25 @@ >+<!doctype html> >+<title>WebSockets: navigating top-level browsing context</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=/common/utils.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<p>Test requires popup blocker disabled</p> >+<div id=log></div> >+<script> >+var t = async_test(); >+var w; >+var uuid; >+t.step(function() { >+ uuid = token() >+ w = window.open("001-1.html"); >+ add_result_callback(function() { >+ w.close(); >+ }); >+}); >+navigate = t.step_func(function() { >+ w.location = w.location.href.replace("001-1.html", "001-2.html"); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/002-1.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/002-1.html >new file mode 100644 >index 0000000000000000000000000000000000000000..d151b231f250ab61103db23877e0dc0e80bd1eec >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/002-1.html >@@ -0,0 +1,34 @@ >+<!doctype html> >+<title>WebSockets: navigating top-level browsing context with closed websocket</title> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<script> >+var controller = opener || parent; >+var t = controller.t; >+var assert_equals = controller.asset_equals; >+var assert_unreached = controller.assert_unreached ; >+var uuid = controller.token; >+t.add_cleanup(function() {delete sessionStorage[uuid];}); >+t.step(function() { >+ // this test can fail if the document is unloaded on navigation e.g. due to OOM >+ if (sessionStorage[uuid]) { >+ assert_unreached('document was discarded'); >+ } else { >+ sessionStorage[uuid] = 'true'; >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); >+ ws.onopen = t.step_func(function(e) { >+ >+ t.step_timeout(function() { >+ assert_equals(ws.readyState, ws.CLOSED, 'ws.readyState'); >+ t.done(); >+ }, 4000); >+ ws.close(); >+ ws.onclose = t.step_func(function() { >+ controller.navigate(); >+ }); >+ }) >+ ws.onerror = ws.onmessage = t.step_func(e => assert_unreached("Got unexpected event " + e.type)); >+ } >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/002-2.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/002-2.html >new file mode 100644 >index 0000000000000000000000000000000000000000..9a246a1dd8ddf0d97ab3ccc21120df0670ae32e5 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/002-2.html >@@ -0,0 +1,4 @@ >+<!doctype html> >+<title>WebSockets: navigating top-level browsing context with closed websocket</title> >+<body onload="history.back()"></body> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/002-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/002-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..9273a0aff829ac2d9af5023c40e0c07ea3999cbb >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/002-expected.txt >@@ -0,0 +1,5 @@ >+Test requires popup blocker disabled >+ >+ >+FAIL WebSockets: navigating top-level browsing context with closed websocket assert_unreached: document was discarded Reached unreachable code >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/002.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/002.html >new file mode 100644 >index 0000000000000000000000000000000000000000..94028e703863132a131f8153e3efe762a1fe8905 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/002.html >@@ -0,0 +1,26 @@ >+<!doctype html> >+<title>WebSockets: navigating top-level browsing context with closed websocket</title> >+<meta name=timeout content=long> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=/common/utils.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<p>Test requires popup blocker disabled</p> >+<div id=log></div> >+<script> >+var t = async_test(); >+var w; >+var uuid; >+t.step(function() { >+ uuid = token() >+ w = window.open("002-1.html"); >+ add_result_callback(function() { >+ w.close(); >+ }); >+}); >+navigate = t.step_func(function() { >+ w.location = w.location.href.replace("002-1.html", "002-2.html"); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/003-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/003-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..1221449173ddde30ffe24cfd31cfe3fc5a892a37 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/003-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS WebSockets: navigating nested browsing context >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/003.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/003.html >new file mode 100644 >index 0000000000000000000000000000000000000000..554daf458a907ca77fd344b5064437ff0a4f0ef1 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/003.html >@@ -0,0 +1,14 @@ >+<!doctype html> >+<title>WebSockets: navigating nested browsing context</title> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=/common/utils.js></script> >+<div id=log></div> >+<script> >+var uuid; >+var t = async_test(function() {uuid = token()}); >+var navigate = t.step_func(function() { >+ document.getElementsByTagName("iframe")[0].src = 'data:text/html,<body onload="history.back()">'; >+}); >+</script> >+<iframe src=001-1.html></iframe> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/004-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/004-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..e1b2adad9468963c4a5e02f8f1301968860bd031 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/004-expected.txt >@@ -0,0 +1,3 @@ >+ >+FAIL WebSockets: navigating nested browsing context with closed websocket assert_unreached: document was discarded Reached unreachable code >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/004.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/004.html >new file mode 100644 >index 0000000000000000000000000000000000000000..bb15cd8ef9244a0e9e49d73bb4c8a405ee1a6841 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/004.html >@@ -0,0 +1,16 @@ >+<!doctype html> >+<title>WebSockets: navigating nested browsing context with closed websocket</title> >+<meta name=timeout content=long> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=/common/utils.js></script> >+<div id=log></div> >+<script> >+var uuid; >+var t = async_test(); >+t.step(function() {uuid = token()}); >+var navigate = t.step_func(function() { >+ document.getElementsByTagName("iframe")[0].src = 'data:text/html,<body onload="history.back()">'; >+}); >+</script> >+<iframe src=002-1.html></iframe> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/005-1.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/005-1.html >new file mode 100644 >index 0000000000000000000000000000000000000000..fd70fc5bddee9af48223f044146b4f69953b7cdc >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/005-1.html >@@ -0,0 +1,24 @@ >+<!doctype html> >+<title>WebSockets: navigating nested browsing context with a websocket in top-level</title> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<script> >+var t = opener.t; >+var assert_unreached = opener.assert_unreached; >+var hasRun = false; >+function run(){ >+ var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); >+ ws.onopen = t.step_func(function(e) { >+ t.step_timeout(function() { >+ ws.send('test'); >+ }, 1000); >+ window[0].location = 'data:text/html,<body onload="history.back()">'; >+ ws.onmessage = t.step_func_done(function(e) { >+ ws.close(); >+ }); >+ }); >+ ws.onerror = ws.onmessage = ws.onclose = t.step_func(e => assert_unreached("Got unexpected event " + e.type)); >+} >+</script> >+<iframe src='data:text/html,foo' onload='if (hasRun) return; hasRun = true; t.step(run)'></iframe> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/005-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/005-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..6456dc68754c4be3f1fc11ef440261bcd2a662d8 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/005-expected.txt >@@ -0,0 +1,5 @@ >+ >+PASS WebSockets: navigating nested browsing context with a websocket in top-level >+Test requires popup blocker disabled >+ >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/005.html b/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/005.html >new file mode 100644 >index 0000000000000000000000000000000000000000..81a05f48ead2dea99489ea11f8bfb91b83696733 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/005.html >@@ -0,0 +1,20 @@ >+<!doctype html> >+<title>WebSockets: navigating nested browsing context with a websocket in top-level</title> >+<meta name=timeout content=long> >+<script src=/resources/testharness.js></script> >+<script src=/resources/testharnessreport.js></script> >+<script src=../constants.js?pipe=sub></script> >+<meta name="variant" content=""> >+<meta name="variant" content="?wss"> >+<div id=log></div> >+<p>Test requires popup blocker disabled</p> >+<div id=log></div> >+<script> >+var t = async_test(); >+t.step(function() { >+ var w = window.open("005-1.html"); >+ add_result_callback(function() { >+ w.close(); >+ }); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/w3c-import.log >new file mode 100644 >index 0000000000000000000000000000000000000000..1bd5d117e6cded830af6595a5c8afada1b92cb33 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/w3c-import.log >@@ -0,0 +1,26 @@ >+The tests in this directory were imported from the W3C repository. >+Do NOT modify these tests directly in WebKit. >+Instead, create a pull request on the WPT github: >+ https://github.com/web-platform-tests/wpt >+ >+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport >+ >+Do NOT modify or remove this file. >+ >+------------------------------------------------------------------------ >+Properties requiring vendor prefixes: >+None >+Property values requiring vendor prefixes: >+None >+------------------------------------------------------------------------ >+List of files: >+/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/001-1.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/001-2.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/001.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/002-1.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/002-2.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/002.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/003.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/004.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/005-1.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/unload-a-document/005.html >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/websockets/w3c-import.log >new file mode 100644 >index 0000000000000000000000000000000000000000..2f53eee9c904d880aafc4a669a3a7b60d7a321fc >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/w3c-import.log >@@ -0,0 +1,102 @@ >+The tests in this directory were imported from the W3C repository. >+Do NOT modify these tests directly in WebKit. >+Instead, create a pull request on the WPT github: >+ https://github.com/web-platform-tests/wpt >+ >+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport >+ >+Do NOT modify or remove this file. >+ >+------------------------------------------------------------------------ >+Properties requiring vendor prefixes: >+None >+Property values requiring vendor prefixes: >+None >+------------------------------------------------------------------------ >+List of files: >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-1000-reason.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-1000.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-Reason-124Bytes.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-reason-unpaired-surrogates.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Close-undefined.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-extensions-empty.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-url-with-space.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-array-protocols.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-binaryType-blob.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-protocol-setCorrectly.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url-protocol-string.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-valid-url.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-Secure-verify-url-set-non-default-port.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-asciiSep-protocol-string.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-blocked-port.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-invalid-urls.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-non-absolute-url.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-nonAscii-protocol-string.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-on-worker-shutdown.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocol-with-space.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocols-repeated-case-insensitive.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-protocols-repeated.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-array-protocols.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-protocol-empty.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url-protocol.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-valid-url.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-verify-url-set-non-default-port.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Create-wrong-scheme.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/META.yml >+/LayoutTests/imported/w3c/web-platform-tests/websockets/README.md >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1000-reason.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1000-verify-code.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1000.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1005-verify-code.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-1005.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-2999-reason.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-3000-reason.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-3000-verify-code.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-4999-reason.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-Reason-124Bytes.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-Reason-Unpaired-surrogates.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-onlyReason.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-readyState-Closed.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-readyState-Closing.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-server-initiated-close.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Close-undefined.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-65K-data.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-65K-arraybuffer.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybuffer.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-float32.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-float64.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-int32.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint16-offset-length.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint32-offset.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint8-offset-length.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-arraybufferview-uint8-offset.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-binary-blob.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-data.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-null.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-paired-surrogates.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-unicode-data.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Secure-Send-unpaired-surrogates.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-0byte-data.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-65K-data.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-Unpaired-Surrogates.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-before-open.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-65K-arraybuffer.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybuffer.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybufferview-int16-offset.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-arraybufferview-int8.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-binary-blob.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-data.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-data.worker.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-null.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-paired-surrogates.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/Send-unicode-data.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/basic-auth.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/binaryType-wrong-value.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/bufferedAmount-unchanged-by-sync-xhr.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/close-invalid.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/constants.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/constructor.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/eventhandlers.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/extended-payload-length.html >+/LayoutTests/imported/w3c/web-platform-tests/websockets/referrer.any.js >+/LayoutTests/imported/w3c/web-platform-tests/websockets/websocket.sub.js >diff --git a/LayoutTests/imported/w3c/web-platform-tests/websockets/websocket.sub.js b/LayoutTests/imported/w3c/web-platform-tests/websockets/websocket.sub.js >new file mode 100644 >index 0000000000000000000000000000000000000000..651024eea6553769aef2c8c95ffc831174d38f3b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/websockets/websocket.sub.js >@@ -0,0 +1,107 @@ >+var __SERVER__NAME = "{{host}}"; >+var __PORT = {{ports[ws][0]}}; >+var __SECURE__PORT = {{ports[wss][0]}}; >+var __NEW__PORT = __PORT; //All ports are non-default for now >+var __NEW__SECURE__PORT = __SECURE__PORT; //All ports are non-default for now >+var __PATH = "echo"; >+var wsocket; >+var data; >+ >+function IsWebSocket() { >+ if (!self.WebSocket) { >+ assert_true(false, "Browser does not support WebSocket"); >+ } >+} >+ >+function CreateWebSocketNonAbsolute() { >+ IsWebSocket(); >+ var url = __SERVER__NAME; >+ wsocket = new WebSocket(url); >+} >+ >+function CreateWebSocketNonWsScheme() { >+ IsWebSocket(); >+ var url = "http://" + __SERVER__NAME + ":" + __PORT + "/" + __PATH; >+ wsocket = new WebSocket(url); >+} >+ >+function CreateWebSocketNonAsciiProtocol(nonAsciiProtocol) { >+ IsWebSocket(); >+ var url = "ws://" + __SERVER__NAME + ":" + __PORT + "/" + __PATH; >+ wsocket = new WebSocket(url, nonAsciiProtocol); >+} >+ >+function CreateWebSocketWithAsciiSep(asciiWithSep) { >+ IsWebSocket(); >+ var url = "ws://" + __SERVER__NAME + ":" + __PORT + "/" + __PATH; >+ wsocket = new WebSocket(url, asciiWithSep); >+} >+ >+function CreateWebSocketWithBlockedPort(blockedPort) { >+ IsWebSocket(); >+ var url = "ws://" + __SERVER__NAME + ":" + blockedPort + "/" + __PATH; >+ return new WebSocket(url); >+} >+ >+function CreateWebSocketWithSpaceInUrl(urlWithSpace) { >+ IsWebSocket(); >+ var url = "ws://" + urlWithSpace + ":" + __PORT + "/" + __PATH; >+ wsocket = new WebSocket(url); >+} >+ >+function CreateWebSocketWithSpaceInProtocol(protocolWithSpace) { >+ IsWebSocket(); >+ var url = "ws://" + __SERVER__NAME + ":" + __PORT + "/" + __PATH; >+ wsocket = new WebSocket(url, protocolWithSpace); >+} >+ >+function CreateWebSocketWithRepeatedProtocols() { >+ IsWebSocket(); >+ var url = "ws://" + __SERVER__NAME + ":" + __PORT + "/" + __PATH; >+ wsocket = new WebSocket(url, ["echo", "echo"]); >+} >+ >+function CreateWebSocketWithRepeatedProtocolsCaseInsensitive() { >+ IsWebSocket(); >+ var url = "ws://" + __SERVER__NAME + ":" + __PORT + "/" + __PATH; >+ wsocket = new WebSocket(url, ["echo", "eCho"]); >+} >+ >+function CreateWebSocket(isSecure, isProtocol, isProtocols) { >+ IsWebSocket(); >+ var url; >+ if (isSecure) { >+ if (__SECURE__PORT === null) { >+ throw new Error("wss not yet supported"); >+ } >+ url = "wss://" + __SERVER__NAME + ":" + __SECURE__PORT + "/" + __PATH; >+ } >+ else { >+ url = "ws://" + __SERVER__NAME + ":" + __PORT + "/" + __PATH; >+ } >+ >+ if (isProtocol) { >+ wsocket = new WebSocket(url, "echo"); >+ } >+ else if (isProtocols) { >+ wsocket = new WebSocket(url, ["echo", "chat"]); >+ } >+ else { >+ wsocket = new WebSocket(url); >+ } >+ return wsocket; >+} >+ >+function CreateControlWebSocket(isSecure) { >+ IsWebSocket(); >+ var url; >+ if (isSecure) { >+ url = "wss://" + __SERVER__NAME + ":" + __SECURE__PORT + "/control"; >+ } >+ else { >+ url = "ws://" + __SERVER__NAME + ":" + __PORT + "/control"; >+ } >+ >+ return new WebSocket(url); >+} >+ >diff --git a/LayoutTests/platform/mac-wk1/TestExpectations b/LayoutTests/platform/mac-wk1/TestExpectations >index af247e89ed9b1529e578a1364eca641352b9f9bf..c3dd38352d18a696eb9980d854383635ad5ed5c7 100644 >--- a/LayoutTests/platform/mac-wk1/TestExpectations >+++ b/LayoutTests/platform/mac-wk1/TestExpectations >@@ -59,6 +59,21 @@ inspector/page/overrideSetting-MockCaptureDevicesEnabled.html [ Skip ] > fast/forms/datalist [ WontFix ] > imported/w3c/web-platform-tests/html/semantics/forms/the-datalist-element [ WontFix ] > >+imported/w3c/web-platform-tests/websockets/Close-1000-reason.any.html [ Pass Failure ] >+imported/w3c/web-platform-tests/websockets/Close-1000-reason.any.worker.html [ Pass Failure ] >+imported/w3c/web-platform-tests/websockets/binary/001.html [ Pass Failure ] >+imported/w3c/web-platform-tests/websockets/closing-handshake/002.html [ Pass Failure ] >+imported/w3c/web-platform-tests/websockets/closing-handshake/003.html [ Pass Failure ] >+imported/w3c/web-platform-tests/websockets/constructor/006.html [ Pass Failure ] >+imported/w3c/web-platform-tests/websockets/constructor/009.html [ Pass Failure ] >+imported/w3c/web-platform-tests/websockets/cookies/001.html [ Pass Failure ] >+imported/w3c/web-platform-tests/websockets/cookies/002.html [ Pass Failure ] >+imported/w3c/web-platform-tests/websockets/interfaces/CloseEvent/clean-close.html [ Pass Failure ] >+imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-arraybuffer.html [ Pass Failure ] >+imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-blob.html [ Pass Failure ] >+imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/015.html [ Pass Failure ] >+imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/readyState/006.html [ Pass Failure ] >+ > # ShouldOpenExternalURLs not yet supported in WK1 > loader/navigation-policy [ Skip ] > >diff --git a/LayoutTests/tests-options.json b/LayoutTests/tests-options.json >index 4a2419a12233f068b916f1b3e246bfca4a686291..c3a1d39ac1791a6168de83ff9ac41fb60b632e41 100644 >--- a/LayoutTests/tests-options.json >+++ b/LayoutTests/tests-options.json >@@ -1760,6 +1760,60 @@ > "imported/w3c/web-platform-tests/webrtc/RTCRtpSender-transport.https.html": [ > "slow" > ], >+ "imported/w3c/web-platform-tests/websockets/binary/002.html": [ >+ "slow" >+ ], >+ "imported/w3c/web-platform-tests/websockets/binary/004.html": [ >+ "slow" >+ ], >+ "imported/w3c/web-platform-tests/websockets/constructor/013.html": [ >+ "slow" >+ ], >+ "imported/w3c/web-platform-tests/websockets/constructor/014.html": [ >+ "slow" >+ ], >+ "imported/w3c/web-platform-tests/websockets/cookies/005.html": [ >+ "slow" >+ ], >+ "imported/w3c/web-platform-tests/websockets/cookies/007.html": [ >+ "slow" >+ ], >+ "imported/w3c/web-platform-tests/websockets/extended-payload-length.html": [ >+ "slow" >+ ], >+ "imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-large.html": [ >+ "slow" >+ ], >+ "imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/close/close-connecting.html": [ >+ "slow" >+ ], >+ "imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/events/016.html": [ >+ "slow" >+ ], >+ "imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/005.html": [ >+ "slow" >+ ], >+ "imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/010.html": [ >+ "slow" >+ ], >+ "imported/w3c/web-platform-tests/websockets/keeping-connection-open/001.html": [ >+ "slow" >+ ], >+ "imported/w3c/web-platform-tests/websockets/opening-handshake/002.html": [ >+ "slow" >+ ], >+ "imported/w3c/web-platform-tests/websockets/opening-handshake/003.html": [ >+ "slow" >+ ], >+ "imported/w3c/web-platform-tests/websockets/unload-a-document/002.html": [ >+ "slow" >+ ], >+ "imported/w3c/web-platform-tests/websockets/unload-a-document/004.html": [ >+ "slow" >+ ], >+ "imported/w3c/web-platform-tests/websockets/unload-a-document/005.html": [ >+ "slow" >+ ], > "imported/w3c/web-platform-tests/xhr/progress-events-response-data-gzip.htm": [ > "slow" > ],
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 198774
:
371905
|
371923
|
371929
|
371930
|
371932
|
371933
|
371963
| 371969