aboutsummaryrefslogtreecommitdiffstats
path: root/tests/mode.rs
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2019-11-05 01:32:25 -0500
committerJesse Luehrs <doy@tozt.net>2019-11-05 01:32:25 -0500
commit4b4a9c18e4c55a2ba6558ef614292db9c18ab88a (patch)
tree03c9ada690835acbf3d1b02f46341bde5b579989 /tests/mode.rs
parent59e7c620a516278719c1689ebebeb558bede5b60 (diff)
downloadvt100-rust-4b4a9c18e4c55a2ba6558ef614292db9c18ab88a.tar.gz
vt100-rust-4b4a9c18e4c55a2ba6558ef614292db9c18ab88a.zip
expose the screen separately from the parser
Diffstat (limited to 'tests/mode.rs')
-rw-r--r--tests/mode.rs455
1 files changed, 238 insertions, 217 deletions
diff --git a/tests/mode.rs b/tests/mode.rs
index 0cca4b7..277cdad 100644
--- a/tests/mode.rs
+++ b/tests/mode.rs
@@ -2,375 +2,396 @@
#[test]
fn modes() {
- let mut screen = vt100::Screen::new(24, 80);
- assert!(!screen.application_keypad());
- assert!(!screen.application_cursor());
- assert!(!screen.hide_cursor());
- assert!(!screen.bracketed_paste());
- assert_eq!(screen.mouse_protocol_mode(), vt100::MouseProtocolMode::None);
- assert_eq!(
- screen.mouse_protocol_encoding(),
+ let mut parser = vt100::Parser::new(24, 80);
+ assert!(!parser.screen().application_keypad());
+ assert!(!parser.screen().application_cursor());
+ assert!(!parser.screen().hide_cursor());
+ assert!(!parser.screen().bracketed_paste());
+ assert_eq!(
+ parser.screen().mouse_protocol_mode(),
+ vt100::MouseProtocolMode::None
+ );
+ assert_eq!(
+ parser.screen().mouse_protocol_encoding(),
vt100::MouseProtocolEncoding::Default
);
- screen.process(b"\x1b[?1h");
+ parser.process(b"\x1b[?1h");
- assert!(!screen.application_keypad());
- assert!(screen.application_cursor());
- assert!(!screen.hide_cursor());
- assert!(!screen.bracketed_paste());
- assert_eq!(screen.mouse_protocol_mode(), vt100::MouseProtocolMode::None);
+ assert!(!parser.screen().application_keypad());
+ assert!(parser.screen().application_cursor());
+ assert!(!parser.screen().hide_cursor());
+ assert!(!parser.screen().bracketed_paste());
+ assert_eq!(
+ parser.screen().mouse_protocol_mode(),
+ vt100::MouseProtocolMode::None
+ );
assert_eq!(
- screen.mouse_protocol_encoding(),
+ parser.screen().mouse_protocol_encoding(),
vt100::MouseProtocolEncoding::Default
);
- screen.process(b"\x1b[?9h");
+ parser.process(b"\x1b[?9h");
- assert!(!screen.application_keypad());
- assert!(screen.application_cursor());
- assert!(!screen.hide_cursor());
- assert!(!screen.bracketed_paste());
+ assert!(!parser.screen().application_keypad());
+ assert!(parser.screen().application_cursor());
+ assert!(!parser.screen().hide_cursor());
+ assert!(!parser.screen().bracketed_paste());
assert_eq!(
- screen.mouse_protocol_mode(),
+ parser.screen().mouse_protocol_mode(),
vt100::MouseProtocolMode::Press
);
assert_eq!(
- screen.mouse_protocol_encoding(),
+ parser.screen().mouse_protocol_encoding(),
vt100::MouseProtocolEncoding::Default
);
- screen.process(b"\x1b[?25l");
+ parser.process(b"\x1b[?25l");
- assert!(!screen.application_keypad());
- assert!(screen.application_cursor());
- assert!(screen.hide_cursor());
- assert!(!screen.bracketed_paste());
+ assert!(!parser.screen().application_keypad());
+ assert!(parser.screen().application_cursor());
+ assert!(parser.screen().hide_cursor());
+ assert!(!parser.screen().bracketed_paste());
assert_eq!(
- screen.mouse_protocol_mode(),
+ parser.screen().mouse_protocol_mode(),
vt100::MouseProtocolMode::Press
);
assert_eq!(
- screen.mouse_protocol_encoding(),
+ parser.screen().mouse_protocol_encoding(),
vt100::MouseProtocolEncoding::Default
);
- screen.process(b"\x1b[?1000h");
+ parser.process(b"\x1b[?1000h");
- assert!(!screen.application_keypad());
- assert!(screen.application_cursor());
- assert!(screen.hide_cursor());
- assert!(!screen.bracketed_paste());
+ assert!(!parser.screen().application_keypad());
+ assert!(parser.screen().application_cursor());
+ assert!(parser.screen().hide_cursor());
+ assert!(!parser.screen().bracketed_paste());
assert_eq!(
- screen.mouse_protocol_mode(),
+ parser.screen().mouse_protocol_mode(),
vt100::MouseProtocolMode::PressRelease
);
assert_eq!(
- screen.mouse_protocol_encoding(),
+ parser.screen().mouse_protocol_encoding(),
vt100::MouseProtocolEncoding::Default
);
- screen.process(b"\x1b[?1002h");
+ parser.process(b"\x1b[?1002h");
- assert!(!screen.application_keypad());
- assert!(screen.application_cursor());
- assert!(screen.hide_cursor());
- assert!(!screen.bracketed_paste());
+ assert!(!parser.screen().application_keypad());
+ assert!(parser.screen().application_cursor());
+ assert!(parser.screen().hide_cursor());
+ assert!(!parser.screen().bracketed_paste());
assert_eq!(
- screen.mouse_protocol_mode(),
+ parser.screen().mouse_protocol_mode(),
vt100::MouseProtocolMode::ButtonMotion
);
assert_eq!(
- screen.mouse_protocol_encoding(),
+ parser.screen().mouse_protocol_encoding(),
vt100::MouseProtocolEncoding::Default
);
- screen.process(b"\x1b[?1003h");
+ parser.process(b"\x1b[?1003h");
- assert!(!screen.application_keypad());
- assert!(screen.application_cursor());
- assert!(screen.hide_cursor());
- assert!(!screen.bracketed_paste());
+ assert!(!parser.screen().application_keypad());
+ assert!(parser.screen().application_cursor());
+ assert!(parser.screen().hide_cursor());
+ assert!(!parser.screen().bracketed_paste());
assert_eq!(
- screen.mouse_protocol_mode(),
+ parser.screen().mouse_protocol_mode(),
vt100::MouseProtocolMode::AnyMotion
);
assert_eq!(
- screen.mouse_protocol_encoding(),
+ parser.screen().mouse_protocol_encoding(),
vt100::MouseProtocolEncoding::Default
);
- screen.process(b"\x1b[?1005h");
+ parser.process(b"\x1b[?1005h");
- assert!(!screen.application_keypad());
- assert!(screen.application_cursor());
- assert!(screen.hide_cursor());
- assert!(!screen.bracketed_paste());
+ assert!(!parser.screen().application_keypad());
+ assert!(parser.screen().application_cursor());
+ assert!(parser.screen().hide_cursor());
+ assert!(!parser.screen().bracketed_paste());
assert_eq!(
- screen.mouse_protocol_mode(),
+ parser.screen().mouse_protocol_mode(),
vt100::MouseProtocolMode::AnyMotion
);
assert_eq!(
- screen.mouse_protocol_encoding(),
+ parser.screen().mouse_protocol_encoding(),
vt100::MouseProtocolEncoding::Utf8
);
- screen.process(b"\x1b[?1006h");
+ parser.process(b"\x1b[?1006h");
- assert!(!screen.application_keypad());
- assert!(screen.application_cursor());
- assert!(screen.hide_cursor());
- assert!(!screen.bracketed_paste());
+ assert!(!parser.screen().application_keypad());
+ assert!(parser.screen().application_cursor());
+ assert!(parser.screen().hide_cursor());
+ assert!(!parser.screen().bracketed_paste());
assert_eq!(
- screen.mouse_protocol_mode(),
+ parser.screen().mouse_protocol_mode(),
vt100::MouseProtocolMode::AnyMotion
);
assert_eq!(
- screen.mouse_protocol_encoding(),
+ parser.screen().mouse_protocol_encoding(),
vt100::MouseProtocolEncoding::Sgr
);
- screen.process(b"\x1b[?2004h");
+ parser.process(b"\x1b[?2004h");
- assert!(!screen.application_keypad());
- assert!(screen.application_cursor());
- assert!(screen.hide_cursor());
- assert!(screen.bracketed_paste());
+ assert!(!parser.screen().application_keypad());
+ assert!(parser.screen().application_cursor());
+ assert!(parser.screen().hide_cursor());
+ assert!(parser.screen().bracketed_paste());
assert_eq!(
- screen.mouse_protocol_mode(),
+ parser.screen().mouse_protocol_mode(),
vt100::MouseProtocolMode::AnyMotion
);
assert_eq!(
- screen.mouse_protocol_encoding(),
+ parser.screen().mouse_protocol_encoding(),
vt100::MouseProtocolEncoding::Sgr
);
- screen.process(b"\x1b=");
+ parser.process(b"\x1b=");
- assert!(screen.application_keypad());
- assert!(screen.application_cursor());
- assert!(screen.hide_cursor());
- assert!(screen.bracketed_paste());
+ assert!(parser.screen().application_keypad());
+ assert!(parser.screen().application_cursor());
+ assert!(parser.screen().hide_cursor());
+ assert!(parser.screen().bracketed_paste());
assert_eq!(
- screen.mouse_protocol_mode(),
+ parser.screen().mouse_protocol_mode(),
vt100::MouseProtocolMode::AnyMotion
);
assert_eq!(
- screen.mouse_protocol_encoding(),
+ parser.screen().mouse_protocol_encoding(),
vt100::MouseProtocolEncoding::Sgr
);
- screen.process(b"\x1b[?1l");
+ parser.process(b"\x1b[?1l");
- assert!(screen.application_keypad());
- assert!(!screen.application_cursor());
- assert!(screen.hide_cursor());
- assert!(screen.bracketed_paste());
+ assert!(parser.screen().application_keypad());
+ assert!(!parser.screen().application_cursor());
+ assert!(parser.screen().hide_cursor());
+ assert!(parser.screen().bracketed_paste());
assert_eq!(
- screen.mouse_protocol_mode(),
+ parser.screen().mouse_protocol_mode(),
vt100::MouseProtocolMode::AnyMotion
);
assert_eq!(
- screen.mouse_protocol_encoding(),
+ parser.screen().mouse_protocol_encoding(),
vt100::MouseProtocolEncoding::Sgr
);
- screen.process(b"\x1b[?9l");
+ parser.process(b"\x1b[?9l");
- assert!(screen.application_keypad());
- assert!(!screen.application_cursor());
- assert!(screen.hide_cursor());
- assert!(screen.bracketed_paste());
+ assert!(parser.screen().application_keypad());
+ assert!(!parser.screen().application_cursor());
+ assert!(parser.screen().hide_cursor());
+ assert!(parser.screen().bracketed_paste());
assert_eq!(
- screen.mouse_protocol_mode(),
+ parser.screen().mouse_protocol_mode(),
vt100::MouseProtocolMode::AnyMotion
);
assert_eq!(
- screen.mouse_protocol_encoding(),
+ parser.screen().mouse_protocol_encoding(),
vt100::MouseProtocolEncoding::Sgr
);
- screen.process(b"\x1b[?25h");
+ parser.process(b"\x1b[?25h");
- assert!(screen.application_keypad());
- assert!(!screen.application_cursor());
- assert!(!screen.hide_cursor());
- assert!(screen.bracketed_paste());
+ assert!(parser.screen().application_keypad());
+ assert!(!parser.screen().application_cursor());
+ assert!(!parser.screen().hide_cursor());
+ assert!(parser.screen().bracketed_paste());
assert_eq!(
- screen.mouse_protocol_mode(),
+ parser.screen().mouse_protocol_mode(),
vt100::MouseProtocolMode::AnyMotion
);
assert_eq!(
- screen.mouse_protocol_encoding(),
+ parser.screen().mouse_protocol_encoding(),
vt100::MouseProtocolEncoding::Sgr
);
- screen.process(b"\x1b[?1000l");
+ parser.process(b"\x1b[?1000l");
- assert!(screen.application_keypad());
- assert!(!screen.application_cursor());
- assert!(!screen.hide_cursor());
- assert!(screen.bracketed_paste());
+ assert!(parser.screen().application_keypad());
+ assert!(!parser.screen().application_cursor());
+ assert!(!parser.screen().hide_cursor());
+ assert!(parser.screen().bracketed_paste());
assert_eq!(
- screen.mouse_protocol_mode(),
+ parser.screen().mouse_protocol_mode(),
vt100::MouseProtocolMode::AnyMotion
);
assert_eq!(
- screen.mouse_protocol_encoding(),
+ parser.screen().mouse_protocol_encoding(),
vt100::MouseProtocolEncoding::Sgr
);
- screen.process(b"\x1b[?1002l");
+ parser.process(b"\x1b[?1002l");
- assert!(screen.application_keypad());
- assert!(!screen.application_cursor());
- assert!(!screen.hide_cursor());
- assert!(screen.bracketed_paste());
+ assert!(parser.screen().application_keypad());
+ assert!(!parser.screen().application_cursor());
+ assert!(!parser.screen().hide_cursor());
+ assert!(parser.screen().bracketed_paste());
assert_eq!(
- screen.mouse_protocol_mode(),
+ parser.screen().mouse_protocol_mode(),
vt100::MouseProtocolMode::AnyMotion
);
assert_eq!(
- screen.mouse_protocol_encoding(),
+ parser.screen().mouse_protocol_encoding(),
vt100::MouseProtocolEncoding::Sgr
);
- screen.process(b"\x1b[?1003l");
+ parser.process(b"\x1b[?1003l");
- assert!(screen.application_keypad());
- assert!(!screen.application_cursor());
- assert!(!screen.hide_cursor());
- assert!(screen.bracketed_paste());
- assert_eq!(screen.mouse_protocol_mode(), vt100::MouseProtocolMode::None);
+ assert!(parser.screen().application_keypad());
+ assert!(!parser.screen().application_cursor());
+ assert!(!parser.screen().hide_cursor());
+ assert!(parser.screen().bracketed_paste());
+ assert_eq!(
+ parser.screen().mouse_protocol_mode(),
+ vt100::MouseProtocolMode::None
+ );
assert_eq!(
- screen.mouse_protocol_encoding(),
+ parser.screen().mouse_protocol_encoding(),
vt100::MouseProtocolEncoding::Sgr
);
- screen.process(b"\x1b[?1005l");
+ parser.process(b"\x1b[?1005l");
- assert!(screen.application_keypad());
- assert!(!screen.application_cursor());
- assert!(!screen.hide_cursor());
- assert!(screen.bracketed_paste());
- assert_eq!(screen.mouse_protocol_mode(), vt100::MouseProtocolMode::None);
+ assert!(parser.screen().application_keypad());
+ assert!(!parser.screen().application_cursor());
+ assert!(!parser.screen().hide_cursor());
+ assert!(parser.screen().bracketed_paste());
assert_eq!(
- screen.mouse_protocol_encoding(),
+ parser.screen().mouse_protocol_mode(),
+ vt100::MouseProtocolMode::None
+ );
+ assert_eq!(
+ parser.screen().mouse_protocol_encoding(),
vt100::MouseProtocolEncoding::Sgr
);
- screen.process(b"\x1b[?1006l");
+ parser.process(b"\x1b[?1006l");
- assert!(screen.application_keypad());
- assert!(!screen.application_cursor());
- assert!(!screen.hide_cursor());
- assert!(screen.bracketed_paste());
- assert_eq!(screen.mouse_protocol_mode(), vt100::MouseProtocolMode::None);
+ assert!(parser.screen().application_keypad());
+ assert!(!parser.screen().application_cursor());
+ assert!(!parser.screen().hide_cursor());
+ assert!(parser.screen().bracketed_paste());
+ assert_eq!(
+ parser.screen().mouse_protocol_mode(),
+ vt100::MouseProtocolMode::None
+ );
assert_eq!(
- screen.mouse_protocol_encoding(),
+ parser.screen().mouse_protocol_encoding(),
vt100::MouseProtocolEncoding::Default
);
- screen.process(b"\x1b[?2004l");
+ parser.process(b"\x1b[?2004l");
- assert!(screen.application_keypad());
- assert!(!screen.application_cursor());
- assert!(!screen.hide_cursor());
- assert!(!screen.bracketed_paste());
- assert_eq!(screen.mouse_protocol_mode(), vt100::MouseProtocolMode::None);
+ assert!(parser.screen().application_keypad());
+ assert!(!parser.screen().application_cursor());
+ assert!(!parser.screen().hide_cursor());
+ assert!(!parser.screen().bracketed_paste());
assert_eq!(
- screen.mouse_protocol_encoding(),
+ parser.screen().mouse_protocol_mode(),
+ vt100::MouseProtocolMode::None
+ );
+ assert_eq!(
+ parser.screen().mouse_protocol_encoding(),
vt100::MouseProtocolEncoding::Default
);
- screen.process(b"\x1b>");
+ parser.process(b"\x1b>");
- assert!(!screen.application_keypad());
- assert!(!screen.application_cursor());
- assert!(!screen.hide_cursor());
- assert!(!screen.bracketed_paste());
- assert_eq!(screen.mouse_protocol_mode(), vt100::MouseProtocolMode::None);
+ assert!(!parser.screen().application_keypad());
+ assert!(!parser.screen().application_cursor());
+ assert!(!parser.screen().hide_cursor());
+ assert!(!parser.screen().bracketed_paste());
+ assert_eq!(
+ parser.screen().mouse_protocol_mode(),
+ vt100::MouseProtocolMode::None
+ );
assert_eq!(
- screen.mouse_protocol_encoding(),
+ parser.screen().mouse_protocol_encoding(),
vt100::MouseProtocolEncoding::Default
);
}
#[test]
fn alternate_buffer() {
- let mut screen = vt100::Screen::new(24, 80);
+ let mut parser = vt100::Parser::new(24, 80);
// 47
- screen.process(b"\x1bc");
- assert_eq!(screen.contents(0, 0, 23, 79), "");
- assert_eq!(screen.cursor_position(), (0, 0));
- assert!(!screen.alternate_screen());
-
- screen.process(b"\x1b[m\x1b[2J\x1b[H1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9\r\n10\r\n11\r\n12\r\n13\r\n14\r\n15\r\n16\r\n17\r\n18\r\n19\r\n20\r\n21\r\n22\r\n23\r\n24");
- assert_eq!(screen.contents(0, 0, 23, 79), "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24");
- assert_eq!(screen.cursor_position(), (23, 2));
- assert!(!screen.alternate_screen());
-
- screen.process(b"\x1b[?47h");
- assert_eq!(screen.contents(0, 0, 23, 79), "");
- assert_eq!(screen.cursor_position(), (0, 0));
- assert!(screen.alternate_screen());
-
- screen.process(b"foobar");
- assert_eq!(screen.contents(0, 0, 23, 79), "foobar");
- assert_eq!(screen.cursor_position(), (0, 6));
- assert!(screen.alternate_screen());
-
- screen.process(b"\x1b[?47l");
- assert_eq!(screen.contents(0, 0, 23, 79), "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24");
- assert_eq!(screen.cursor_position(), (23, 2));
- assert!(!screen.alternate_screen());
-
- screen.process(b"\x1b[?47h");
- assert_eq!(screen.contents(0, 0, 23, 79), "foobar");
- assert_eq!(screen.cursor_position(), (0, 6));
- assert!(screen.alternate_screen());
-
- screen.process(b"\x1b[?47l");
- assert_eq!(screen.contents(0, 0, 23, 79), "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24");
- assert_eq!(screen.cursor_position(), (23, 2));
- assert!(!screen.alternate_screen());
+ parser.process(b"\x1bc");
+ assert_eq!(parser.screen().contents(0, 0, 23, 79), "");
+ assert_eq!(parser.screen().cursor_position(), (0, 0));
+ assert!(!parser.screen().alternate_screen());
+
+ parser.process(b"\x1b[m\x1b[2J\x1b[H1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9\r\n10\r\n11\r\n12\r\n13\r\n14\r\n15\r\n16\r\n17\r\n18\r\n19\r\n20\r\n21\r\n22\r\n23\r\n24");
+ assert_eq!(parser.screen().contents(0, 0, 23, 79), "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24");
+ assert_eq!(parser.screen().cursor_position(), (23, 2));
+ assert!(!parser.screen().alternate_screen());
+
+ parser.process(b"\x1b[?47h");
+ assert_eq!(parser.screen().contents(0, 0, 23, 79), "");
+ assert_eq!(parser.screen().cursor_position(), (0, 0));
+ assert!(parser.screen().alternate_screen());
+
+ parser.process(b"foobar");
+ assert_eq!(parser.screen().contents(0, 0, 23, 79), "foobar");
+ assert_eq!(parser.screen().cursor_position(), (0, 6));
+ assert!(parser.screen().alternate_screen());
+
+ parser.process(b"\x1b[?47l");
+ assert_eq!(parser.screen().contents(0, 0, 23, 79), "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24");
+ assert_eq!(parser.screen().cursor_position(), (23, 2));
+ assert!(!parser.screen().alternate_screen());
+
+ parser.process(b"\x1b[?47h");
+ assert_eq!(parser.screen().contents(0, 0, 23, 79), "foobar");
+ assert_eq!(parser.screen().cursor_position(), (0, 6));
+ assert!(parser.screen().alternate_screen());
+
+ parser.process(b"\x1b[?47l");
+ assert_eq!(parser.screen().contents(0, 0, 23, 79), "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24");
+ assert_eq!(parser.screen().cursor_position(), (23, 2));
+ assert!(!parser.screen().alternate_screen());
// 1049
- screen.process(b"\x1bc");
- assert_eq!(screen.contents(0, 0, 23, 79), "");
- assert_eq!(screen.cursor_position(), (0, 0));
- assert!(!screen.alternate_screen());
-
- screen.process(b"\x1b[m\x1b[2J\x1b[H1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9\r\n10\r\n11\r\n12\r\n13\r\n14\r\n15\r\n16\r\n17\r\n18\r\n19\r\n20\r\n21\r\n22\r\n23\r\n24");
- assert_eq!(screen.contents(0, 0, 23, 79), "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24");
- assert_eq!(screen.cursor_position(), (23, 2));
- assert!(!screen.alternate_screen());
-
- screen.process(b"\x1b[?1049h");
- assert_eq!(screen.contents(0, 0, 23, 79), "");
- assert_eq!(screen.cursor_position(), (0, 0));
- assert!(screen.alternate_screen());
-
- screen.process(b"foobar");
- assert_eq!(screen.contents(0, 0, 23, 79), "foobar");
- assert_eq!(screen.cursor_position(), (0, 6));
- assert!(screen.alternate_screen());
-
- screen.process(b"\x1b[?1049l");
- assert_eq!(screen.contents(0, 0, 23, 79), "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24");
- assert_eq!(screen.cursor_position(), (23, 2));
- assert!(!screen.alternate_screen());
-
- screen.process(b"\x1b[?1049h");
- assert_eq!(screen.contents(0, 0, 23, 79), "");
- assert_eq!(screen.cursor_position(), (0, 0));
- assert!(screen.alternate_screen());
-
- screen.process(b"\x1b[?1049l");
- assert_eq!(screen.contents(0, 0, 23, 79), "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24");
- assert_eq!(screen.cursor_position(), (23, 2));
- assert!(!screen.alternate_screen());
+ parser.process(b"\x1bc");
+ assert_eq!(parser.screen().contents(0, 0, 23, 79), "");
+ assert_eq!(parser.screen().cursor_position(), (0, 0));
+ assert!(!parser.screen().alternate_screen());
+
+ parser.process(b"\x1b[m\x1b[2J\x1b[H1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9\r\n10\r\n11\r\n12\r\n13\r\n14\r\n15\r\n16\r\n17\r\n18\r\n19\r\n20\r\n21\r\n22\r\n23\r\n24");
+ assert_eq!(parser.screen().contents(0, 0, 23, 79), "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24");
+ assert_eq!(parser.screen().cursor_position(), (23, 2));
+ assert!(!parser.screen().alternate_screen());
+
+ parser.process(b"\x1b[?1049h");
+ assert_eq!(parser.screen().contents(0, 0, 23, 79), "");
+ assert_eq!(parser.screen().cursor_position(), (0, 0));
+ assert!(parser.screen().alternate_screen());
+
+ parser.process(b"foobar");
+ assert_eq!(parser.screen().contents(0, 0, 23, 79), "foobar");
+ assert_eq!(parser.screen().cursor_position(), (0, 6));
+ assert!(parser.screen().alternate_screen());
+
+ parser.process(b"\x1b[?1049l");
+ assert_eq!(parser.screen().contents(0, 0, 23, 79), "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24");
+ assert_eq!(parser.screen().cursor_position(), (23, 2));
+ assert!(!parser.screen().alternate_screen());
+
+ parser.process(b"\x1b[?1049h");
+ assert_eq!(parser.screen().contents(0, 0, 23, 79), "");
+ assert_eq!(parser.screen().cursor_position(), (0, 0));
+ assert!(parser.screen().alternate_screen());
+
+ parser.process(b"\x1b[?1049l");
+ assert_eq!(parser.screen().contents(0, 0, 23, 79), "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24");
+ assert_eq!(parser.screen().cursor_position(), (23, 2));
+ assert!(!parser.screen().alternate_screen());
}