Ejemplo n.º 1
0
    def test_length_lt_126(self):
        """
        Test setting a length less than 126
        """
        for i in xrange(0, 126):
            self.assertEqual('\x00' + chr(i), hybi.encode_header(
                False,  # fin
                0,      # opcode
                '',     # mask
                i,      # length
                0       # flags
            ))

        self.assertNotEqual('\x00' + chr(126), hybi.encode_header(
            False,  # fin
            0,      # opcode
            '',     # mask
            126,    # length
            0       # flags
        ))
Ejemplo n.º 2
0
    def test_mask(self):
        """
        Test setting a mask
        """
        header = '\x00\x80foo'

        self.assertEqual(header, hybi.encode_header(
            False,  # fin
            0,      # opcode
            'foo',  # mask
            0,      # length
            0       # flags
        ))
Ejemplo n.º 3
0
    def test_rsv2(self):
        """
        Test all basic permutations of rsv2
        """
        header = '\x10\x00'

        self.assertEqual(header, hybi.encode_header(
            False,  # fin
            0,     # opcode
            '',    # mask
            0,     # length
            0x10   # flags
        ))
Ejemplo n.º 4
0
    def test_not_fin(self):
        """
        Unfinished frame.
        """
        header = '\x00\x00'

        self.assertEqual(header, hybi.encode_header(
            False,  # fin
            0,     # opcode
            '',    # mask
            0,     # length
            0      # flags
        ))
Ejemplo n.º 5
0
    def test_fin(self):
        """
        Ensure that the fin is applied correctly
        """
        header = chr(hybi.FIN_MASK) + '\x00'

        self.assertEqual(header, hybi.encode_header(
            True,  # fin
            0,     # opcode
            '',    # mask
            0,     # length
            0      # flags
        ))
Ejemplo n.º 6
0
    def make_websocket(self, *args):
        """
        :param args: triplets of fin, opcode, payload
        """
        data = ''

        for i in xrange(0, len(args), 3):
            fin, opcode, payload = args[i], args[i + 1], args[i + 2]

            data += hybi.encode_header(fin, opcode, '', len(payload), 0)
            data += payload

        socket = self.make_socket(data)
        ws = hybi.WebSocketHybi({}, socket)

        return ws
Ejemplo n.º 7
0
    def encode_header(self, length):
        base_header = [False, 0, '']

        return hybi.encode_header(*(base_header + [length, 0]))