Title: [200145] trunk/LayoutTests
Revision
200145
Author
[email protected]
Date
2016-04-27 12:45:17 -0700 (Wed, 27 Apr 2016)

Log Message

Add layout tests for legacy HTTP headers in WebSockets
https://bugs.webkit.org/show_bug.cgi?id=157095

Patch by John Wilander <[email protected]> on 2016-04-27
Reviewed by Alexey Proskuryakov.

* http/tests/websocket/tests/hybi/handshake-ok-with-legacy-sec-websocket-response-headers-expected.txt: Added.
* http/tests/websocket/tests/hybi/handshake-ok-with-legacy-sec-websocket-response-headers.html: Added.
* http/tests/websocket/tests/hybi/handshake-ok-with-legacy-sec-websocket-response-headers_wsh.py: Added.
(web_socket_do_extra_handshake):
(web_socket_transfer_data):
    Test for legacy response headers 'Sec-WebSocket-Location' and 'Sec-WebSocket-Origin'.
* http/tests/websocket/tests/hybi/handshake-ok-with-legacy-websocket-response-headers-expected.txt: Added.
* http/tests/websocket/tests/hybi/handshake-ok-with-legacy-websocket-response-headers.html: Added.
* http/tests/websocket/tests/hybi/handshake-ok-with-legacy-websocket-response-headers_wsh.py: Added.
(web_socket_do_extra_handshake):
(web_socket_transfer_data):
    Test for legacy response headers 'WebSocket-Location' and 'WebSocket-Origin'.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (200144 => 200145)


--- trunk/LayoutTests/ChangeLog	2016-04-27 19:40:52 UTC (rev 200144)
+++ trunk/LayoutTests/ChangeLog	2016-04-27 19:45:17 UTC (rev 200145)
@@ -1,3 +1,23 @@
+2016-04-27  John Wilander  <[email protected]>
+
+        Add layout tests for legacy HTTP headers in WebSockets
+        https://bugs.webkit.org/show_bug.cgi?id=157095
+
+        Reviewed by Alexey Proskuryakov.
+
+        * http/tests/websocket/tests/hybi/handshake-ok-with-legacy-sec-websocket-response-headers-expected.txt: Added.
+        * http/tests/websocket/tests/hybi/handshake-ok-with-legacy-sec-websocket-response-headers.html: Added.
+        * http/tests/websocket/tests/hybi/handshake-ok-with-legacy-sec-websocket-response-headers_wsh.py: Added.
+        (web_socket_do_extra_handshake):
+        (web_socket_transfer_data):
+            Test for legacy response headers 'Sec-WebSocket-Location' and 'Sec-WebSocket-Origin'.
+        * http/tests/websocket/tests/hybi/handshake-ok-with-legacy-websocket-response-headers-expected.txt: Added.
+        * http/tests/websocket/tests/hybi/handshake-ok-with-legacy-websocket-response-headers.html: Added.
+        * http/tests/websocket/tests/hybi/handshake-ok-with-legacy-websocket-response-headers_wsh.py: Added.
+        (web_socket_do_extra_handshake):
+        (web_socket_transfer_data):
+            Test for legacy response headers 'WebSocket-Location' and 'WebSocket-Origin'.
+
 2016-04-27  Adam Bergkvist  <[email protected]>
 
         WebRTC: RTCIceCandidate don't need a custom bindings

Added: trunk/LayoutTests/http/tests/websocket/tests/hybi/handshake-ok-with-legacy-sec-websocket-response-headers-expected.txt (0 => 200145)


--- trunk/LayoutTests/http/tests/websocket/tests/hybi/handshake-ok-with-legacy-sec-websocket-response-headers-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/http/tests/websocket/tests/hybi/handshake-ok-with-legacy-sec-websocket-response-headers-expected.txt	2016-04-27 19:45:17 UTC (rev 200145)
@@ -0,0 +1,9 @@
+Test whether WebSocket handshake is OK with legacy response headers 'Sec-WebSocket-Location' and 'Sec-WebSocket-Origin'.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+PASS closeEvent.isTrusted is true
+PASS successfullyParsed is true
+
+TEST COMPLETE
+

Added: trunk/LayoutTests/http/tests/websocket/tests/hybi/handshake-ok-with-legacy-sec-websocket-response-headers.html (0 => 200145)


--- trunk/LayoutTests/http/tests/websocket/tests/hybi/handshake-ok-with-legacy-sec-websocket-response-headers.html	                        (rev 0)
+++ trunk/LayoutTests/http/tests/websocket/tests/hybi/handshake-ok-with-legacy-sec-websocket-response-headers.html	2016-04-27 19:45:17 UTC (rev 200145)
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <script src=""
+</head>
+<body>
+<div id="description"></div>
+<div id="console"></div>
+<script>
+    description("Test whether WebSocket handshake is OK with legacy response headers 'Sec-WebSocket-Location' and 'Sec-WebSocket-Origin'.");
+
+    window.jsTestIsAsync = true;
+
+    var url = ""
+    var ws = new WebSocket(url);
+    var closeEvent;
+
+    ws._onopen_ = function() {
+        ws.close();
+    };
+
+    ws._onclose_ = function(event) {
+        closeEvent = event;
+        shouldBeTrue("closeEvent.isTrusted");
+        finishJSTest();
+    };
+</script>
+<script src=""
+</body>
+</html>
\ No newline at end of file

Added: trunk/LayoutTests/http/tests/websocket/tests/hybi/handshake-ok-with-legacy-sec-websocket-response-headers_wsh.py (0 => 200145)


--- trunk/LayoutTests/http/tests/websocket/tests/hybi/handshake-ok-with-legacy-sec-websocket-response-headers_wsh.py	                        (rev 0)
+++ trunk/LayoutTests/http/tests/websocket/tests/hybi/handshake-ok-with-legacy-sec-websocket-response-headers_wsh.py	2016-04-27 19:45:17 UTC (rev 200145)
@@ -0,0 +1,19 @@
+from mod_pywebsocket import handshake
+from mod_pywebsocket import stream
+from mod_pywebsocket.handshake.hybi import compute_accept
+
+
+def web_socket_do_extra_handshake(request):
+    message = 'HTTP/1.1 101 Switching Protocols\r\n'
+    message += 'Upgrade: websocket\r\n'
+    message += 'Connection: Upgrade\r\n'
+    message += 'Sec-WebSocket-Origin: http://localhost:8880\r\n'
+    message += 'Sec-WebSocket-Location: ws://localhost:8880/bogus\r\n'
+    message += 'Sec-WebSocket-Accept: %s\r\n' % compute_accept(request.headers_in['Sec-WebSocket-Key'])[0]
+    message += '\r\n'
+    request.connection.write(message)
+    raise handshake.AbortedByUserException('Abort the connection') # Prevents pywebsocket from sending its own handshake message.
+
+
+def web_socket_transfer_data(request):
+    pass

Added: trunk/LayoutTests/http/tests/websocket/tests/hybi/handshake-ok-with-legacy-websocket-response-headers-expected.txt (0 => 200145)


--- trunk/LayoutTests/http/tests/websocket/tests/hybi/handshake-ok-with-legacy-websocket-response-headers-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/http/tests/websocket/tests/hybi/handshake-ok-with-legacy-websocket-response-headers-expected.txt	2016-04-27 19:45:17 UTC (rev 200145)
@@ -0,0 +1,9 @@
+Test whether WebSocket handshake is OK with legacy response headers 'WebSocket-Location' and 'WebSocket-Origin'.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+PASS closeEvent.isTrusted is true
+PASS successfullyParsed is true
+
+TEST COMPLETE
+

Added: trunk/LayoutTests/http/tests/websocket/tests/hybi/handshake-ok-with-legacy-websocket-response-headers.html (0 => 200145)


--- trunk/LayoutTests/http/tests/websocket/tests/hybi/handshake-ok-with-legacy-websocket-response-headers.html	                        (rev 0)
+++ trunk/LayoutTests/http/tests/websocket/tests/hybi/handshake-ok-with-legacy-websocket-response-headers.html	2016-04-27 19:45:17 UTC (rev 200145)
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <script src=""
+</head>
+<body>
+<div id="description"></div>
+<div id="console"></div>
+<script>
+    description("Test whether WebSocket handshake is OK with legacy response headers 'WebSocket-Location' and 'WebSocket-Origin'.");
+
+    window.jsTestIsAsync = true;
+
+    var url = ""
+    var ws = new WebSocket(url);
+    var closeEvent;
+
+    ws._onopen_ = function() {
+        ws.close();
+    };
+
+    ws._onclose_ = function(event) {
+        closeEvent = event;
+        shouldBeTrue("closeEvent.isTrusted");
+        finishJSTest();
+    };
+</script>
+<script src=""
+</body>
+</html>
\ No newline at end of file

Added: trunk/LayoutTests/http/tests/websocket/tests/hybi/handshake-ok-with-legacy-websocket-response-headers_wsh.py (0 => 200145)


--- trunk/LayoutTests/http/tests/websocket/tests/hybi/handshake-ok-with-legacy-websocket-response-headers_wsh.py	                        (rev 0)
+++ trunk/LayoutTests/http/tests/websocket/tests/hybi/handshake-ok-with-legacy-websocket-response-headers_wsh.py	2016-04-27 19:45:17 UTC (rev 200145)
@@ -0,0 +1,19 @@
+from mod_pywebsocket import handshake
+from mod_pywebsocket import stream
+from mod_pywebsocket.handshake.hybi import compute_accept
+
+
+def web_socket_do_extra_handshake(request):
+    message = 'HTTP/1.1 101 Switching Protocols\r\n'
+    message += 'Upgrade: websocket\r\n'
+    message += 'Connection: Upgrade\r\n'
+    message += 'WebSocket-Origin: http://localhost:8880\r\n'
+    message += 'WebSocket-Location: ws://localhost:8880/bogus\r\n'
+    message += 'Sec-WebSocket-Accept: %s\r\n' % compute_accept(request.headers_in['Sec-WebSocket-Key'])[0]
+    message += '\r\n'
+    request.connection.write(message)
+    raise handshake.AbortedByUserException('Abort the connection') # Prevents pywebsocket from sending its own handshake message.
+
+
+def web_socket_transfer_data(request):
+    pass
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to