Пример #1
0
    def test_receive_unsolicited_pong(self):
        # Unsolicited pong is allowed from HyBi 07.
        request = _create_request(('\x8a\x85', 'Hello'), ('\x81\x85', 'World'))
        msgutil.receive_message(request)

        request = _create_request(('\x8a\x85', 'Hello'), ('\x81\x85', 'World'))
        msgutil.send_ping(request, 'Jumbo')
        # Body mismatch.
        msgutil.receive_message(request)
Пример #2
0
    def test_receive_unsolicited_pong(self):
        # Unsolicited pong is allowed from HyBi 07.
        request = _create_request(("\x8a\x85", "Hello"), ("\x81\x85", "World"))
        msgutil.receive_message(request)

        request = _create_request(("\x8a\x85", "Hello"), ("\x81\x85", "World"))
        msgutil.send_ping(request, "Jumbo")
        # Body mismatch.
        msgutil.receive_message(request)
Пример #3
0
    def test_receive_unsolicited_pong(self):
        # Unsolicited pong is allowed from HyBi 07.
        request = _create_request(
            ('\x8a\x85', 'Hello'), ('\x81\x85', 'World'))
        msgutil.receive_message(request)

        request = _create_request(
            ('\x8a\x85', 'Hello'), ('\x81\x85', 'World'))
        msgutil.send_ping(request, 'Jumbo')
        # Body mismatch.
        msgutil.receive_message(request)
Пример #4
0
def web_socket_transfer_data(request):
    msgutil.send_ping(request, 'Hello, world!')

    # We need to use an internal function to detect a pong frame from the client.
    opcode, payload, final, reserved1, reserved2, reserved3 = request.ws_stream._receive_frame()
    if opcode == common.OPCODE_PONG and payload == 'Hello, world!' and final and not reserved1 and not reserved2 and not reserved3:
        msgutil.send_message(request, 'PASS')
    else:
        msgutil.send_message(request,
                             'FAIL: Received unexpected frame: opcode = %r, payload = %r, final = %r, reserved1 = %r, reserved2 = %r, reserved3 = %r' %
                             (opcode, payload, final, reserved1, reserved2, reserved3))
Пример #5
0
def web_socket_transfer_data(request):
    msgutil.send_ping(request, 'Hello, world!')

    # We need to use an internal function to detect a pong frame from the client.
    opcode, payload, final, reserved1, reserved2, reserved3 = request.ws_stream._receive_frame()
    if opcode == common.OPCODE_PONG and payload == b'Hello, world!' and final and not reserved1 and not reserved2 and not reserved3:
        msgutil.send_message(request, 'PASS')
    else:
        msgutil.send_message(request,
                             'FAIL: Received unexpected frame: opcode = %r, payload = %r, final = %r, reserved1 = %r, reserved2 = %r, reserved3 = %r' %
                             (opcode, payload, final, reserved1, reserved2, reserved3))
Пример #6
0
    def test_receive_pong(self):
        """Tests receiving a pong control frame."""
        def handler(request, message):
            request.called = True

        request = _create_request(('\x8a\x85', 'Hello'), ('\x81\x85', 'World'))
        request.on_pong_handler = handler
        msgutil.send_ping(request, 'Hello')
        self.assertEqual('\x89\x05Hello', request.connection.written_data())
        # Valid pong is received, but receive_message won't return for it.
        self.assertEqual('World', msgutil.receive_message(request))
        # Check that nothing was written after receive_message call.
        self.assertEqual('\x89\x05Hello', request.connection.written_data())

        self.assertTrue(request.called)
Пример #7
0
    def test_receive_pong(self):
        """Tests receiving a pong control frame."""

        def handler(request, message):
            request.called = True

        request = _create_request(("\x8a\x85", "Hello"), ("\x81\x85", "World"))
        request.on_pong_handler = handler
        msgutil.send_ping(request, "Hello")
        self.assertEqual("\x89\x05Hello", request.connection.written_data())
        # Valid pong is received, but receive_message won't return for it.
        self.assertEqual("World", msgutil.receive_message(request))
        # Check that nothing was written after receive_message call.
        self.assertEqual("\x89\x05Hello", request.connection.written_data())

        self.assertTrue(request.called)
Пример #8
0
def web_socket_transfer_data(request):
    send_payload = ''
    r = request.ws_resource.split('?', 1)
    if len(r) == 2:
        params = cgi.parse_qs(r[1])
        if 'payload' in params:
            send_payload = params['payload'][0]

    msgutil.send_ping(request, send_payload)

    # We need to use an internal function to detect a pong frame from the client.
    opcode, recv_payload, final, reserved1, reserved2, reserved3 = request.ws_stream._receive_frame()
    if opcode == common.OPCODE_PONG and recv_payload == send_payload and final and not reserved1 and not reserved2 and not reserved3:
        msgutil.send_message(request, 'PASS')
    else:
        msgutil.send_message(request,
                             'FAIL: Received unexpected frame: opcode = %r, payload = %r, final = %r, reserved1 = %r, reserved2 = %r, reserved3 = %r' %
                             (opcode, recv_payload, final, reserved1, reserved2, reserved3))
Пример #9
0
 def test_send_longest_ping(self):
     request = _create_request()
     msgutil.send_ping(request, 'a' * 125)
     self.assertEqual('\x89\x7d' + 'a' * 125,
                      request.connection.written_data())
Пример #10
0
 def test_send_ping(self):
     request = _create_request()
     msgutil.send_ping(request, 'Hello World!')
     self.assertEqual('\x89\x0cHello World!',
                      request.connection.written_data())
Пример #11
0
 def test_send_ping(self):
     request = _create_request()
     msgutil.send_ping(request, 'Hello World!')
     self.assertEqual('\x89\x0cHello World!',
                      request.connection.written_data())
Пример #12
0
 def test_send_longest_ping(self):
     request = _create_request()
     msgutil.send_ping(request, 'a' * 125)
     self.assertEqual('\x89\x7d' + 'a' * 125,
                      request.connection.written_data())