summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/websockets/handlers/delayed-passive-close_wsh.py
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/websockets/handlers/delayed-passive-close_wsh.py')
-rwxr-xr-xtesting/web-platform/tests/websockets/handlers/delayed-passive-close_wsh.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/testing/web-platform/tests/websockets/handlers/delayed-passive-close_wsh.py b/testing/web-platform/tests/websockets/handlers/delayed-passive-close_wsh.py
new file mode 100755
index 0000000000..7d55b88ecc
--- /dev/null
+++ b/testing/web-platform/tests/websockets/handlers/delayed-passive-close_wsh.py
@@ -0,0 +1,27 @@
+#!/usr/bin/python
+from mod_pywebsocket import common
+import time
+
+def web_socket_do_extra_handshake(request):
+ pass
+
+
+def web_socket_transfer_data(request):
+ # Wait for the close frame to arrive.
+ request.ws_stream.receive_message()
+
+
+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
+
+ # The browser may error the connection if the closing handshake takes too
+ # long, but hopefully no browser will have a timeout this short.
+ time.sleep(1)
+
+ return code, reason