aboutsummaryrefslogtreecommitdiffstats
path: root/tests/basic.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/basic.rs')
-rw-r--r--tests/basic.rs30
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/basic.rs b/tests/basic.rs
index 46d9265..0d97bb5 100644
--- a/tests/basic.rs
+++ b/tests/basic.rs
@@ -18,10 +18,40 @@ fn set_window_size() {
let mut screen = vt100::Screen::new(24, 80);
assert_eq!(screen.rows(), 24);
assert_eq!(screen.cols(), 80);
+ assert_eq!(screen.cursor_position(), (0, 0));
screen.set_window_size(34, 8);
assert_eq!(screen.rows(), 34);
assert_eq!(screen.cols(), 8);
+ assert_eq!(screen.cursor_position(), (0, 0));
+
+ screen.process(b"\x1b[30;5H");
+ assert_eq!(screen.cursor_position(), (29, 4));
+
+ screen.set_window_size(24, 80);
+ assert_eq!(screen.rows(), 24);
+ assert_eq!(screen.cols(), 80);
+ assert_eq!(screen.cursor_position(), (23, 4));
+
+ screen.set_window_size(34, 8);
+ assert_eq!(screen.rows(), 34);
+ assert_eq!(screen.cols(), 8);
+ assert_eq!(screen.cursor_position(), (23, 4));
+
+ screen.process(b"\x1b[?1049h");
+ assert_eq!(screen.rows(), 34);
+ assert_eq!(screen.cols(), 8);
+ assert_eq!(screen.cursor_position(), (0, 0));
+
+ screen.set_window_size(24, 80);
+ assert_eq!(screen.rows(), 24);
+ assert_eq!(screen.cols(), 80);
+ assert_eq!(screen.cursor_position(), (0, 0));
+
+ screen.process(b"\x1b[?1049l");
+ assert_eq!(screen.rows(), 24);
+ assert_eq!(screen.cols(), 80);
+ assert_eq!(screen.cursor_position(), (23, 4));
}
#[test]