aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2014-10-20 17:55:40 -0400
committerJesse Luehrs <doy@tozt.net>2014-10-20 17:55:40 -0400
commit2b01a56de9184b9e2112b6ed75f70d1a46ffd198 (patch)
tree27340e5c8ac980f5d6cfbae65e7207926d2c3e36
parent7cfb3e7d9235ab1d031e0d0b1dc157630c2a34f1 (diff)
downloadlibvt100-python-2b01a56de9184b9e2112b6ed75f70d1a46ffd198.tar.gz
libvt100-python-2b01a56de9184b9e2112b6ed75f70d1a46ffd198.zip
tests for incomplete character sequences
-rw-r--r--t/processing_test.py55
1 files changed, 55 insertions, 0 deletions
diff --git a/t/processing_test.py b/t/processing_test.py
new file mode 100644
index 0000000..20b028b
--- /dev/null
+++ b/t/processing_test.py
@@ -0,0 +1,55 @@
+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]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