Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / LayoutTests / http / tests / websocket / pong_wsh.py
1 import cgi
2 from mod_pywebsocket import common
3 from mod_pywebsocket import msgutil
4
5
6 def web_socket_do_extra_handshake(request):
7     pass
8
9
10 def web_socket_transfer_data(request):
11     send_payload = ''
12     r = request.ws_resource.split('?', 1)
13     if len(r) == 2:
14         params = cgi.parse_qs(r[1])
15         if 'payload' in params:
16             send_payload = params['payload'][0]
17
18     msgutil.send_ping(request, send_payload)
19
20     # We need to use an internal function to detect a pong frame from the client.
21     opcode, recv_payload, final, reserved1, reserved2, reserved3 = request.ws_stream._receive_frame()
22     if opcode == common.OPCODE_PONG and recv_payload == send_payload and final and not reserved1 and not reserved2 and not reserved3:
23         msgutil.send_message(request, 'PASS')
24     else:
25         msgutil.send_message(request,
26                              'FAIL: Received unexpected frame: opcode = %r, payload = %r, final = %r, reserved1 = %r, reserved2 = %r, reserved3 = %r' %
27                              (opcode, recv_payload, final, reserved1, reserved2, reserved3))