From e21d3005c5ec2304f9f016cd506da93c78da5e51 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Wed, 6 Nov 2019 13:30:50 -0500 Subject: also add a rows_diff method --- tests/window_contents.rs | 88 +++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 72 insertions(+), 16 deletions(-) (limited to 'tests') 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::>(), + screen1.rows(0, 80).collect::>(), vec![ String::new(), String::new(), @@ -102,10 +103,7 @@ fn rows() { ] ); assert_eq!( - parser - .screen() - .rows_formatted(0, 80) - .collect::>>(), + screen1.rows_formatted(0, 80).collect::>>(), vec![ vec![], vec![], @@ -134,7 +132,7 @@ fn rows() { ] ); assert_eq!( - parser.screen().rows(5, 15).collect::>(), + screen1.rows(5, 15).collect::>(), vec![ String::new(), String::new(), @@ -163,10 +161,7 @@ fn rows() { ] ); assert_eq!( - parser - .screen() - .rows_formatted(5, 15) - .collect::>>(), + screen1.rows_formatted(5, 15).collect::>>(), 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::>(), + screen2.rows(0, 80).collect::>(), vec![ "foo".to_string(), String::new(), @@ -227,8 +223,7 @@ fn rows() { ] ); assert_eq!( - parser - .screen() + screen2 .rows_formatted(0, 80) .collect::>>(), vec![ @@ -259,7 +254,7 @@ fn rows() { ] ); assert_eq!( - parser.screen().rows(5, 15).collect::>(), + screen2.rows(5, 15).collect::>(), vec![ String::new(), String::new(), @@ -288,8 +283,7 @@ fn rows() { ] ); assert_eq!( - parser - .screen() + screen2 .rows_formatted(5, 15) .collect::>>(), vec![ @@ -319,6 +313,68 @@ fn rows() { vec![], ] ); + + assert_eq!( + screen2.rows_diff(&screen1, 0, 80).collect::>>(), + 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![], + 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] -- cgit v1.2.3-54-g00ecf