2011-07-05 Yuta Kitamura <yutak@chromium.org>
[WebKit-https.git] / LayoutTests / http / tests / websocket / tests / hixie76 / handshake-fail-by-maxlength_wsh.py
1 # Copyright (C) Research In Motion Limited 2011. All rights reserved.
2 #
3 # Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
4 # following conditions are met:
5 #
6 # 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following
7 # disclaimer.
8 #
9 # 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the
10 # following disclaimer in the documentation and/or other materials provided with the distribution.
11 #
12 # THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS “AS IS” AND ANY EXPRESS OR
13 # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
14 # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
15 # APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
16 # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
17 # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
18 # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
19 # TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
20 # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
21
22
23 def web_socket_do_extra_handshake(request):
24     # This will cause the handshake to fail because it pushes the length of the
25     # status line past 1024 characters
26     msg = '.' * 1024
27     msg += 'HTTP/1.1 101 WebSocket Protocol Handshake\r\n'
28     msg += 'Upgrade: WebSocket\r\n'
29     msg += 'Connection: Upgrade\r\n'
30     msg += 'Sec-WebSocket-Location: ' + request.ws_location + '\r\n'
31     msg += 'Sec-WebSocket-Origin: ' + request.ws_origin + '\r\n'
32     msg += '\r\n'
33     msg += request.ws_challenge_md5
34     request.connection.write(msg)
35     raise Exception('abort the connection') # Prevents pywebsocket from sending its own handshake message.
36
37
38 def web_socket_transfer_data(request):
39     pass