aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2019-11-04 00:49:21 -0500
committerJesse Luehrs <doy@tozt.net>2019-11-04 00:49:21 -0500
commitea55c107307ef8bca11accc09ff2c47c74745cb1 (patch)
tree395f68717c932559f0d027d73dd226e0c380c135 /tests
parent7958770a507d17e4beed17009206322c6d8fb7c0 (diff)
downloadvt100-rust-ea55c107307ef8bca11accc09ff2c47c74745cb1.tar.gz
vt100-rust-ea55c107307ef8bca11accc09ff2c47c74745cb1.zip
more useful contents/contents_formatted behavior
Diffstat (limited to 'tests')
-rw-r--r--tests/basic.rs2
-rw-r--r--tests/control.rs25
-rw-r--r--tests/csi.rs179
-rw-r--r--tests/escape.rs47
-rw-r--r--tests/init.rs10
-rw-r--r--tests/mode.rs52
-rw-r--r--tests/scroll.rs10
-rw-r--r--tests/text.rs70
-rw-r--r--tests/window_contents.rs48
9 files changed, 162 insertions, 281 deletions
diff --git a/tests/basic.rs b/tests/basic.rs
index b260a23..f26e175 100644
--- a/tests/basic.rs
+++ b/tests/basic.rs
@@ -9,7 +9,7 @@ fn process_text() {
let mut screen = vt100::Screen::new(24, 80);
let input = b"foo\x1b[31m\x1b[32mb\x1b[3;7;42ma\x1b[23mr";
screen.process(input);
- assert_eq!(screen.contents(0, 0, 0, 50), "foobar\n");
+ assert_eq!(screen.contents(0, 0, 0, 50), "foobar");
}
#[test]
diff --git a/tests/control.rs b/tests/control.rs
index 7e45add..b1e8ea2 100644
--- a/tests/control.rs
+++ b/tests/control.rs
@@ -19,10 +19,7 @@ fn bs() {
assert_eq!(screen.cell(0, 2).unwrap().contents(), "a");
assert_eq!(screen.cell(0, 3).unwrap().contents(), "");
assert_eq!(screen.cell(1, 0).unwrap().contents(), "");
- assert_eq!(
- screen.contents(0, 0, 23, 79),
- "faa\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
- );
+ assert_eq!(screen.contents(0, 0, 23, 79), "faa");
screen.process(b"\r\nquux\x08\x08\x08\x08\x08\x08bar");
assert_eq!(screen.cell(1, 0).unwrap().contents(), "b");
@@ -31,10 +28,7 @@ fn bs() {
assert_eq!(screen.cell(1, 3).unwrap().contents(), "x");
assert_eq!(screen.cell(1, 4).unwrap().contents(), "");
assert_eq!(screen.cell(2, 0).unwrap().contents(), "");
- assert_eq!(
- screen.contents(0, 0, 23, 79),
- "faa\nbarx\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
- );
+ assert_eq!(screen.contents(0, 0, 23, 79), "faa\nbarx");
}
#[test]
@@ -54,10 +48,7 @@ fn tab() {
assert_eq!(screen.cell(0, 9).unwrap().contents(), "a");
assert_eq!(screen.cell(0, 10).unwrap().contents(), "r");
assert_eq!(screen.cell(0, 11).unwrap().contents(), "");
- assert_eq!(
- screen.contents(0, 0, 23, 79),
- "foo bar\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
- );
+ assert_eq!(screen.contents(0, 0, 23, 79), "foo bar");
}
fn lf_with(b: u8) {
@@ -77,10 +68,7 @@ fn lf_with(b: u8) {
assert_eq!(screen.cell(1, 4).unwrap().contents(), "a");
assert_eq!(screen.cell(1, 5).unwrap().contents(), "r");
assert_eq!(screen.cell(1, 6).unwrap().contents(), "");
- assert_eq!(
- screen.contents(0, 0, 23, 79),
- "foo\n bar\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
- );
+ assert_eq!(screen.contents(0, 0, 23, 79), "foo\n bar");
}
#[test]
@@ -109,8 +97,5 @@ fn cr() {
assert_eq!(screen.cell(0, 3).unwrap().contents(), "o");
assert_eq!(screen.cell(0, 4).unwrap().contents(), "");
assert_eq!(screen.cell(1, 0).unwrap().contents(), "");
- assert_eq!(
- screen.contents(0, 0, 23, 79),
- "baro\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
- );
+ assert_eq!(screen.contents(0, 0, 23, 79), "baro");
}
diff --git a/tests/csi.rs b/tests/csi.rs
index 5177100..6878363 100644
--- a/tests/csi.rs
+++ b/tests/csi.rs
@@ -91,221 +91,215 @@ fn relative_movement() {
#[test]
fn ed() {
let mut screen = vt100::Screen::new(24, 80);
- assert_eq!(
- screen.contents(0, 0, 23, 79),
- "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
- );
+ assert_eq!(screen.contents(0, 0, 23, 79), "");
screen.process(b"foo\x1b[5;5Hbar\x1b[10;10Hbaz\x1b[20;20Hquux");
- assert_eq!(screen.contents(0, 0, 23, 79), "foo\n\n\n\n bar\n\n\n\n\n baz\n\n\n\n\n\n\n\n\n\n quux\n\n\n\n\n");
+ assert_eq!(screen.contents(0, 0, 23, 79), "foo\n\n\n\n bar\n\n\n\n\n baz\n\n\n\n\n\n\n\n\n\n quux");
screen.process(b"\x1b[10;12H\x1b[0J");
- assert_eq!(screen.contents(0, 0, 23, 79), "foo\n\n\n\n bar\n\n\n\n\n ba\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
-
- screen.process(b"\x1b[5;6H\x1b[1J");
assert_eq!(
screen.contents(0, 0, 23, 79),
- "\n\n\n\n r\n\n\n\n\n ba\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
+ "foo\n\n\n\n bar\n\n\n\n\n ba"
);
- screen.process(b"\x1b[7;7H\x1b[2J");
+ screen.process(b"\x1b[5;6H\x1b[1J");
assert_eq!(
screen.contents(0, 0, 23, 79),
- "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
+ "\n\n\n\n r\n\n\n\n\n ba"
);
+ screen.process(b"\x1b[7;7H\x1b[2J");
+ assert_eq!(screen.contents(0, 0, 23, 79), "");
+
screen.process(b"\x1b[2J\x1b[H");
- assert_eq!(
- screen.contents(0, 0, 23, 79),
- "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
- );
+ assert_eq!(screen.contents(0, 0, 23, 79), "");
screen.process(b"foo\x1b[5;5Hbar\x1b[10;10Hbaz\x1b[20;20Hquux");
- assert_eq!(screen.contents(0, 0, 23, 79), "foo\n\n\n\n bar\n\n\n\n\n baz\n\n\n\n\n\n\n\n\n\n quux\n\n\n\n\n");
+ assert_eq!(screen.contents(0, 0, 23, 79), "foo\n\n\n\n bar\n\n\n\n\n baz\n\n\n\n\n\n\n\n\n\n quux");
screen.process(b"\x1b[10;12H\x1b[J");
- assert_eq!(screen.contents(0, 0, 23, 79), "foo\n\n\n\n bar\n\n\n\n\n ba\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
-
- screen.process(b"\x1b[2J\x1b[H");
assert_eq!(
screen.contents(0, 0, 23, 79),
- "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
+ "foo\n\n\n\n bar\n\n\n\n\n ba"
);
+ screen.process(b"\x1b[2J\x1b[H");
+ assert_eq!(screen.contents(0, 0, 23, 79), "");
+
screen.process(b"foo\x1b[5;5Hbar\x1b[10;10Hbaz\x1b[20;20Hquux");
- assert_eq!(screen.contents(0, 0, 23, 79), "foo\n\n\n\n bar\n\n\n\n\n baz\n\n\n\n\n\n\n\n\n\n quux\n\n\n\n\n");
+ assert_eq!(screen.contents(0, 0, 23, 79), "foo\n\n\n\n bar\n\n\n\n\n baz\n\n\n\n\n\n\n\n\n\n quux");
screen.process(b"\x1b[10;12H\x1b[?0J");
- assert_eq!(screen.contents(0, 0, 23, 79), "foo\n\n\n\n bar\n\n\n\n\n ba\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
-
- screen.process(b"\x1b[5;6H\x1b[?1J");
assert_eq!(
screen.contents(0, 0, 23, 79),
- "\n\n\n\n r\n\n\n\n\n ba\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
+ "foo\n\n\n\n bar\n\n\n\n\n ba"
);
- screen.process(b"\x1b[7;7H\x1b[?2J");
+ screen.process(b"\x1b[5;6H\x1b[?1J");
assert_eq!(
screen.contents(0, 0, 23, 79),
- "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
+ "\n\n\n\n r\n\n\n\n\n ba"
);
+ screen.process(b"\x1b[7;7H\x1b[?2J");
+ assert_eq!(screen.contents(0, 0, 23, 79), "");
+
screen.process(b"\x1b[2J\x1b[H");
- assert_eq!(
- screen.contents(0, 0, 23, 79),
- "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
- );
+ assert_eq!(screen.contents(0, 0, 23, 79), "");
screen.process(b"foo\x1b[5;5Hbar\x1b[10;10Hbaz\x1b[20;20Hquux");
- assert_eq!(screen.contents(0, 0, 23, 79), "foo\n\n\n\n bar\n\n\n\n\n baz\n\n\n\n\n\n\n\n\n\n quux\n\n\n\n\n");
+ assert_eq!(screen.contents(0, 0, 23, 79), "foo\n\n\n\n bar\n\n\n\n\n baz\n\n\n\n\n\n\n\n\n\n quux");
screen.process(b"\x1b[10;12H\x1b[?J");
- assert_eq!(screen.contents(0, 0, 23, 79), "foo\n\n\n\n bar\n\n\n\n\n ba\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
+ assert_eq!(
+ screen.contents(0, 0, 23, 79),
+ "foo\n\n\n\n bar\n\n\n\n\n ba"
+ );
}
#[test]
fn el() {
let mut screen = vt100::Screen::new(24, 80);
- assert_eq!(
- screen.contents(0, 0, 23, 79),
- "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
- );
+ assert_eq!(screen.contents(0, 0, 23, 79), "");
screen.process(b"foo\x1b[5;5Hbarbar\x1b[10;10Hbazbaz\x1b[20;20Hquux");
- assert_eq!(screen.contents(0, 0, 23, 79), "foo\n\n\n\n barbar\n\n\n\n\n bazbaz\n\n\n\n\n\n\n\n\n\n quux\n\n\n\n\n");
+ assert_eq!(screen.contents(0, 0, 23, 79), "foo\n\n\n\n barbar\n\n\n\n\n bazbaz\n\n\n\n\n\n\n\n\n\n quux");
screen.process(b"\x1b[5;8H\x1b[0K");
- assert_eq!(screen.contents(0, 0, 23, 79), "foo\n\n\n\n bar\n\n\n\n\n bazbaz\n\n\n\n\n\n\n\n\n\n quux\n\n\n\n\n");
+ assert_eq!(screen.contents(0, 0, 23, 79), "foo\n\n\n\n bar\n\n\n\n\n bazbaz\n\n\n\n\n\n\n\n\n\n quux");
screen.process(b"\x1b[10;12H\x1b[1K");
- assert_eq!(screen.contents(0, 0, 23, 79), "foo\n\n\n\n bar\n\n\n\n\n baz\n\n\n\n\n\n\n\n\n\n quux\n\n\n\n\n");
+ assert_eq!(screen.contents(0, 0, 23, 79), "foo\n\n\n\n bar\n\n\n\n\n baz\n\n\n\n\n\n\n\n\n\n quux");
screen.process(b"\x1b[20;22H\x1b[2K");
- assert_eq!(screen.contents(0, 0, 23, 79), "foo\n\n\n\n bar\n\n\n\n\n baz\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
+ assert_eq!(
+ screen.contents(0, 0, 23, 79),
+ "foo\n\n\n\n bar\n\n\n\n\n baz"
+ );
screen.process(b"\x1b[1;2H\x1b[K");
- assert_eq!(screen.contents(0, 0, 23, 79), "f\n\n\n\n bar\n\n\n\n\n baz\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
-
- screen.process(b"\x1b[2J\x1b[H");
assert_eq!(
screen.contents(0, 0, 23, 79),
- "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
+ "f\n\n\n\n bar\n\n\n\n\n baz"
);
+ screen.process(b"\x1b[2J\x1b[H");
+ assert_eq!(screen.contents(0, 0, 23, 79), "");
+
screen.process(b"foo\x1b[5;5Hbarbar\x1b[10;10Hbazbaz\x1b[20;20Hquux");
- assert_eq!(screen.contents(0, 0, 23, 79), "foo\n\n\n\n barbar\n\n\n\n\n bazbaz\n\n\n\n\n\n\n\n\n\n quux\n\n\n\n\n");
+ assert_eq!(screen.contents(0, 0, 23, 79), "foo\n\n\n\n barbar\n\n\n\n\n bazbaz\n\n\n\n\n\n\n\n\n\n quux");
screen.process(b"\x1b[5;8H\x1b[?0K");
- assert_eq!(screen.contents(0, 0, 23, 79), "foo\n\n\n\n bar\n\n\n\n\n bazbaz\n\n\n\n\n\n\n\n\n\n quux\n\n\n\n\n");
+ assert_eq!(screen.contents(0, 0, 23, 79), "foo\n\n\n\n bar\n\n\n\n\n bazbaz\n\n\n\n\n\n\n\n\n\n quux");
screen.process(b"\x1b[10;12H\x1b[?1K");
- assert_eq!(screen.contents(0, 0, 23, 79), "foo\n\n\n\n bar\n\n\n\n\n baz\n\n\n\n\n\n\n\n\n\n quux\n\n\n\n\n");
+ assert_eq!(screen.contents(0, 0, 23, 79), "foo\n\n\n\n bar\n\n\n\n\n baz\n\n\n\n\n\n\n\n\n\n quux");
screen.process(b"\x1b[20;22H\x1b[?2K");
- assert_eq!(screen.contents(0, 0, 23, 79), "foo\n\n\n\n bar\n\n\n\n\n baz\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
+ assert_eq!(
+ screen.contents(0, 0, 23, 79),
+ "foo\n\n\n\n bar\n\n\n\n\n baz"
+ );
screen.process(b"\x1b[1;2H\x1b[?K");
- assert_eq!(screen.contents(0, 0, 23, 79), "f\n\n\n\n bar\n\n\n\n\n baz\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
-
- screen.process(b"\x1b[2J\x1b[H");
assert_eq!(
screen.contents(0, 0, 23, 79),
- "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
+ "f\n\n\n\n bar\n\n\n\n\n baz"
);
+ screen.process(b"\x1b[2J\x1b[H");
+ assert_eq!(screen.contents(0, 0, 23, 79), "");
+
screen.process(b"1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890");
assert_eq!(
screen.contents(0, 0, 23, 79),
- "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
+ "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
);
screen.process(b"\x1b[1;21H\x1b[K");
assert_eq!(
screen.contents(0, 0, 23, 79),
- "12345678901234567890\n12345678901234567890\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
+ "12345678901234567890\n12345678901234567890"
);
screen.process(b"\x1b[1;10H\x1b[1K");
assert_eq!(
screen.contents(0, 0, 23, 79),
- " 1234567890\n12345678901234567890\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
+ " 1234567890\n12345678901234567890"
);
}
#[test]
fn ich_dch_ech() {
let mut screen = vt100::Screen::new(24, 80);
- assert_eq!(
- screen.contents(0, 0, 23, 79),
- "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
- );
+ assert_eq!(screen.contents(0, 0, 23, 79), "");
screen.process(b"\x1b[10;10Hfoobar");
assert_eq!(
screen.contents(0, 0, 23, 79),
- "\n\n\n\n\n\n\n\n\n foobar\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
+ "\n\n\n\n\n\n\n\n\n foobar"
);
screen.process(b"\x1b[10;12H\x1b[3@");
assert_eq!(
screen.contents(0, 0, 23, 79),
- "\n\n\n\n\n\n\n\n\n fo obar\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
+ "\n\n\n\n\n\n\n\n\n fo obar"
);
assert_eq!(screen.cursor_position(), (9, 11));
screen.process(b"\x1b[4P");
assert_eq!(
screen.contents(0, 0, 23, 79),
- "\n\n\n\n\n\n\n\n\n fobar\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
+ "\n\n\n\n\n\n\n\n\n fobar"
);
assert_eq!(screen.cursor_position(), (9, 11));
screen.process(b"\x1b[100@");
assert_eq!(
screen.contents(0, 0, 23, 79),
- "\n\n\n\n\n\n\n\n\n fo\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
+ "\n\n\n\n\n\n\n\n\n fo"
);
assert_eq!(screen.cursor_position(), (9, 11));
screen.process(b"obar");
assert_eq!(
screen.contents(0, 0, 23, 79),
- "\n\n\n\n\n\n\n\n\n foobar\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
+ "\n\n\n\n\n\n\n\n\n foobar"
);
assert_eq!(screen.cursor_position(), (9, 15));
screen.process(b"\x1b[10;12H\x1b[100P");
assert_eq!(
screen.contents(0, 0, 23, 79),
- "\n\n\n\n\n\n\n\n\n fo\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
+ "\n\n\n\n\n\n\n\n\n fo"
);
assert_eq!(screen.cursor_position(), (9, 11));
screen.process(b"obar");
assert_eq!(
screen.contents(0, 0, 23, 79),
- "\n\n\n\n\n\n\n\n\n foobar\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
+ "\n\n\n\n\n\n\n\n\n foobar"
);
assert_eq!(screen.cursor_position(), (9, 15));
screen.process(b"\x1b[10;13H\x1b[X");
assert_eq!(
screen.contents(0, 0, 23, 79),
- "\n\n\n\n\n\n\n\n\n foo ar\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
+ "\n\n\n\n\n\n\n\n\n foo ar"
);
assert_eq!(screen.cursor_position(), (9, 12));
screen.process(b"\x1b[10;11H\x1b[4X");
assert_eq!(
screen.contents(0, 0, 23, 79),
- "\n\n\n\n\n\n\n\n\n f r\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
+ "\n\n\n\n\n\n\n\n\n f r"
);
assert_eq!(screen.cursor_position(), (9, 10));
screen.process(b"\x1b[10;11H\x1b[400X");
assert_eq!(
screen.contents(0, 0, 23, 79),
- "\n\n\n\n\n\n\n\n\n f\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
+ "\n\n\n\n\n\n\n\n\n f"
);
assert_eq!(screen.cursor_position(), (9, 10));
}
@@ -313,95 +307,80 @@ fn ich_dch_ech() {
#[test]
fn il_dl() {
let mut screen = vt100::Screen::new(24, 80);
- assert_eq!(
- screen.contents(0, 0, 23, 79),
- "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
- );
+ assert_eq!(screen.contents(0, 0, 23, 79), "");
screen.process(b"\x1b[10;10Hfoobar\x1b[3D");
assert_eq!(
screen.contents(0, 0, 23, 79),
- "\n\n\n\n\n\n\n\n\n foobar\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
+ "\n\n\n\n\n\n\n\n\n foobar"
);
assert_eq!(screen.cursor_position(), (9, 12));
screen.process(b"\x1b[L");
assert_eq!(
screen.contents(0, 0, 23, 79),
- "\n\n\n\n\n\n\n\n\n\n foobar\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
+ "\n\n\n\n\n\n\n\n\n\n foobar"
);
assert_eq!(screen.cursor_position(), (9, 12));
screen.process(b"\x1b[3L");
assert_eq!(
screen.contents(0, 0, 23, 79),
- "\n\n\n\n\n\n\n\n\n\n\n\n\n foobar\n\n\n\n\n\n\n\n\n\n\n"
+ "\n\n\n\n\n\n\n\n\n\n\n\n\n foobar"
);
assert_eq!(screen.cursor_position(), (9, 12));
screen.process(b"\x1b[500L");
- assert_eq!(
- screen.contents(0, 0, 23, 79),
- "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
- );
+ assert_eq!(screen.contents(0, 0, 23, 79), "");
assert_eq!(screen.cursor_position(), (9, 12));
screen.process(b"\x1b[10;10Hfoobar\x1b[3D\x1b[6A");
assert_eq!(
screen.contents(0, 0, 23, 79),
- "\n\n\n\n\n\n\n\n\n foobar\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
+ "\n\n\n\n\n\n\n\n\n foobar"
);
assert_eq!(screen.cursor_position(), (3, 12));
screen.process(b"\x1b[M");
assert_eq!(
screen.contents(0, 0, 23, 79),
- "\n\n\n\n\n\n\n\n foobar\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
+ "\n\n\n\n\n\n\n\n foobar"
);
assert_eq!(screen.cursor_position(), (3, 12));
screen.process(b"\x1b[3M");
- assert_eq!(
- screen.contents(0, 0, 23, 79),
- "\n\n\n\n\n foobar\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
- );
+ assert_eq!(screen.contents(0, 0, 23, 79), "\n\n\n\n\n foobar");
assert_eq!(screen.cursor_position(), (3, 12));
screen.process(b"\x1b[500M");
- assert_eq!(
- screen.contents(0, 0, 23, 79),
- "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
- );
+ assert_eq!(screen.contents(0, 0, 23, 79), "");
assert_eq!(screen.cursor_position(), (3, 12));
}
#[test]
fn scroll() {
let mut screen = vt100::Screen::new(24, 80);
- assert_eq!(
- screen.contents(0, 0, 23, 79),
- "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
- );
+ assert_eq!(screen.contents(0, 0, 23, 79), "");
screen.process(b"1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9\r\n10\r\n11\r\n12\r\n13\r\n14\r\n15\r\n16\r\n17\r\n18\r\n19\r\n20\r\n21\r\n22\r\n23\r\n24");
- assert_eq!(screen.contents(0, 0, 23, 79), "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n");
+ assert_eq!(screen.contents(0, 0, 23, 79), "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24");
screen.process(b"\x1b[15;15H");
assert_eq!(screen.cursor_position(), (14, 14));
screen.process(b"\x1b[S");
- assert_eq!(screen.contents(0, 0, 23, 79), "2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n\n");
+ assert_eq!(screen.contents(0, 0, 23, 79), "2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24");
assert_eq!(screen.cursor_position(), (14, 14));
screen.process(b"\x1b[3S");
- assert_eq!(screen.contents(0, 0, 23, 79), "5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n\n\n\n\n");
+ assert_eq!(screen.contents(0, 0, 23, 79), "5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24");
assert_eq!(screen.cursor_position(), (14, 14));
screen.process(b"\x1b[T");
- assert_eq!(screen.contents(0, 0, 23, 79), "\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n\n\n\n");
+ assert_eq!(screen.contents(0, 0, 23, 79), "\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24");
assert_eq!(screen.cursor_position(), (14, 14));
screen.process(b"\x1b[5T");
- assert_eq!(screen.contents(0, 0, 23, 79), "\n\n\n\n\n\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n");
+ assert_eq!(screen.contents(0, 0, 23, 79), "\n\n\n\n\n\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22");
assert_eq!(screen.cursor_position(), (14, 14));
}
diff --git a/tests/escape.rs b/tests/escape.rs
index 6c70aee..2385704 100644
--- a/tests/escape.rs
+++ b/tests/escape.rs
@@ -14,10 +14,7 @@ fn deckpam() {
fn ri() {
let mut screen = vt100::Screen::new(24, 80);
screen.process(b"foo\nbar\x1bMbaz");
- assert_eq!(
- screen.contents(0, 0, 23, 79),
- "foo baz\n bar\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
- );
+ assert_eq!(screen.contents(0, 0, 23, 79), "foo baz\n bar");
}
#[test]
@@ -28,14 +25,8 @@ fn ris() {
let cell = screen.cell(0, 0).unwrap();
assert_eq!(cell.contents(), "");
- assert_eq!(
- screen.contents(0, 0, 23, 79),
- "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
- );
- assert_eq!(
- screen.contents_formatted(0, 0, 23, 79),
- "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
- );
+ assert_eq!(screen.contents(0, 0, 23, 79), "");
+ assert_eq!(screen.contents_formatted(0, 0, 23, 79), "");
assert_eq!(screen.title(), "");
assert_eq!(screen.icon_name(), "");
@@ -67,11 +58,11 @@ fn ris() {
let cell = screen.cell(0, 0).unwrap();
assert_eq!(cell.contents(), "f");
+ assert_eq!(screen.contents(0, 0, 23, 79), "foo");
assert_eq!(
- screen.contents(0, 0, 23, 79),
- "foo\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
+ screen.contents_formatted(0, 0, 23, 79),
+ "f\x1b[31;47;1;3;4moo"
);
- assert_eq!(screen.contents_formatted(0, 0, 23, 79), "f\x1b[31;47;1;3;4moo\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
assert_eq!(screen.title(), "window title");
assert_eq!(screen.icon_name(), "window icon name");
@@ -105,14 +96,8 @@ fn ris() {
let cell = screen.cell(0, 0).unwrap();
assert_eq!(cell.contents(), "");
- assert_eq!(
- screen.contents(0, 0, 23, 79),
- "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
- );
- assert_eq!(
- screen.contents_formatted(0, 0, 23, 79),
- "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
- );
+ assert_eq!(screen.contents(0, 0, 23, 79), "");
+ assert_eq!(screen.contents_formatted(0, 0, 23, 79), "");
// title and icon name don't change with reset
assert_eq!(screen.title(), "window title");
@@ -154,17 +139,11 @@ fn vb() {
fn decsc() {
let mut screen = vt100::Screen::new(24, 80);
screen.process(b"foo\x1b7\r\n\r\n\r\n bar\x1b8baz");
- assert_eq!(
- screen.contents(0, 0, 23, 79),
- "foobaz\n\n\n bar\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
- );
+ assert_eq!(screen.contents(0, 0, 23, 79), "foobaz\n\n\n bar");
assert_eq!(screen.cursor_position(), (0, 6));
screen.process(b"\x1b[?47h\x1b[20;20H");
- assert_eq!(
- screen.contents(0, 0, 23, 79),
- "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
- );
+ assert_eq!(screen.contents(0, 0, 23, 79), "");
assert_eq!(screen.cursor_position(), (19, 19));
screen.process(b"\x1b8");
@@ -180,20 +159,20 @@ fn decsc() {
assert_eq!(screen.cursor_position(), (4, 3));
assert_eq!(
screen.contents_formatted(0, 0, 23, 79),
- "\n\n\n\n\x1b[31mfoo\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
+ "\r\n\r\n\r\n\r\n\x1b[31mfoo"
);
screen.process(b"\x1b[32m\x1b[?6lbar");
assert_eq!(screen.cursor_position(), (0, 3));
assert_eq!(
screen.contents_formatted(0, 0, 23, 79),
- "\x1b[32mbar\n\n\n\n\x1b[31mfoo\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
+ "\x1b[32mbar\r\n\r\n\r\n\r\n\x1b[31mfoo"
);
screen.process(b"\x1b8\x1b[Hz");
assert_eq!(screen.cursor_position(), (4, 1));
assert_eq!(
screen.contents_formatted(0, 0, 23, 79),
- "\x1b[32mbar\n\n\n\n\x1b[31mzoo\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
+ "\x1b[32mbar\r\n\r\n\r\n\r\n\x1b[31mzoo"
);
}
diff --git a/tests/init.rs b/tests/init.rs
index 4893f4a..7617fe7 100644
--- a/tests/init.rs
+++ b/tests/init.rs
@@ -15,14 +15,8 @@ fn init() {
let cell = screen.cell(0, 80);
assert!(cell.is_none());
- assert_eq!(
- screen.contents(0, 0, 23, 79),
- "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
- );
- assert_eq!(
- screen.contents_formatted(0, 0, 23, 79),
- "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
- );
+ assert_eq!(screen.contents(0, 0, 23, 79), "");
+ assert_eq!(screen.contents_formatted(0, 0, 23, 79), "");
assert_eq!(screen.title(), "");
assert_eq!(screen.icon_name(), "");
diff --git a/tests/mode.rs b/tests/mode.rs
index be6ad6d..0cca4b7 100644
--- a/tests/mode.rs
+++ b/tests/mode.rs
@@ -303,98 +303,74 @@ fn alternate_buffer() {
// 47
screen.process(b"\x1bc");
- assert_eq!(
- screen.contents(0, 0, 23, 79),
- "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
- );
+ assert_eq!(screen.contents(0, 0, 23, 79), "");
assert_eq!(screen.cursor_position(), (0, 0));
assert!(!screen.alternate_screen());
screen.process(b"\x1b[m\x1b[2J\x1b[H1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9\r\n10\r\n11\r\n12\r\n13\r\n14\r\n15\r\n16\r\n17\r\n18\r\n19\r\n20\r\n21\r\n22\r\n23\r\n24");
- assert_eq!(screen.contents(0, 0, 23, 79), "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n");
+ assert_eq!(screen.contents(0, 0, 23, 79), "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24");
assert_eq!(screen.cursor_position(), (23, 2));
assert!(!screen.alternate_screen());
screen.process(b"\x1b[?47h");
- assert_eq!(
- screen.contents(0, 0, 23, 79),
- "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
- );
+ assert_eq!(screen.contents(0, 0, 23, 79), "");
assert_eq!(screen.cursor_position(), (0, 0));
assert!(screen.alternate_screen());
screen.process(b"foobar");
- assert_eq!(
- screen.contents(0, 0, 23, 79),
- "foobar\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
- );
+ assert_eq!(screen.contents(0, 0, 23, 79), "foobar");
assert_eq!(screen.cursor_position(), (0, 6));
assert!(screen.alternate_screen());
screen.process(b"\x1b[?47l");
- assert_eq!(screen.contents(0, 0, 23, 79), "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n");
+ assert_eq!(screen.contents(0, 0, 23, 79), "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24");
assert_eq!(screen.cursor_position(), (23, 2));
assert!(!screen.alternate_screen());
screen.process(b"\x1b[?47h");
- assert_eq!(
- screen.contents(0, 0, 23, 79),
- "foobar\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
- );
+ assert_eq!(screen.contents(0, 0, 23, 79), "foobar");
assert_eq!(screen.cursor_position(), (0, 6));
assert!(screen.alternate_screen());
screen.process(b"\x1b[?47l");
- assert_eq!(screen.contents(0, 0, 23, 79), "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n");
+ assert_eq!(screen.contents(0, 0, 23, 79), "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24");
assert_eq!(screen.cursor_position(), (23, 2));
assert!(!screen.alternate_screen());
// 1049
screen.process(b"\x1bc");
- assert_eq!(
- screen.contents(0, 0, 23, 79),
- "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
- );
+ assert_eq!(screen.contents(0, 0, 23, 79), "");
assert_eq!(screen.cursor_position(), (0, 0));
assert!(!screen.alternate_screen());
screen.process(b"\x1b[m\x1b[2J\x1b[H1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9\r\n10\r\n11\r\n12\r\n13\r\n14\r\n15\r\n16\r\n17\r\n18\r\n19\r\n20\r\n21\r\n22\r\n23\r\n24");
- assert_eq!(screen.contents(0, 0, 23, 79), "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n");
+ assert_eq!(screen.contents(0, 0, 23, 79), "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24");
assert_eq!(screen.cursor_position(), (23, 2));
assert!(!screen.alternate_screen());
screen.process(b"\x1b[?1049h");
- assert_eq!(
- screen.contents(0, 0, 23, 79),
- "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
- );
+ assert_eq!(screen.contents(0, 0, 23, 79), "");
assert_eq!(screen.cursor_position(), (0, 0));
assert!(screen.alternate_screen());
screen.process(b"foobar");
- assert_eq!(
- screen.contents(0, 0, 23, 79),
- "foobar\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
- );
+ assert_eq!(screen.contents(0, 0, 23, 79), "foobar");
assert_eq!(screen.cursor_position(), (0, 6));
assert!(screen.alternate_screen());
screen.process(b"\x1b[?1049l");
- assert_eq!(screen.contents(0, 0, 23, 79), "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n");
+ assert_eq!(screen.contents(0, 0, 23, 79), "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24");
assert_eq!(screen.cursor_position(), (23, 2));
assert!(!screen.alternate_screen());
screen.process(b"\x1b[?1049h");
- assert_eq!(
- screen.contents(0, 0, 23, 79),
- "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
- );
+ assert_eq!(screen.contents(0, 0, 23, 79), "");
assert_eq!(screen.cursor_position(), (0, 0));
assert!(screen.alternate_screen());
screen.process(b"\x1b[?1049l");
- assert_eq!(screen.contents(0, 0, 23, 79), "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n");
+ assert_eq!(screen.contents(0, 0, 23, 79), "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24");
assert_eq!(screen.cursor_position(), (23, 2));
assert!(!screen.alternate_screen());
}
diff --git a/tests/scroll.rs b/tests/scroll.rs
index e7f0e7f..b75a54d 100644
--- a/tests/scroll.rs
+++ b/tests/scroll.rs
@@ -2,10 +2,10 @@
fn scroll_regions() {
let mut screen = vt100::Screen::new(24, 80);
screen.process(b"\x1b[m\x1b[2J\x1b[H1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9\r\n10\r\n11\r\n12\r\n13\r\n14\r\n15\r\n16\r\n17\r\n18\r\n19\r\n20\r\n21\r\n22\r\n23\r\n24");
- assert_eq!(screen.contents(0, 0, 23, 79), "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n");
+ assert_eq!(screen.contents(0, 0, 23, 79), "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24");
screen.process(b"\x1b[24;50H\n");
- assert_eq!(screen.contents(0, 0, 23, 79), "2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n\n");
+ assert_eq!(screen.contents(0, 0, 23, 79), "2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24");
screen.process(b"\x1b[m\x1b[2J\x1b[H1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9\r\n10\r\n11\r\n12\r\n13\r\n14\r\n15\r\n16\r\n17\r\n18\r\n19\r\n20\r\n21\r\n22\r\n23\r\n24");
@@ -16,7 +16,7 @@ fn scroll_regions() {
assert_eq!(screen.cursor_position(), (19, 49));
screen.process(b"\n");
- assert_eq!(screen.contents(0, 0, 23, 79), "1\n2\n3\n4\n5\n6\n7\n8\n9\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n\n21\n22\n23\n24\n");
+ assert_eq!(screen.contents(0, 0, 23, 79), "1\n2\n3\n4\n5\n6\n7\n8\n9\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n\n21\n22\n23\n24");
assert_eq!(screen.cursor_position(), (19, 49));
screen.process(b"\x1b[B");
@@ -26,9 +26,9 @@ fn scroll_regions() {
assert_eq!(screen.cursor_position(), (9, 49));
screen.process(b"\x1b[1;24r\x1b[m\x1b[2J\x1b[H1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9\r\n10\r\n11\r\n12\r\n13\r\n14\r\n15\r\n16\r\n17\r\n18\r\n19\r\n20\r\n21\r\n22\r\n23\r\n24");
screen.process(b"\x1b[10;20r\x1b[15;50H\x1b[2L");
- assert_eq!(screen.contents(0, 0, 23, 79), "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n\n\n15\n16\n17\n18\n21\n22\n23\n24\n");
+ assert_eq!(screen.contents(0, 0, 23, 79), "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n\n\n15\n16\n17\n18\n21\n22\n23\n24");
screen.process(b"\x1b[10;50H\x1bM");
- assert_eq!(screen.contents(0, 0, 23, 79), "1\n2\n3\n4\n5\n6\n7\n8\n9\n\n10\n11\n12\n13\n14\n\n\n15\n16\n17\n21\n22\n23\n24\n");
+ assert_eq!(screen.contents(0, 0, 23, 79), "1\n2\n3\n4\n5\n6\n7\n8\n9\n\n10\n11\n12\n13\n14\n\n\n15\n16\n17\n21\n22\n23\n24");
}
#[test]
diff --git a/tests/text.rs b/tests/text.rs
index af71fd7..f741100 100644
--- a/tests/text.rs
+++ b/tests/text.rs
@@ -9,14 +9,8 @@ fn ascii() {
assert_eq!(screen.cell(0, 2).unwrap().contents(), "o");
assert_eq!(screen.cell(0, 3).unwrap().contents(), "");
assert_eq!(screen.cell(1, 0).unwrap().contents(), "");
- assert_eq!(
- screen.contents(0, 0, 23, 79),
- "foo\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
- );
- assert_eq!(
- screen.contents(0, 0, 500, 500),
- "foo\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
- );
+ assert_eq!(screen.contents(0, 0, 23, 79), "foo");
+ assert_eq!(screen.contents(0, 0, 500, 500), "foo");
}
#[test]
@@ -29,14 +23,8 @@ fn utf8() {
assert_eq!(screen.cell(0, 3).unwrap().contents(), "é");
assert_eq!(screen.cell(0, 4).unwrap().contents(), "");
assert_eq!(screen.cell(1, 0).unwrap().contents(), "");
- assert_eq!(
- screen.contents(0, 0, 23, 79),
- "café\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
- );
- assert_eq!(
- screen.contents(0, 0, 500, 500),
- "café\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
- );
+ assert_eq!(screen.contents(0, 0, 23, 79), "café");
+ assert_eq!(screen.contents(0, 0, 500, 500), "café");
}
#[test]
@@ -54,14 +42,8 @@ fn newlines() {
assert_eq!(screen.cell(2, 2).unwrap().contents(), "d");
assert_eq!(screen.cell(0, 3).unwrap().contents(), "");
assert_eq!(screen.cell(3, 0).unwrap().contents(), "");
- assert_eq!(
- screen.contents(0, 0, 23, 79),
- "f\noo\nood\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
- );
- assert_eq!(
- screen.contents(0, 0, 500, 500),
- "f\noo\nood\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
- );
+ assert_eq!(screen.contents(0, 0, 23, 79), "f\noo\nood");
+ assert_eq!(screen.contents(0, 0, 500, 500), "f\noo\nood");
}
#[test]
@@ -76,14 +58,8 @@ fn wide() {
assert_eq!(screen.cell(0, 5).unwrap().contents(), "");
assert_eq!(screen.cell(0, 6).unwrap().contents(), "");
assert_eq!(screen.cell(1, 0).unwrap().contents(), "");
- assert_eq!(
- screen.contents(0, 0, 23, 79),
- "aデbネ\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
- );
- assert_eq!(
- screen.contents(0, 0, 500, 500),
- "aデbネ\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
- );
+ assert_eq!(screen.contents(0, 0, 23, 79), "aデbネ");
+ assert_eq!(screen.contents(0, 0, 500, 500), "aデbネ");
}
#[test]
@@ -94,9 +70,9 @@ fn combining() {
screen.process("\u{0301}".as_bytes());
assert_eq!(screen.cell(0, 0).unwrap().contents(), "á");
screen.process(b"\x1b[20;20Habcdefg");
- assert_eq!(screen.contents(19, 19, 19, 26), "abcdefg\n");
+ assert_eq!(screen.contents(19, 19, 19, 26), "abcdefg");
screen.process("\x1b[20;25H\u{0301}".as_bytes());
- assert_eq!(screen.contents(19, 19, 19, 26), "abcdéfg\n");
+ assert_eq!(screen.contents(19, 19, 19, 26), "abcdéfg");
screen.process(b"\x1b[10;78Haaa");
assert_eq!(screen.cell(9, 79).unwrap().contents(), "a");
screen.process("\r\n\u{0301}".as_bytes());
@@ -108,34 +84,34 @@ fn combining() {
fn wrap() {
let mut screen = vt100::Screen::new(24, 80);
screen.process(b"0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789");
- assert_eq!(screen.contents(0, 0, 23, 79), "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
+ assert_eq!(screen.contents(0, 0, 23, 79), "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789");
screen.process(b"\x1b[5H01234567890123456789012345678901234567890123456789012345678901234567890123456789");
screen.process(b"\x1b[6H01234567890123456789012345678901234567890123456789012345678901234567890123456789");
- assert_eq!(screen.contents(0, 0, 23, 79), "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789\n\n\n01234567890123456789012345678901234567890123456789012345678901234567890123456789\n01234567890123456789012345678901234567890123456789012345678901234567890123456789\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
+ assert_eq!(screen.contents(0, 0, 23, 79), "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789\n\n\n01234567890123456789012345678901234567890123456789012345678901234567890123456789\n01234567890123456789012345678901234567890123456789012345678901234567890123456789");
screen.process(b"\x1b[H\x1b[J");
screen.process(b"0123456789012345678901234567890123456789012345678901234567890123456789012345678");
- assert_eq!(screen.contents(0, 0, 23, 79), "0123456789012345678901234567890123456789012345678901234567890123456789012345678\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
+ assert_eq!(screen.contents(0, 0, 23, 79), "0123456789012345678901234567890123456789012345678901234567890123456789012345678");
assert_eq!(screen.cursor_position(), (0, 79));
screen.process(b"9");
- assert_eq!(screen.contents(0, 0, 23, 79), "01234567890123456789012345678901234567890123456789012345678901234567890123456789\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
+ assert_eq!(screen.contents(0, 0, 23, 79), "01234567890123456789012345678901234567890123456789012345678901234567890123456789");
assert_eq!(screen.cursor_position(), (0, 80));
screen.process(b"a");
- assert_eq!(screen.contents(0, 0, 23, 79), "01234567890123456789012345678901234567890123456789012345678901234567890123456789a\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
+ assert_eq!(screen.contents(0, 0, 23, 79), "01234567890123456789012345678901234567890123456789012345678901234567890123456789a");
assert_eq!(screen.cursor_position(), (1, 1));
screen.process(b"b");
- assert_eq!(screen.contents(0, 0, 23, 79), "01234567890123456789012345678901234567890123456789012345678901234567890123456789ab\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
+ assert_eq!(screen.contents(0, 0, 23, 79), "01234567890123456789012345678901234567890123456789012345678901234567890123456789ab");
assert_eq!(screen.cursor_position(), (1, 2));
screen.process(b"\x1b[H\x1b[J");
screen.process(b"012345678901234567890123456789012345678901234567890123456789012345678901234567");
- assert_eq!(screen.contents(0, 0, 23, 79), "012345678901234567890123456789012345678901234567890123456789012345678901234567\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
+ assert_eq!(screen.contents(0, 0, 23, 79), "012345678901234567890123456789012345678901234567890123456789012345678901234567");
assert_eq!(screen.cursor_position(), (0, 78));
screen.process("ネ".as_bytes());
- assert_eq!(screen.contents(0, 0, 23, 79), "012345678901234567890123456789012345678901234567890123456789012345678901234567ネ\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
+ assert_eq!(screen.contents(0, 0, 23, 79), "012345678901234567890123456789012345678901234567890123456789012345678901234567ネ");
assert_eq!(screen.cursor_position(), (0, 80));
screen.process(b"a");
- assert_eq!(screen.contents(0, 0, 23, 79), "012345678901234567890123456789012345678901234567890123456789012345678901234567ネa\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
+ assert_eq!(screen.contents(0, 0, 23, 79), "012345678901234567890123456789012345678901234567890123456789012345678901234567ネa");
assert_eq!(screen.cursor_position(), (1, 1));
assert_eq!(screen.cell(0, 77).unwrap().contents(), "7");
assert_eq!(screen.cell(0, 78).unwrap().contents(), "ネ");
@@ -145,13 +121,13 @@ fn wrap() {
screen.process(b"\x1b[H\x1b[J");
screen.process(b"0123456789012345678901234567890123456789012345678901234567890123456789012345678");
- assert_eq!(screen.contents(0, 0, 23, 79), "0123456789012345678901234567890123456789012345678901234567890123456789012345678\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
+ assert_eq!(screen.contents(0, 0, 23, 79), "0123456789012345678901234567890123456789012345678901234567890123456789012345678");
assert_eq!(screen.cursor_position(), (0, 79));
screen.process("ネ".as_bytes());
- assert_eq!(screen.contents(0, 0, 23, 79), "0123456789012345678901234567890123456789012345678901234567890123456789012345678ネ\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
+ assert_eq!(screen.contents(0, 0, 23, 79), "0123456789012345678901234567890123456789012345678901234567890123456789012345678ネ");
assert_eq!(screen.cursor_position(), (1, 2));
screen.process(b"a");
- assert_eq!(screen.contents(0, 0, 23, 79), "0123456789012345678901234567890123456789012345678901234567890123456789012345678ネa\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
+ assert_eq!(screen.contents(0, 0, 23, 79), "0123456789012345678901234567890123456789012345678901234567890123456789012345678ネa");
assert_eq!(screen.cursor_position(), (1, 3));
assert_eq!(screen.cell(0, 77).unwrap().contents(), "7");
assert_eq!(screen.cell(0, 78).unwrap().contents(), "8");
@@ -166,7 +142,7 @@ fn wrap() {
fn soft_hyphen() {
let mut screen = vt100::Screen::new(24, 140);
screen.process(b"Free En\xc2\xadter\xc2\xadprise is gonna ru\xc2\xadin ev\xc2\xadery\xc2\xadthing good un\xc2\xadless we take a knife to its tes\xc2\xadti\xc2\xadcles first.");
- assert_eq!(screen.contents(0, 0, 0, 139), "Free En\u{00ad}ter\u{00ad}prise is gonna ru\u{00ad}in ev\u{00ad}ery\u{00ad}thing good un\u{00ad}less we take a knife to its tes\u{00ad}ti\u{00ad}cles first.\n");
+ assert_eq!(screen.contents(0, 0, 0, 139), "Free En\u{00ad}ter\u{00ad}prise is gonna ru\u{00ad}in ev\u{00ad}ery\u{00ad}thing good un\u{00ad}less we take a knife to its tes\u{00ad}ti\u{00ad}cles first.");
assert_eq!(screen.cell(0, 0).unwrap().contents(), "F");
assert_eq!(screen.cell(0, 1).unwrap().contents(), "r");
assert_eq!(screen.cell(0, 2).unwrap().contents(), "e");
diff --git a/tests/window_contents.rs b/tests/window_contents.rs
index 6391763..9d7553e 100644
--- a/tests/window_contents.rs
+++ b/tests/window_contents.rs
@@ -2,10 +2,7 @@
fn formatted() {
let mut screen = vt100::Screen::new(24, 80);
compare_formatted(&screen);
- assert_eq!(
- screen.contents_formatted(0, 0, 23, 79),
- "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
- );
+ assert_eq!(screen.contents_formatted(0, 0, 23, 79), "");
screen.process(b"foobar");
compare_formatted(&screen);
@@ -13,10 +10,7 @@ fn formatted() {
assert!(!screen.cell(0, 3).unwrap().bold());
assert!(!screen.cell(0, 4).unwrap().bold());
assert!(!screen.cell(0, 5).unwrap().bold());
- assert_eq!(
- screen.contents_formatted(0, 0, 23, 79),
- "foobar\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
- );
+ assert_eq!(screen.contents_formatted(0, 0, 23, 79), "foobar");
screen.process(b"\x1b[1;4H\x1b[1;7m\x1b[33mb");
compare_formatted(&screen);
@@ -24,7 +18,10 @@ fn formatted() {
assert!(screen.cell(0, 3).unwrap().bold());
assert!(!screen.cell(0, 4).unwrap().bold());
assert!(!screen.cell(0, 5).unwrap().bold());
- assert_eq!(screen.contents_formatted(0, 0 ,23, 79), "foo\x1b[33;1;7mb\x1b[mar\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
+ assert_eq!(
+ screen.contents_formatted(0, 0, 23, 79),
+ "foo\x1b[33;1;7mb\x1b[mar"
+ );
screen.process(b"\x1b[1;5H\x1b[22;42ma");
compare_formatted(&screen);
@@ -32,41 +29,36 @@ fn formatted() {
assert!(screen.cell(0, 3).unwrap().bold());
assert!(!screen.cell(0, 4).unwrap().bold());
assert!(!screen.cell(0, 5).unwrap().bold());
- assert_eq!(screen.contents_formatted(0, 0 ,23, 79), "foo\x1b[33;1;7mb\x1b[42;22ma\x1b[mr\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
+ assert_eq!(
+ screen.contents_formatted(0, 0, 23, 79),
+ "foo\x1b[33;1;7mb\x1b[42;22ma\x1b[mr"
+ );
screen.process(b"\x1b[1;6H\x1b[35mr\r\nquux");
compare_formatted(&screen);
- assert_eq!(screen.contents_formatted(0, 0 ,23, 79), "foo\x1b[33;1;7mb\x1b[42;22ma\x1b[35mr\nquux\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
+ assert_eq!(
+ screen.contents_formatted(0, 0, 23, 79),
+ "foo\x1b[33;1;7mb\x1b[42;22ma\x1b[35mr\r\nquux"
+ );
screen.process(b"\x1b[2;1H\x1b[45mquux");
compare_formatted(&screen);
- assert_eq!(screen.contents_formatted(0, 0 ,23, 79), "foo\x1b[33;1;7mb\x1b[42;22ma\x1b[35mr\n\x1b[45mquux\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
+ assert_eq!(
+ screen.contents_formatted(0, 0, 23, 79),
+ "foo\x1b[33;1;7mb\x1b[42;22ma\x1b[35mr\r\n\x1b[45mquux"
+ );
screen
.process(b"\x1b[2;2H\x1b[38;2;123;213;231mu\x1b[38;5;254mu\x1b[39mx");
compare_formatted(&screen);
- assert_eq!(screen.contents_formatted(0, 0 ,23, 79), "foo\x1b[33;1;7mb\x1b[42;22ma\x1b[35mr\n\x1b[45mq\x1b[38;2;123;213;231mu\x1b[38;5;254mu\x1b[39mx\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
+ assert_eq!(screen.contents_formatted(0, 0 ,23, 79), "foo\x1b[33;1;7mb\x1b[42;22ma\x1b[35mr\r\n\x1b[45mq\x1b[38;2;123;213;231mu\x1b[38;5;254mu\x1b[39mx");
}
fn compare_formatted(screen: &vt100::Screen) {
let (rows, cols) = screen.size();
let contents = screen.contents_formatted(0, 0, rows - 1, cols - 1);
let mut screen2 = vt100::Screen::new(rows, cols);
- let input =
- contents
- .trim_end()
- .as_bytes()
- .iter()
- .fold(vec![], |mut acc, &c| {
- if c == b'\n' {
- acc.push(b'\r');
- acc.push(b'\n');
- } else {
- acc.push(c);
- }
- acc
- });
- screen2.process(&input);
+ screen2.process(contents.as_bytes());
compare_cells(screen, &screen2);
}