diff options
author | Jesse Luehrs <doy@tozt.net> | 2023-03-08 23:43:23 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2023-03-09 00:29:47 -0500 |
commit | 68c36be2e26813a2a3d7210ae82824de06b3d3ee (patch) | |
tree | 19f345f7e05c6cb8c210657e6f0f671113f56f09 /tests | |
parent | a705c1f07de2b8ec3ba4fe46377242f151b996c1 (diff) | |
download | vt100-rust-68c36be2e26813a2a3d7210ae82824de06b3d3ee.tar.gz vt100-rust-68c36be2e26813a2a3d7210ae82824de06b3d3ee.zip |
implement callback for terminal resize request
Diffstat (limited to 'tests')
-rw-r--r-- | tests/csi.rs | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/csi.rs b/tests/csi.rs index 7a409b6..460a03d 100644 --- a/tests/csi.rs +++ b/tests/csi.rs @@ -44,3 +44,43 @@ fn il_dl() { fn scroll() { helpers::fixture("scroll"); } + +#[test] +fn xtwinops() { + struct Callbacks; + impl vt100::Callbacks for Callbacks { + fn resize( + &mut self, + screen: &mut vt100::Screen, + (rows, cols): (u16, u16), + ) { + screen.set_size(rows, cols); + } + } + + let mut vt = vt100::Parser::default(); + assert_eq!(vt.screen().size(), (24, 80)); + vt.process_cb(b"\x1b[8;24;80t", &mut Callbacks); + assert_eq!(vt.screen().size(), (24, 80)); + vt.process_cb(b"\x1b[8t", &mut Callbacks); + assert_eq!(vt.screen().size(), (24, 80)); + vt.process_cb(b"\x1b[8;80;24t", &mut Callbacks); + assert_eq!(vt.screen().size(), (80, 24)); + vt.process_cb(b"\x1b[8;24t", &mut Callbacks); + assert_eq!(vt.screen().size(), (24, 24)); + + let mut vt = vt100::Parser::default(); + assert_eq!(vt.screen().size(), (24, 80)); + vt.process_cb(b"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", &mut Callbacks); + assert_eq!(vt.screen().rows(0, 80).next().unwrap(), "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); + assert_eq!(vt.screen().rows(0, 80).nth(1).unwrap(), "aaaaaaaaaa"); + vt.process_cb( + b"\x1b[H\x1b[8;24;15tbbbbbbbbbbbbbbbbbbbb\x1b[8;24;80tcccccccccccccccccccc", + &mut Callbacks, + ); + assert_eq!(vt.screen().rows(0, 80).next().unwrap(), "bbbbbbbbbbbbbbb"); + assert_eq!( + vt.screen().rows(0, 80).nth(1).unwrap(), + "bbbbbcccccccccccccccccccc" + ); +} |