| 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..5e13ead89eaccef4265118866376aedbfc52e68c
|
| --- /dev/null
|
| +++ b/LayoutTests/http/tests/websocket/permessage-deflate-split-frames_wsh.py
|
| @@ -0,0 +1,43 @@
|
| +# 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.stream import create_header
|
| +
|
| +
|
| +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
|
|
|