aboutsummaryrefslogtreecommitdiffstats
path: root/tests/scroll.rs
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2019-11-10 04:51:22 -0500
committerJesse Luehrs <doy@tozt.net>2019-11-10 08:07:38 -0500
commitb04c0e6e97765aeb888479c5e0bc27d54de60659 (patch)
treef8ebeae6cfaecd309152dd6cde5dd14cfdba3083 /tests/scroll.rs
parent7cd6962a9ef544049bb637c17506f794f0a37f4d (diff)
downloadvt100-rust-b04c0e6e97765aeb888479c5e0bc27d54de60659.tar.gz
vt100-rust-b04c0e6e97765aeb888479c5e0bc27d54de60659.zip
optimize cursor movement a bit
Diffstat (limited to 'tests/scroll.rs')
-rw-r--r--tests/scroll.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/scroll.rs b/tests/scroll.rs
index 4bbe1e9..7c75c92 100644
--- a/tests/scroll.rs
+++ b/tests/scroll.rs
@@ -153,3 +153,21 @@ fn scrollback() {
assert_eq!(parser.scroll_pos(), 7);
assert_eq!(parser.screen().contents(), "10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\n33");
}
+
+#[test]
+fn edge_of_screen() {
+ let mut parser = vt100::Parser::new(24, 80, 0);
+ let screen = parser.screen().clone();
+
+ parser.process(b"\x1b[31m\x1b[24;75Hfooba\x08r\x08\x1b[1@a");
+ assert_eq!(parser.screen().cursor_position(), (23, 79));
+ assert_eq!(parser.screen().contents(), "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n foobar");
+ assert_eq!(
+ parser.screen().contents_formatted(),
+ &b"\x1b[?25h\x1b[m\x1b[H\x1b[J\x1b[24;75H\x1b[31mfoobar\x1b[24;80H"[..]
+ );
+ assert_eq!(
+ parser.screen().contents_diff(&screen),
+ b"\x1b[24;75H\x1b[31mfoobar\x1b[24;80H"
+ );
+}