Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(388)

Unified Diff: LayoutTests/http/tests/websocket/permessage-deflate-split-frames_wsh.py

Issue 314043002: [WebSocket] Add tests for permessage deflate split frames. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: LayoutTests/http/tests/websocket/permessage-deflate-split-frames_wsh.py
diff --git a/LayoutTests/http/tests/websocket/permessage-deflate-split-frames_wsh.py b/LayoutTests/http/tests/websocket/permessage-deflate-split-frames_wsh.py
new file mode 100644
index 0000000000000000000000000000000000000000..3c458930b9abe3351afec0666d080e8962c43592
--- /dev/null
+++ b/LayoutTests/http/tests/websocket/permessage-deflate-split-frames_wsh.py
@@ -0,0 +1,45 @@
+# Copyright 2014 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+
+from mod_pywebsocket import common
+from mod_pywebsocket.extensions import PerMessageDeflateExtensionProcessor
+from mod_pywebsocket.extensions import ExtensionProcessorInterface
tyoshino (SeeGerritForStatus) 2014/06/05 05:49:44 unnecessary?
yhirano 2014/06/05 05:57:21 Done.
+from mod_pywebsocket.common import ExtensionParameter
tyoshino (SeeGerritForStatus) 2014/06/05 05:49:44 unnecessary?
yhirano 2014/06/05 05:57:21 Done.
+from mod_pywebsocket.stream import Frame, create_header
tyoshino (SeeGerritForStatus) 2014/06/05 05:49:44 Frame is unnecessary?
yhirano 2014/06/05 05:57:21 Done.
+
+
+def _get_permessage_deflate_extension_processor(request):
+ for extension_processor in request.ws_extension_processors:
+ if isinstance(extension_processor,
+ PerMessageDeflateExtensionProcessor):
+ return extension_processor
+ return None
+
+
+def web_socket_do_extra_handshake(request):
+ processor = _get_permessage_deflate_extension_processor(request)
+ assert processor is not None
+ # Remove extension processors other than
+ # PerMessageDeflateExtensionProcessor to avoid conflict.
+ request.ws_extension_processors = [processor]
+
+
+def web_socket_transfer_data(request):
+ line = request.ws_stream.receive_message()
+ # Hello
+ payload = b'\xf2\x48\xcd\xc9\xc9\x07\x00\x00\x00\xff\xff'
+ # Strip \x00\x00\xff\xff
+ stripped = payload[:-4]
+
+ header = create_header(common.OPCODE_TEXT, len(payload),
+ fin=0, rsv1=1, rsv2=0, rsv3=0, mask=False)
+ request.ws_stream._write(header + payload)
+
+ header = create_header(common.OPCODE_CONTINUATION, len(stripped),
+ fin=1, rsv1=0, rsv2=0, rsv3=0, mask=False)
+ request.ws_stream._write(header + stripped)
+
+
+# vi:sts=4 sw=4 et

Powered by Google App Engine
This is Rietveld 408576698