aboutsummaryrefslogtreecommitdiffstats
path: root/tests/window_contents.rs
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2019-11-06 13:30:50 -0500
committerJesse Luehrs <doy@tozt.net>2019-11-06 13:30:50 -0500
commite21d3005c5ec2304f9f016cd506da93c78da5e51 (patch)
treea525767295c39544cc25926f15dde951abd59e8b /tests/window_contents.rs
parentd778408be8b12fcc16a8fcaccde49bef927f22e0 (diff)
downloadvt100-rust-e21d3005c5ec2304f9f016cd506da93c78da5e51.tar.gz
vt100-rust-e21d3005c5ec2304f9f016cd506da93c78da5e51.zip
also add a rows_diff method
Diffstat (limited to 'tests/window_contents.rs')
-rw-r--r--tests/window_contents.rs88
1 files changed, 72 insertions, 16 deletions
diff --git a/tests/window_contents.rs b/tests/window_contents.rs
index 1d351cb..07a656d 100644
--- a/tests/window_contents.rs
+++ b/tests/window_contents.rs
@@ -72,8 +72,9 @@ fn empty_cells() {
#[test]
fn rows() {
let mut parser = vt100::Parser::new(24, 80);
+ let screen1 = parser.screen().clone();
assert_eq!(
- parser.screen().rows(0, 80).collect::<Vec<String>>(),
+ screen1.rows(0, 80).collect::<Vec<String>>(),
vec![
String::new(),
String::new(),
@@ -102,10 +103,7 @@ fn rows() {
]
);
assert_eq!(
- parser
- .screen()
- .rows_formatted(0, 80)
- .collect::<Vec<Vec<u8>>>(),
+ screen1.rows_formatted(0, 80).collect::<Vec<Vec<u8>>>(),
vec![
vec![],
vec![],
@@ -134,7 +132,7 @@ fn rows() {
]
);
assert_eq!(
- parser.screen().rows(5, 15).collect::<Vec<String>>(),
+ screen1.rows(5, 15).collect::<Vec<String>>(),
vec![
String::new(),
String::new(),
@@ -163,10 +161,7 @@ fn rows() {
]
);
assert_eq!(
- parser
- .screen()
- .rows_formatted(5, 15)
- .collect::<Vec<Vec<u8>>>(),
+ screen1.rows_formatted(5, 15).collect::<Vec<Vec<u8>>>(),
vec![
vec![],
vec![],
@@ -197,8 +192,9 @@ fn rows() {
parser
.process(b"\x1b[31mfoo\x1b[10;10H\x1b[32mbar\x1b[20;20H\x1b[33mbaz");
+ let screen2 = parser.screen().clone();
assert_eq!(
- parser.screen().rows(0, 80).collect::<Vec<String>>(),
+ screen2.rows(0, 80).collect::<Vec<String>>(),
vec![
"foo".to_string(),
String::new(),
@@ -227,8 +223,7 @@ fn rows() {
]
);
assert_eq!(
- parser
- .screen()
+ screen2
.rows_formatted(0, 80)
.collect::<Vec<Vec<u8>>>(),
vec![
@@ -259,7 +254,7 @@ fn rows() {
]
);
assert_eq!(
- parser.screen().rows(5, 15).collect::<Vec<String>>(),
+ screen2.rows(5, 15).collect::<Vec<String>>(),
vec![
String::new(),
String::new(),
@@ -288,8 +283,7 @@ fn rows() {
]
);
assert_eq!(
- parser
- .screen()
+ screen2
.rows_formatted(5, 15)
.collect::<Vec<Vec<u8>>>(),
vec![
@@ -319,6 +313,68 @@ fn rows() {
vec![],
]
);
+
+ assert_eq!(
+ screen2.rows_diff(&screen1, 0, 80).collect::<Vec<Vec<u8>>>(),
+ vec![
+ b"\x1b[31mfoo".to_vec(),
+ vec![],
+ vec![],
+ vec![],
+ vec![],
+ vec![],
+ vec![],
+ vec![],
+ vec![],
+ b"\x1b[9C\x1b[32mbar".to_vec(),
+ vec![],
+ vec![],
+ vec![],
+ vec![],
+ vec![],
+ vec![],
+ vec![],
+ vec![],
+ vec![],
+ b"\x1b[19C\x1b[33mbaz".to_vec(),
+ vec![],
+ vec![],
+ vec![],
+ vec![],
+ ]
+ );
+
+ parser.process(b"\x1b[10;11Ho");
+ let screen3 = parser.screen().clone();
+ assert_eq!(
+ screen3.rows_diff(&screen2, 0, 80).collect::<Vec<Vec<u8>>>(),
+ vec![
+ vec![],
+ vec![],
+ vec![],
+ vec![],
+ vec![],
+ vec![],
+ vec![],
+ vec![],
+ vec![],
+ b"\x1b[10C\x1b[33mo".to_vec(),
+ vec![],
+ vec![],
+ vec![],
+ vec![],
+ vec![],
+ vec![],
+ vec![],
+ vec![],
+ vec![],
+ vec![],
+ vec![],
+ vec![],
+ vec![],
+ vec![],
+ ]
+ );
}
#[test]