def test_len64(self):
     data = u'HTTP/1.1 101 Switching Protocols\r\nUpgrade: websocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=\r\n\r\n'.encode(
         'utf-8')
     data += b'\x82\x7f\x00\x00\x00\x00\x00\x00\x00\x04\x00\x01\x02\x03'
     handler = WsHandler()
     parser = ws.WebSocketParser(handler)
     parser.dataReceived(data)
     self.assertEquals(101, handler.code)
     self.assertEquals(2, handler.frame[0])
     self.assertEquals(4, len(handler.frame[1]))
 def test_framing(self):
     data1 = u'HTTP/1.1 101 Switching Protocols\r\nUpgrade: websocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=\r\n\r\n'.encode(
         'utf-8')
     data1 += b'\x03\x03\x01\x02\x03'
     data2 = b'\x83\x03\x04\x05\x06'
     handler = WsHandler()
     parser = ws.WebSocketParser(handler)
     parser.dataReceived(data1)
     self.assertEquals(None, handler.frame)
     parser.dataReceived(data2)
     self.assertEquals(b'\x01\x02\x03\x04\x05\x06', handler.frame[1])
 def test_masking(self):
     data = u'HTTP/1.1 101 Switching Protocols\r\nUpgrade: websocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=\r\n\r\n'.encode(
         'utf-8')
     data += b'\x83\x83\x01\x02\x03'
     handler = WsHandler()
     parser = ws.WebSocketParser(handler)
     try:
         parser.dataReceived(data)
         self.fail('Websocket server is not allowed to mask data')
     except ws.WebSocketError:
         pass
 def test_headers(self):
     data = u'HTTP/1.1 101 Switching Protocols\r\nUpgrade: websocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=\r\n\r\n'.encode(
         'utf-8')
     handler = WsHandler()
     parser = ws.WebSocketParser(handler)
     parser.dataReceived(data)
     self.assertEquals('HTTP/1.1', handler.proto_version)
     self.assertEquals(101, handler.code)
     self.assertEquals(
         [('Upgrade', 'websocket'), ('Connection', 'Upgrade'),
          ('Sec-WebSocket-Accept', 's3pPLMBiTxaQ9kYGzzhZRbK+xOo=')],
         handler.headers)
 def test_len7(self):
     data = u'HTTP/1.1 101 Switching Protocols\r\nUpgrade: websocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=\r\n\r\n'.encode(
         'utf-8')
     data += b'\x83\x03\x01\x02\x03'
     #
     handler = WsHandler()
     parser = ws.WebSocketParser(handler)
     parser.dataReceived(data)
     #
     self.assertEquals('HTTP/1.1', handler.proto_version)
     self.assertEquals(101, handler.code)
     self.assertEquals(0x03, handler.frame[0])
     self.assertEquals(b'\x01\x02\x03', handler.frame[1])