diff options
author | Jesse Luehrs <doy@tozt.net> | 2019-11-10 04:51:22 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2019-11-10 08:07:38 -0500 |
commit | b04c0e6e97765aeb888479c5e0bc27d54de60659 (patch) | |
tree | f8ebeae6cfaecd309152dd6cde5dd14cfdba3083 /tests/scroll.rs | |
parent | 7cd6962a9ef544049bb637c17506f794f0a37f4d (diff) | |
download | vt100-rust-b04c0e6e97765aeb888479c5e0bc27d54de60659.tar.gz vt100-rust-b04c0e6e97765aeb888479c5e0bc27d54de60659.zip |
optimize cursor movement a bit
Diffstat (limited to 'tests/scroll.rs')
-rw-r--r-- | tests/scroll.rs | 18 |
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" + ); +} |