aboutsummaryrefslogtreecommitdiffstats
path: root/t/processing_test.py
blob: 720837463369aa28bd03402f43a865190e4926ed (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# coding=utf-8
from . import VT100Test

class ProcessingTest(VT100Test):
    def test_split_escape_sequences(self):
        assert self.vt.process("abc") == 3
        assert self.vt.process("abc\033[12;24Hdef") == 14

        assert self.vt.process("\033") == 0
        assert self.vt.process("\033[") == 0
        assert self.vt.process("\033[1") == 0
        assert self.vt.process("\033[12") == 0
        assert self.vt.process("\033[12;") == 0
        assert self.vt.process("\033[12;2") == 0
        assert self.vt.process("\033[12;24") == 0
        assert self.vt.process("\033[12;24H") == 8

        assert self.vt.process("abc\033") == 3
        assert self.vt.process("abc\033[") == 3
        assert self.vt.process("abc\033[1") == 3
        assert self.vt.process("abc\033[12") == 3
        assert self.vt.process("abc\033[12;") == 3
        assert self.vt.process("abc\033[12;2") == 3
        assert self.vt.process("abc\033[12;24") == 3
        assert self.vt.process("abc\033[12;24H") == 11

        assert self.vt.process("\033") == 0
        assert self.vt.process("\033[") == 0
        assert self.vt.process("\033[?") == 0
        assert self.vt.process("\033[?1") == 0
        assert self.vt.process("\033[?10") == 0
        assert self.vt.process("\033[?100") == 0
        assert self.vt.process("\033[?1000") == 0
        assert self.vt.process("\033[?1000h") == 8

        assert self.vt.process("\033]") == 0
        assert self.vt.process("\033]4") == 0
        assert self.vt.process("\033]49") == 0
        assert self.vt.process("\033]499") == 0
        assert self.vt.process("\033]499;") == 0
        assert self.vt.process("\033]499;a") == 0
        assert self.vt.process("\033]499;a ") == 0
        assert self.vt.process("\033]499;a '") == 0
        assert self.vt.process("\033]499;a '[") == 0
        assert self.vt.process("\033]499;a '[]") == 0
        assert self.vt.process("\033]499;a '[]_") == 0
        assert self.vt.process("\033]499;a '[]_\007") == 13

    def test_split_utf8(self):
        assert self.vt.process("a") == 1

        assert self.vt.process(b"\303") == 0
        assert self.vt.process(b"\303\241") == 2
        assert self.vt.process("á") == 2

        assert self.vt.process(b"\343") == 0
        assert self.vt.process(b"\343\202") == 0
        assert self.vt.process(b"\343\202\255") == 3
        assert self.vt.process("キ") == 3

        assert self.vt.process(b"\360") == 0
        assert self.vt.process(b"\360\237") == 0
        assert self.vt.process(b"\360\237\222") == 0
        assert self.vt.process(b"\360\237\222\251") == 4
        assert self.vt.process("💩") == 4