aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2023-03-08 23:43:23 -0500
committerJesse Luehrs <doy@tozt.net>2023-03-09 00:29:47 -0500
commit68c36be2e26813a2a3d7210ae82824de06b3d3ee (patch)
tree19f345f7e05c6cb8c210657e6f0f671113f56f09 /tests
parenta705c1f07de2b8ec3ba4fe46377242f151b996c1 (diff)
downloadvt100-rust-68c36be2e26813a2a3d7210ae82824de06b3d3ee.tar.gz
vt100-rust-68c36be2e26813a2a3d7210ae82824de06b3d3ee.zip
implement callback for terminal resize request
Diffstat (limited to 'tests')
-rw-r--r--tests/csi.rs40
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"
+ );
+}