aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2021-03-13 14:15:48 -0500
committerJesse Luehrs <doy@tozt.net>2021-03-13 14:15:48 -0500
commit5244bfcd2b67ab6bf808750326de1e08e52c4f2f (patch)
tree062006804fadd3ac5c704e8fcaab5a33aad0d74c
parent2fb5b204d83a3da79dc743fed25f9cad81367a13 (diff)
downloadtextmode-5244bfcd2b67ab6bf808750326de1e08e52c4f2f.tar.gz
textmode-5244bfcd2b67ab6bf808750326de1e08e52c4f2f.zip
more tests
-rw-r--r--tests/input.rs112
1 files changed, 112 insertions, 0 deletions
diff --git a/tests/input.rs b/tests/input.rs
index 033499f..80bdbd6 100644
--- a/tests/input.rs
+++ b/tests/input.rs
@@ -184,6 +184,118 @@ fn run_input_test(
}
assert_no_more_lines(&mut r);
+ write(r.get_mut(), textmode::Key::String("🎉".to_string()));
+ if single {
+ if utf8 {
+ assert_line(&mut r, "Char('🎉'): [240, 159, 142, 137]");
+ } else {
+ assert_line(&mut r, "Byte(240): [240]");
+ assert_line(&mut r, "Byte(159): [159]");
+ assert_line(&mut r, "Byte(142): [142]");
+ assert_line(&mut r, "Byte(137): [137]");
+ }
+ } else {
+ if utf8 {
+ assert_line(&mut r, "String(\"🎉\"): [240, 159, 142, 137]");
+ } else {
+ assert_line(
+ &mut r,
+ "Bytes([240, 159, 142, 137]): [240, 159, 142, 137]",
+ );
+ }
+ }
+ assert_no_more_lines(&mut r);
+
+ write(r.get_mut(), textmode::Key::Bytes(vec![102, 111, 111, 240]));
+ if single {
+ if utf8 {
+ assert_line(&mut r, "Char('f'): [102]");
+ assert_line(&mut r, "Char('o'): [111]");
+ assert_line(&mut r, "Char('o'): [111]");
+ } else {
+ assert_line(&mut r, "Byte(102): [102]");
+ assert_line(&mut r, "Byte(111): [111]");
+ assert_line(&mut r, "Byte(111): [111]");
+ assert_line(&mut r, "Byte(240): [240]");
+ }
+ } else {
+ if utf8 {
+ assert_line(&mut r, "String(\"foo\"): [102, 111, 111]");
+ } else {
+ assert_line(
+ &mut r,
+ "Bytes([102, 111, 111, 240]): [102, 111, 111, 240]",
+ );
+ }
+ }
+ assert_no_more_lines(&mut r);
+ write(r.get_mut(), textmode::Key::Bytes(vec![159]));
+ if utf8 {
+ assert_no_more_lines(&mut r);
+ } else {
+ if single {
+ assert_line(&mut r, "Byte(159): [159]");
+ } else {
+ assert_line(&mut r, "Bytes([159]): [159]");
+ }
+ }
+ write(r.get_mut(), textmode::Key::Bytes(vec![142]));
+ if utf8 {
+ assert_no_more_lines(&mut r);
+ } else {
+ if single {
+ assert_line(&mut r, "Byte(142): [142]");
+ } else {
+ assert_line(&mut r, "Bytes([142]): [142]");
+ }
+ }
+ write(r.get_mut(), textmode::Key::Bytes(vec![137]));
+ if utf8 {
+ if single {
+ assert_line(&mut r, "Char('🎉'): [240, 159, 142, 137]");
+ } else {
+ assert_line(&mut r, "String(\"🎉\"): [240, 159, 142, 137]");
+ }
+ } else {
+ if single {
+ assert_line(&mut r, "Byte(137): [137]");
+ } else {
+ assert_line(&mut r, "Bytes([137]): [137]");
+ }
+ }
+ assert_no_more_lines(&mut r);
+
+ write(r.get_mut(), textmode::Key::Bytes(vec![240, 102, 111, 111]));
+ if utf8 {
+ if single {
+ assert_line(&mut r, "Byte(240): [240]");
+ assert_line(&mut r, "Char('f'): [102]");
+ assert_line(&mut r, "Char('o'): [111]");
+ assert_line(&mut r, "Char('o'): [111]");
+ } else {
+ // TODO: ideally this would be Bytes([240]) followed by
+ // String("foo") but figuring that out in a general way seems
+ // hard, and this is a pretty minor edge case
+ assert_line(
+ &mut r,
+ "Bytes([240, 102, 111, 111]): [240, 102, 111, 111]",
+ );
+ }
+ } else {
+ if single {
+ assert_line(&mut r, "Byte(240): [240]");
+ assert_line(&mut r, "Byte(102): [102]");
+ assert_line(&mut r, "Byte(111): [111]");
+ assert_line(&mut r, "Byte(111): [111]");
+ } else {
+ assert_line(
+ &mut r,
+ "Bytes([240, 102, 111, 111]): [240, 102, 111, 111]",
+ );
+ }
+ }
+ assert_no_more_lines(&mut r);
+
write(r.get_mut(), textmode::Key::Ctrl(b'c'));
if ctrl {
assert_line(&mut r, "Ctrl(99): [3]");