aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Cargo.toml3
-rw-r--r--src/lib.rs1
-rw-r--r--src/parser.rs7
-rw-r--r--src/screen.rs110
-rw-r--r--tests/attr.rs35
-rw-r--r--tests/control.rs15
-rw-r--r--tests/csi.rs159
-rw-r--r--tests/escape.rs17
-rw-r--r--tests/mode.rs43
-rw-r--r--tests/osc.rs17
-rw-r--r--tests/processing.rs196
-rw-r--r--tests/scroll.rs21
-rw-r--r--tests/split-escapes.rs6
-rw-r--r--tests/support/mod.rs11
-rw-r--r--tests/text.rs55
15 files changed, 398 insertions, 298 deletions
diff --git a/Cargo.toml b/Cargo.toml
index df638d9..105dfc6 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -10,3 +10,6 @@ repository = "https://github.com/doy/vt100-rust"
readme = "README.md"
keywords = ["terminal", "vt100"]
license = "MIT"
+
+[dependencies]
+vte = "0.3"
diff --git a/src/lib.rs b/src/lib.rs
index 3db6c7d..3a74ed3 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -6,7 +6,6 @@ mod cell;
pub use cell::Cell;
mod color;
pub use color::Color;
-mod parser;
mod pos;
mod screen;
pub use screen::Screen;
diff --git a/src/parser.rs b/src/parser.rs
deleted file mode 100644
index c805469..0000000
--- a/src/parser.rs
+++ /dev/null
@@ -1,7 +0,0 @@
-pub struct Parser {}
-
-impl Parser {
- pub fn new() -> Self {
- Parser {}
- }
-}
diff --git a/src/screen.rs b/src/screen.rs
index 88a3629..9caa0eb 100644
--- a/src/screen.rs
+++ b/src/screen.rs
@@ -1,6 +1,5 @@
-pub struct Screen {
+struct State {
size: crate::pos::Pos,
- parser: crate::parser::Parser,
cells: Vec<Vec<crate::cell::Cell>>,
cursor_position: crate::pos::Pos,
fgcolor: crate::color::Color,
@@ -11,49 +10,97 @@ pub struct Screen {
underline: bool,
}
+impl vte::Perform for State {
+ fn print(&mut self, _c: char) {}
+
+ fn execute(&mut self, _b: u8) {}
+
+ fn hook(
+ &mut self,
+ _params: &[i64],
+ _intermediates: &[u8],
+ _ignore: bool,
+ ) {
+ }
+
+ fn put(&mut self, _b: u8) {}
+
+ fn unhook(&mut self) {}
+
+ fn osc_dispatch(&mut self, _params: &[&[u8]]) {}
+
+ fn csi_dispatch(
+ &mut self,
+ _params: &[i64],
+ _intermediates: &[u8],
+ _ignore: bool,
+ _c: char,
+ ) {
+ }
+
+ fn esc_dispatch(
+ &mut self,
+ _params: &[i64],
+ _intermediates: &[u8],
+ _ignore: bool,
+ _b: u8,
+ ) {
+ }
+}
+
+pub struct Screen {
+ parser: vte::Parser,
+ state: State,
+}
+
impl Screen {
pub fn new(rows: u16, cols: u16) -> Self {
Self {
- size: crate::pos::Pos {
- row: rows,
- col: cols,
+ parser: vte::Parser::new(),
+ state: State {
+ size: crate::pos::Pos {
+ row: rows,
+ col: cols,
+ },
+ cells: vec![
+ vec![crate::cell::Cell::default(); cols as usize];
+ rows as usize
+ ],
+ cursor_position: crate::pos::Pos::default(),
+ fgcolor: crate::color::Color::default(),
+ bgcolor: crate::color::Color::default(),
+ bold: false,
+ italic: false,
+ inverse: false,
+ underline: false,
},
- parser: crate::parser::Parser::new(),
- cells: vec![
- vec![crate::cell::Cell::default(); cols as usize];
- rows as usize
- ],
- cursor_position: crate::pos::Pos::default(),
- fgcolor: crate::color::Color::default(),
- bgcolor: crate::color::Color::default(),
- bold: false,
- italic: false,
- inverse: false,
- underline: false,
}
}
pub fn rows(&self) -> u16 {
- self.size.row
+ self.state.size.row
}
pub fn cols(&self) -> u16 {
- self.size.col
+ self.state.size.col
}
pub fn set_window_size(&mut self, rows: u16, cols: u16) {
- self.size = crate::pos::Pos {
+ self.state.size = crate::pos::Pos {
row: rows,
col: cols,
};
}
- pub fn process(&mut self, bytes: &[u8]) -> usize {
- unimplemented!()
+ pub fn process(&mut self, bytes: &[u8]) {
+ for byte in bytes {
+ self.parser.advance(&mut self.state, *byte);
+ }
}
pub fn cell(&self, row: u16, col: u16) -> Option<&crate::cell::Cell> {
- self.cells
+ self.state
+ .cells
.get(row as usize)
.and_then(|v| v.get(col as usize))
}
@@ -79,31 +126,34 @@ impl Screen {
}
pub fn cursor_position(&self) -> (u16, u16) {
- (self.cursor_position.row, self.cursor_position.col)
+ (
+ self.state.cursor_position.row,
+ self.state.cursor_position.col,
+ )
}
pub fn fgcolor(&self) -> crate::color::Color {
- self.fgcolor
+ self.state.fgcolor
}
pub fn bgcolor(&self) -> crate::color::Color {
- self.bgcolor
+ self.state.bgcolor
}
pub fn bold(&self) -> bool {
- self.bold
+ self.state.bold
}
pub fn italic(&self) -> bool {
- self.italic
+ self.state.italic
}
pub fn inverse(&self) -> bool {
- self.inverse
+ self.state.inverse
}
pub fn underline(&self) -> bool {
- self.underline
+ self.state.underline
}
pub fn title(&self) -> Option<&str> {
diff --git a/tests/attr.rs b/tests/attr.rs
index e621098..cae7555 100644
--- a/tests/attr.rs
+++ b/tests/attr.rs
@@ -1,15 +1,12 @@
#![allow(clippy::cognitive_complexity)]
-mod support;
-use support::TestHelpers;
-
#[test]
fn colors() {
let mut screen = vt100::Screen::new(24, 80);
assert_eq!(screen.fgcolor(), vt100::Color::Default);
assert_eq!(screen.bgcolor(), vt100::Color::Default);
- screen.assert_process(b"foo\x1b[31mbar");
+ screen.process(b"foo\x1b[31mbar");
assert_eq!(screen.cell(0, 0).unwrap().contents(), "f");
assert_eq!(screen.cell(0, 0).unwrap().fgcolor(), vt100::Color::Default);
@@ -22,7 +19,7 @@ fn colors() {
assert_eq!(screen.fgcolor(), vt100::Color::Idx(1));
assert_eq!(screen.bgcolor(), vt100::Color::Default);
- screen.assert_process(b"\x1b[2D\x1b[45mab");
+ screen.process(b"\x1b[2D\x1b[45mab");
assert_eq!(screen.cell(0, 4).unwrap().contents(), "a");
assert_eq!(screen.cell(0, 4).unwrap().fgcolor(), vt100::Color::Idx(1));
@@ -31,12 +28,12 @@ fn colors() {
assert_eq!(screen.fgcolor(), vt100::Color::Idx(1));
assert_eq!(screen.bgcolor(), vt100::Color::Idx(5));
- screen.assert_process(b"\x1b[m");
+ screen.process(b"\x1b[m");
assert_eq!(screen.fgcolor(), vt100::Color::Default);
assert_eq!(screen.bgcolor(), vt100::Color::Default);
- screen.assert_process(b"\x1b[15;15Hfoo\x1b[31mbar\x1b[m");
+ screen.process(b"\x1b[15;15Hfoo\x1b[31mbar\x1b[m");
assert_eq!(screen.cell(14, 14).unwrap().contents(), "f");
assert_eq!(
@@ -58,7 +55,7 @@ fn colors() {
assert_eq!(screen.fgcolor(), vt100::Color::Default);
assert_eq!(screen.bgcolor(), vt100::Color::Default);
- screen.assert_process(b"\x1b[2D\x1b[45mab");
+ screen.process(b"\x1b[2D\x1b[45mab");
assert_eq!(screen.cell(14, 18).unwrap().contents(), "a");
assert_eq!(
@@ -70,8 +67,8 @@ fn colors() {
assert_eq!(screen.fgcolor(), vt100::Color::Default);
assert_eq!(screen.bgcolor(), vt100::Color::Idx(5));
- screen.assert_process(b"\x1b[m\x1b[2J\x1b[H");
- screen.assert_process(b"a\x1b[38;5;123mb\x1b[48;5;158mc");
+ screen.process(b"\x1b[m\x1b[2J\x1b[H");
+ screen.process(b"a\x1b[38;5;123mb\x1b[48;5;158mc");
assert_eq!(screen.fgcolor(), vt100::Color::Idx(123));
assert_eq!(screen.bgcolor(), vt100::Color::Idx(158));
@@ -85,7 +82,7 @@ fn colors() {
assert_eq!(screen.cell(0, 2).unwrap().fgcolor(), vt100::Color::Idx(123));
assert_eq!(screen.cell(0, 2).unwrap().bgcolor(), vt100::Color::Idx(158));
- screen.assert_process(b"\x1b[38;2;50;75;100md\x1b[48;2;125;150;175me");
+ screen.process(b"\x1b[38;2;50;75;100md\x1b[48;2;125;150;175me");
assert_eq!(screen.fgcolor(), vt100::Color::Rgb(50, 75, 100));
assert_eq!(screen.bgcolor(), vt100::Color::Rgb(125, 150, 175));
@@ -105,8 +102,8 @@ fn colors() {
vt100::Color::Rgb(125, 150, 175)
);
- screen.assert_process(b"\x1b[m\x1b[2J\x1b[H");
- screen.assert_process(b"\x1b[32;47mfoo");
+ screen.process(b"\x1b[m\x1b[2J\x1b[H");
+ screen.process(b"\x1b[32;47mfoo");
assert_eq!(screen.fgcolor(), vt100::Color::Idx(2));
assert_eq!(screen.bgcolor(), vt100::Color::Idx(7));
@@ -123,7 +120,7 @@ fn attrs() {
assert!(!screen.underline());
assert!(!screen.inverse());
- screen.assert_process(b"f\x1b[1mo\x1b[3mo\x1b[4mo\x1b[7mo");
+ screen.process(b"f\x1b[1mo\x1b[3mo\x1b[4mo\x1b[7mo");
assert!(screen.bold());
assert!(screen.italic());
assert!(screen.underline());
@@ -149,14 +146,14 @@ fn attrs() {
assert!(screen.cell(0, 4).unwrap().underline());
assert!(screen.cell(0, 4).unwrap().inverse());
- screen.assert_process(b"\x1b[m");
+ screen.process(b"\x1b[m");
assert!(!screen.bold());
assert!(!screen.italic());
assert!(!screen.underline());
assert!(!screen.inverse());
- screen.assert_process(b"\x1b[2J\x1b[H");
- screen.assert_process(b"\x1b[1;4mf");
+ screen.process(b"\x1b[2J\x1b[H");
+ screen.process(b"\x1b[1;4mf");
assert!(screen.bold());
assert!(!screen.italic());
assert!(screen.underline());
@@ -166,7 +163,7 @@ fn attrs() {
assert!(screen.cell(0, 0).unwrap().underline());
assert!(!screen.cell(0, 0).unwrap().inverse());
- screen.assert_process(b"\x1b[22mo\x1b[24mo");
+ screen.process(b"\x1b[22mo\x1b[24mo");
assert!(!screen.bold());
assert!(!screen.italic());
assert!(!screen.underline());
@@ -180,7 +177,7 @@ fn attrs() {
assert!(!screen.cell(0, 2).unwrap().underline());
assert!(!screen.cell(0, 2).unwrap().inverse());
- screen.assert_process(b"\x1b[1;3;4;7mo");
+ screen.process(b"\x1b[1;3;4;7mo");
assert!(screen.bold());
assert!(screen.italic());
assert!(screen.underline());
diff --git a/tests/control.rs b/tests/control.rs
index 82b996c..b9ae147 100644
--- a/tests/control.rs
+++ b/tests/control.rs
@@ -1,13 +1,10 @@
-mod support;
-use support::TestHelpers;
-
#[test]
fn bel() {
let mut screen = vt100::Screen::new(24, 80);
assert!(!screen.check_audible_bell());
- screen.assert_process(b"\x07");
+ screen.process(b"\x07");
assert!(screen.check_audible_bell());
assert!(!screen.check_audible_bell());
}
@@ -16,7 +13,7 @@ fn bel() {
fn bs() {
let mut screen = vt100::Screen::new(24, 80);
- screen.assert_process(b"foo\x08\x08aa");
+ screen.process(b"foo\x08\x08aa");
assert_eq!(screen.cell(0, 0).unwrap().contents(), "f");
assert_eq!(screen.cell(0, 1).unwrap().contents(), "a");
assert_eq!(screen.cell(0, 2).unwrap().contents(), "a");
@@ -27,7 +24,7 @@ fn bs() {
"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"
);
- screen.assert_process(b"\r\nquux\x08\x08\x08\x08\x08\x08bar");
+ screen.process(b"\r\nquux\x08\x08\x08\x08\x08\x08bar");
assert_eq!(screen.cell(1, 0).unwrap().contents(), "b");
assert_eq!(screen.cell(1, 1).unwrap().contents(), "a");
assert_eq!(screen.cell(1, 2).unwrap().contents(), "r");
@@ -44,7 +41,7 @@ fn bs() {
fn tab() {
let mut screen = vt100::Screen::new(24, 80);
- screen.assert_process(b"foo\tbar");
+ screen.process(b"foo\tbar");
assert_eq!(screen.cell(0, 0).unwrap().contents(), "f");
assert_eq!(screen.cell(0, 1).unwrap().contents(), "o");
assert_eq!(screen.cell(0, 2).unwrap().contents(), "o");
@@ -67,7 +64,7 @@ fn tab() {
fn lf() {
let mut screen = vt100::Screen::new(24, 80);
- screen.assert_process(b"foo\nbar");
+ screen.process(b"foo\nbar");
assert_eq!(screen.cell(0, 0).unwrap().contents(), "f");
assert_eq!(screen.cell(0, 1).unwrap().contents(), "o");
assert_eq!(screen.cell(0, 2).unwrap().contents(), "o");
@@ -89,7 +86,7 @@ fn lf() {
fn cr() {
let mut screen = vt100::Screen::new(24, 80);
- screen.assert_process(b"fooo\rbar");
+ screen.process(b"fooo\rbar");
assert_eq!(screen.cell(0, 0).unwrap().contents(), "b");
assert_eq!(screen.cell(0, 1).unwrap().contents(), "a");
assert_eq!(screen.cell(0, 2).unwrap().contents(), "r");
diff --git a/tests/csi.rs b/tests/csi.rs
index 519fc94..75e4741 100644
--- a/tests/csi.rs
+++ b/tests/csi.rs
@@ -1,39 +1,36 @@
-mod support;
-use support::TestHelpers;
-
#[test]
fn absolute_movement() {
let mut screen = vt100::Screen::new(24, 80);
assert_eq!(screen.cursor_position(), (0, 0));
- screen.assert_process(b"\x1b[10;10H");
+ screen.process(b"\x1b[10;10H");
assert_eq!(screen.cursor_position(), (9, 9));
- screen.assert_process(b"\x1b[d");
+ screen.process(b"\x1b[d");
assert_eq!(screen.cursor_position(), (0, 9));
- screen.assert_process(b"\x1b[15d");
+ screen.process(b"\x1b[15d");
assert_eq!(screen.cursor_position(), (14, 9));
- screen.assert_process(b"\x1b[H");
+ screen.process(b"\x1b[H");
assert_eq!(screen.cursor_position(), (0, 0));
- screen.assert_process(b"\x1b[8H");
+ screen.process(b"\x1b[8H");
assert_eq!(screen.cursor_position(), (7, 0));
- screen.assert_process(b"\x1b[15G");
+ screen.process(b"\x1b[15G");
assert_eq!(screen.cursor_position(), (7, 14));
- screen.assert_process(b"\x1b[G");
+ screen.process(b"\x1b[G");
assert_eq!(screen.cursor_position(), (7, 0));
- screen.assert_process(b"\x1b[0;0H");
+ screen.process(b"\x1b[0;0H");
assert_eq!(screen.cursor_position(), (0, 0));
- screen.assert_process(b"\x1b[1;1H");
+ screen.process(b"\x1b[1;1H");
assert_eq!(screen.cursor_position(), (0, 0));
- screen.assert_process(b"\x1b[500;500H");
+ screen.process(b"\x1b[500;500H");
assert_eq!(screen.cursor_position(), (23, 79));
}
@@ -42,52 +39,52 @@ fn relative_movement() {
let mut screen = vt100::Screen::new(24, 80);
assert_eq!(screen.cursor_position(), (0, 0));
- screen.assert_process(b"\x1b[C");
+ screen.process(b"\x1b[C");
assert_eq!(screen.cursor_position(), (0, 1));
- screen.assert_process(b"\x1b[C");
+ screen.process(b"\x1b[C");
assert_eq!(screen.cursor_position(), (0, 2));
- screen.assert_process(b"\x1b[20C");
+ screen.process(b"\x1b[20C");
assert_eq!(screen.cursor_position(), (0, 22));
- screen.assert_process(b"\x1b[D");
+ screen.process(b"\x1b[D");
assert_eq!(screen.cursor_position(), (0, 21));
- screen.assert_process(b"\x1b[D");
+ screen.process(b"\x1b[D");
assert_eq!(screen.cursor_position(), (0, 20));
- screen.assert_process(b"\x1b[9D");
+ screen.process(b"\x1b[9D");
assert_eq!(screen.cursor_position(), (0, 11));
- screen.assert_process(b"\x1b[500C");
+ screen.process(b"\x1b[500C");
assert_eq!(screen.cursor_position(), (0, 79));
- screen.assert_process(b"\x1b[500D");
+ screen.process(b"\x1b[500D");
assert_eq!(screen.cursor_position(), (0, 0));
- screen.assert_process(b"\x1b[B");
+ screen.process(b"\x1b[B");
assert_eq!(screen.cursor_position(), (1, 0));
- screen.assert_process(b"\x1b[B");
+ screen.process(b"\x1b[B");
assert_eq!(screen.cursor_position(), (2, 0));
- screen.assert_process(b"\x1b[20B");
+ screen.process(b"\x1b[20B");
assert_eq!(screen.cursor_position(), (22, 0));
- screen.assert_process(b"\x1b[A");
+ screen.process(b"\x1b[A");
assert_eq!(screen.cursor_position(), (21, 0));
- screen.assert_process(b"\x1b[A");
+ screen.process(b"\x1b[A");
assert_eq!(screen.cursor_position(), (20, 0));
- screen.assert_process(b"\x1b[9A");
+ screen.process(b"\x1b[9A");
assert_eq!(screen.cursor_position(), (11, 0));
- screen.assert_process(b"\x1b[500B");
+ screen.process(b"\x1b[500B");
assert_eq!(screen.cursor_position(), (23, 0));
- screen.assert_process(b"\x1b[500A");
+ screen.process(b"\x1b[500A");
assert_eq!(screen.cursor_position(), (0, 0));
}
@@ -99,70 +96,70 @@ fn ed() {
"\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.assert_process(b"foo\x1b[5;5Hbar\x1b[10;10Hbaz\x1b[20;20Hquux");
+ screen.process(b"foo\x1b[5;5Hbar\x1b[10;10Hbaz\x1b[20;20Hquux");
assert_eq!(screen.window_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");
- screen.assert_process(b"\x1b[10;12H\x1b[0J");
+ screen.process(b"\x1b[10;12H\x1b[0J");
assert_eq!(screen.window_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.assert_process(b"\x1b[5;7H\x1b[1J");
+ screen.process(b"\x1b[5;7H\x1b[1J");
assert_eq!(
screen.window_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"
);
- screen.assert_process(b"\x1b[7;7H\x1b[2J");
+ screen.process(b"\x1b[7;7H\x1b[2J");
assert_eq!(
screen.window_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"
);
- screen.assert_process(b"\x1b[2J\x1b[H");
+ screen.process(b"\x1b[2J\x1b[H");
assert_eq!(
screen.window_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"
);
- screen.assert_process(b"foo\x1b[5;5Hbar\x1b[10;10Hbaz\x1b[20;20Hquux");
+ screen.process(b"foo\x1b[5;5Hbar\x1b[10;10Hbaz\x1b[20;20Hquux");
assert_eq!(screen.window_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");
- screen.assert_process(b"\x1b[10;12H\x1b[J");
+ screen.process(b"\x1b[10;12H\x1b[J");
assert_eq!(screen.window_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.assert_process(b"\x1b[2J\x1b[H");
+ screen.process(b"\x1b[2J\x1b[H");
assert_eq!(
screen.window_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"
);
- screen.assert_process(b"foo\x1b[5;5Hbar\x1b[10;10Hbaz\x1b[20;20Hquux");
+ screen.process(b"foo\x1b[5;5Hbar\x1b[10;10Hbaz\x1b[20;20Hquux");
assert_eq!(screen.window_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");
- screen.assert_process(b"\x1b[10;12H\x1b[?0J");
+ screen.process(b"\x1b[10;12H\x1b[?0J");
assert_eq!(screen.window_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.assert_process(b"\x1b[5;7H\x1b[?1J");
+ screen.process(b"\x1b[5;7H\x1b[?1J");
assert_eq!(
screen.window_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"
);
- screen.assert_process(b"\x1b[7;7H\x1b[?2J");
+ screen.process(b"\x1b[7;7H\x1b[?2J");
assert_eq!(
screen.window_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"
);
- screen.assert_process(b"\x1b[2J\x1b[H");
+ screen.process(b"\x1b[2J\x1b[H");
assert_eq!(
screen.window_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"
);
- screen.assert_process(b"foo\x1b[5;5Hbar\x1b[10;10Hbaz\x1b[20;20Hquux");
+ screen.process(b"foo\x1b[5;5Hbar\x1b[10;10Hbaz\x1b[20;20Hquux");
assert_eq!(screen.window_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");
- screen.assert_process(b"\x1b[10;12H\x1b[?J");
+ screen.process(b"\x1b[10;12H\x1b[?J");
assert_eq!(screen.window_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");
}
@@ -174,44 +171,40 @@ fn el() {
"\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.assert_process(
- b"foo\x1b[5;5Hbarbar\x1b[10;10Hbazbaz\x1b[20;20Hquux",
- );
+ screen.process(b"foo\x1b[5;5Hbarbar\x1b[10;10Hbazbaz\x1b[20;20Hquux");
assert_eq!(screen.window_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");
- screen.assert_process(b"\x1b[5;8H\x1b[0K");
+ screen.process(b"\x1b[5;8H\x1b[0K");
assert_eq!(screen.window_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");
- screen.assert_process(b"\x1b[10;13H\x1b[1K");
+ screen.process(b"\x1b[10;13H\x1b[1K");
assert_eq!(screen.window_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");
- screen.assert_process(b"\x1b[20;22H\x1b[2K");
+ screen.process(b"\x1b[20;22H\x1b[2K");
assert_eq!(screen.window_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");
- screen.assert_process(b"\x1b[1;2H\x1b[K");
+ screen.process(b"\x1b[1;2H\x1b[K");
assert_eq!(screen.window_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.assert_process(b"\x1b[2J\x1b[H");
+ screen.process(b"\x1b[2J\x1b[H");
assert_eq!(
screen.window_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"
);
- screen.assert_process(
- b"foo\x1b[5;5Hbarbar\x1b[10;10Hbazbaz\x1b[20;20Hquux",
- );
+ screen.process(b"foo\x1b[5;5Hbarbar\x1b[10;10Hbazbaz\x1b[20;20Hquux");
assert_eq!(screen.window_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");
- screen.assert_process(b"\x1b[5;8H\x1b[?0K");
+ screen.process(b"\x1b[5;8H\x1b[?0K");
assert_eq!(screen.window_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");
- screen.assert_process(b"\x1b[10;13H\x1b[?1K");
+ screen.process(b"\x1b[10;13H\x1b[?1K");
assert_eq!(screen.window_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");
- screen.assert_process(b"\x1b[20;22H\x1b[?2K");
+ screen.process(b"\x1b[20;22H\x1b[?2K");
assert_eq!(screen.window_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");
- screen.assert_process(b"\x1b[1;2H\x1b[?K");
+ screen.process(b"\x1b[1;2H\x1b[?K");
assert_eq!(screen.window_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");
}
@@ -223,69 +216,69 @@ fn ich_dch_ech() {
"\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.assert_process(b"\x1b[10;10Hfoobar");
+ screen.process(b"\x1b[10;10Hfoobar");
assert_eq!(
screen.window_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"
);
- screen.assert_process(b"\x1b[10;12H\x1b[3@");
+ screen.process(b"\x1b[10;12H\x1b[3@");
assert_eq!(
screen.window_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"
);
assert_eq!(screen.cursor_position(), (9, 11));
- screen.assert_process(b"\x1b[4P");
+ screen.process(b"\x1b[4P");
assert_eq!(
screen.window_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"
);
assert_eq!(screen.cursor_position(), (9, 11));
- screen.assert_process(b"\x1b[100@");
+ screen.process(b"\x1b[100@");
assert_eq!(
screen.window_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"
);
assert_eq!(screen.cursor_position(), (9, 11));
- screen.assert_process(b"obar");
+ screen.process(b"obar");
assert_eq!(
screen.window_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"
);
assert_eq!(screen.cursor_position(), (9, 15));
- screen.assert_process(b"\x1b[10;12H\x1b[100P");
+ screen.process(b"\x1b[10;12H\x1b[100P");
assert_eq!(
screen.window_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"
);
assert_eq!(screen.cursor_position(), (9, 11));
- screen.assert_process(b"obar");
+ screen.process(b"obar");
assert_eq!(
screen.window_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"
);
assert_eq!(screen.cursor_position(), (9, 15));
- screen.assert_process(b"\x1b[10;13H\x1b[X");
+ screen.process(b"\x1b[10;13H\x1b[X");
assert_eq!(
screen.window_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"
);
assert_eq!(screen.cursor_position(), (9, 12));
- screen.assert_process(b"\x1b[10;11H\x1b[4X");
+ screen.process(b"\x1b[10;11H\x1b[4X");
assert_eq!(
screen.window_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"
);
assert_eq!(screen.cursor_position(), (9, 10));
- screen.assert_process(b"\x1b[10;11H\x1b[400X");
+ screen.process(b"\x1b[10;11H\x1b[400X");
assert_eq!(
screen.window_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"
@@ -301,56 +294,56 @@ fn il_dl() {
"\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.assert_process(b"\x1b[10;10Hfoobar\x1b[3D");
+ screen.process(b"\x1b[10;10Hfoobar\x1b[3D");
assert_eq!(
screen.window_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"
);
assert_eq!(screen.cursor_position(), (9, 12));
- screen.assert_process(b"\x1b[L");
+ screen.process(b"\x1b[L");
assert_eq!(
screen.window_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"
);
assert_eq!(screen.cursor_position(), (9, 12));
- screen.assert_process(b"\x1b[3L");
+ screen.process(b"\x1b[3L");
assert_eq!(
screen.window_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"
);
assert_eq!(screen.cursor_position(), (9, 12));
- screen.assert_process(b"\x1b[500L");
+ screen.process(b"\x1b[500L");
assert_eq!(
screen.window_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.cursor_position(), (9, 12));
- screen.assert_process(b"\x1b[10;10Hfoobar\x1b[3D\x1b[6A");
+ screen.process(b"\x1b[10;10Hfoobar\x1b[3D\x1b[6A");
assert_eq!(
screen.window_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"
);
assert_eq!(screen.cursor_position(), (3, 12));
- screen.assert_process(b"\x1b[M");
+ screen.process(b"\x1b[M");
assert_eq!(
screen.window_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"
);
assert_eq!(screen.cursor_position(), (3, 12));
- screen.assert_process(b"\x1b[3M");
+ screen.process(b"\x1b[3M");
assert_eq!(
screen.window_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.cursor_position(), (3, 12));
- screen.assert_process(b"\x1b[500M");
+ screen.process(b"\x1b[500M");
assert_eq!(
screen.window_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"
@@ -366,25 +359,25 @@ fn scroll() {
"\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.assert_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");
+ 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.window_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");
- screen.assert_process(b"\x1b[15;15H");
+ screen.process(b"\x1b[15;15H");
assert_eq!(screen.cursor_position(), (14, 14));
- screen.assert_process(b"\x1b[S");
+ screen.process(b"\x1b[S");
assert_eq!(screen.window_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.cursor_position(), (14, 14));
- screen.assert_process(b"\x1b[3S");
+ screen.process(b"\x1b[3S");
assert_eq!(screen.window_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.cursor_position(), (14, 14));
- screen.assert_process(b"\x1b[T");
+ screen.process(b"\x1b[T");
assert_eq!(screen.window_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.cursor_position(), (14, 14));
- screen.assert_process(b"\x1b[5T");
+ screen.process(b"\x1b[5T");
assert_eq!(screen.window_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.cursor_position(), (14, 14));
}
diff --git a/tests/escape.rs b/tests/escape.rs
index 6661188..e80234a 100644
--- a/tests/escape.rs
+++ b/tests/escape.rs
@@ -1,22 +1,19 @@
#![allow(clippy::cognitive_complexity)]
-mod support;
-use support::TestHelpers;
-
#[test]
fn deckpam() {
let mut screen = vt100::Screen::new(24, 80);
assert!(!screen.application_keypad());
- screen.assert_process(b"\x1b=");
+ screen.process(b"\x1b=");
assert!(screen.application_keypad());
- screen.assert_process(b"\x1b>");
+ screen.process(b"\x1b>");
assert!(!screen.application_keypad());
}
#[test]
fn ri() {
let mut screen = vt100::Screen::new(24, 80);
- screen.assert_process(b"foo\nbar\x1bMbaz");
+ screen.process(b"foo\nbar\x1bMbaz");
assert_eq!(
screen.window_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"
@@ -62,7 +59,7 @@ fn ris() {
assert!(!screen.check_visual_bell());
assert!(!screen.check_audible_bell());
- screen.assert_process(b"f\x1b[31m\x1b[47;1;3;4moo\x1b[7m\x1b[21;21H\x1b]2;window title\x07\x1b]1;window icon name\x07\x1b[?25l\x1b[?1h\x1b=\x1b[?9h\x1b[?1000h\x1b[?1002h\x1b[?1006h\x1b[?2004h\x07\x1bg");
+ screen.process(b"f\x1b[31m\x1b[47;1;3;4moo\x1b[7m\x1b[21;21H\x1b]2;window title\x07\x1b]1;window icon name\x07\x1b[?25l\x1b[?1h\x1b=\x1b[?9h\x1b[?1000h\x1b[?1002h\x1b[?1006h\x1b[?2004h\x07\x1bg");
assert_eq!(screen.cursor_position(), (20, 20));
@@ -97,7 +94,7 @@ fn ris() {
assert!(screen.check_visual_bell());
assert!(screen.check_audible_bell());
- screen.assert_process(b"\x1bc");
+ screen.process(b"\x1bc");
assert_eq!(screen.cursor_position(), (0, 0));
let cell = screen.cell(0, 0).unwrap();
@@ -140,7 +137,7 @@ fn ris() {
fn vb() {
let mut screen = vt100::Screen::new(24, 80);
assert!(!screen.check_visual_bell());
- screen.assert_process(b"\x1bg");
+ screen.process(b"\x1bg");
assert!(screen.check_visual_bell());
assert!(!screen.check_visual_bell());
}
@@ -148,7 +145,7 @@ fn vb() {
#[test]
fn decsc() {
let mut screen = vt100::Screen::new(24, 80);
- screen.assert_process(b"foo\x1b7\r\n\r\n\r\n bar\x1b8baz");
+ screen.process(b"foo\x1b7\r\n\r\n\r\n bar\x1b8baz");
assert_eq!(
screen.window_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"
diff --git a/tests/mode.rs b/tests/mode.rs
index 5f8b2a4..9658ad3 100644
--- a/tests/mode.rs
+++ b/tests/mode.rs
@@ -1,8 +1,5 @@
#![allow(clippy::cognitive_complexity)]
-mod support;
-use support::TestHelpers;
-
#[test]
fn modes() {
let mut screen = vt100::Screen::new(24, 80);
@@ -15,7 +12,7 @@ fn modes() {
assert!(!screen.mouse_reporting_sgr_mode());
assert!(!screen.bracketed_paste());
- screen.assert_process(b"\x1b[?1h");
+ screen.process(b"\x1b[?1h");
assert!(!screen.hide_cursor());
assert!(!screen.application_keypad());
@@ -26,7 +23,7 @@ fn modes() {
assert!(!screen.mouse_reporting_sgr_mode());
assert!(!screen.bracketed_paste());
- screen.assert_process(b"\x1b[?9h");
+ screen.process(b"\x1b[?9h");
assert!(!screen.hide_cursor());
assert!(!screen.application_keypad());
@@ -37,7 +34,7 @@ fn modes() {
assert!(!screen.mouse_reporting_sgr_mode());
assert!(!screen.bracketed_paste());
- screen.assert_process(b"\x1b[?25l");
+ screen.process(b"\x1b[?25l");
assert!(screen.hide_cursor());
assert!(!screen.application_keypad());
@@ -48,7 +45,7 @@ fn modes() {
assert!(!screen.mouse_reporting_sgr_mode());
assert!(!screen.bracketed_paste());
- screen.assert_process(b"\x1b[?1000h");
+ screen.process(b"\x1b[?1000h");
assert!(screen.hide_cursor());
assert!(!screen.application_keypad());
@@ -59,7 +56,7 @@ fn modes() {
assert!(!screen.mouse_reporting_sgr_mode());
assert!(!screen.bracketed_paste());
- screen.assert_process(b"\x1b[?1002h");
+ screen.process(b"\x1b[?1002h");
assert!(screen.hide_cursor());
assert!(!screen.application_keypad());
@@ -70,7 +67,7 @@ fn modes() {
assert!(!screen.mouse_reporting_sgr_mode());
assert!(!screen.bracketed_paste());
- screen.assert_process(b"\x1b[?1006h");
+ screen.process(b"\x1b[?1006h");
assert!(screen.hide_cursor());
assert!(!screen.application_keypad());
@@ -81,7 +78,7 @@ fn modes() {
assert!(screen.mouse_reporting_sgr_mode());
assert!(!screen.bracketed_paste());
- screen.assert_process(b"\x1b[?2004h");
+ screen.process(b"\x1b[?2004h");
assert!(screen.hide_cursor());
assert!(!screen.application_keypad());
@@ -92,7 +89,7 @@ fn modes() {
assert!(screen.mouse_reporting_sgr_mode());
assert!(screen.bracketed_paste());
- screen.assert_process(b"\x1b=");
+ screen.process(b"\x1b=");
assert!(screen.hide_cursor());
assert!(screen.application_keypad());
@@ -103,7 +100,7 @@ fn modes() {
assert!(screen.mouse_reporting_sgr_mode());
assert!(screen.bracketed_paste());
- screen.assert_process(b"\x1b[?1l");
+ screen.process(b"\x1b[?1l");
assert!(screen.hide_cursor());
assert!(screen.application_keypad());
@@ -114,7 +111,7 @@ fn modes() {
assert!(screen.mouse_reporting_sgr_mode());
assert!(screen.bracketed_paste());
- screen.assert_process(b"\x1b[?9l");
+ screen.process(b"\x1b[?9l");
assert!(screen.hide_cursor());
assert!(screen.application_keypad());
@@ -125,7 +122,7 @@ fn modes() {
assert!(screen.mouse_reporting_sgr_mode());
assert!(screen.bracketed_paste());
- screen.assert_process(b"\x1b[?25h");
+ screen.process(b"\x1b[?25h");
assert!(!screen.hide_cursor());
assert!(screen.application_keypad());
@@ -136,7 +133,7 @@ fn modes() {
assert!(screen.mouse_reporting_sgr_mode());
assert!(screen.bracketed_paste());
- screen.assert_process(b"\x1b[?1000l");
+ screen.process(b"\x1b[?1000l");
assert!(!screen.hide_cursor());
assert!(screen.application_keypad());
@@ -147,7 +144,7 @@ fn modes() {
assert!(screen.mouse_reporting_sgr_mode());
assert!(screen.bracketed_paste());
- screen.assert_process(b"\x1b[?1002l");
+ screen.process(b"\x1b[?1002l");
assert!(!screen.hide_cursor());
assert!(screen.application_keypad());
@@ -158,7 +155,7 @@ fn modes() {
assert!(screen.mouse_reporting_sgr_mode());
assert!(screen.bracketed_paste());
- screen.assert_process(b"\x1b[?1006l");
+ screen.process(b"\x1b[?1006l");
assert!(!screen.hide_cursor());
assert!(screen.application_keypad());
@@ -169,7 +166,7 @@ fn modes() {
assert!(!screen.mouse_reporting_sgr_mode());
assert!(screen.bracketed_paste());
- screen.assert_process(b"\x1b[?2004l");
+ screen.process(b"\x1b[?2004l");
assert!(!screen.hide_cursor());
assert!(screen.application_keypad());
@@ -180,7 +177,7 @@ fn modes() {
assert!(!screen.mouse_reporting_sgr_mode());
assert!(!screen.bracketed_paste());
- screen.assert_process(b"\x1b>");
+ screen.process(b"\x1b>");
assert!(!screen.hide_cursor());
assert!(!screen.application_keypad());
@@ -195,21 +192,21 @@ fn modes() {
#[test]
fn alternate_buffer() {
let mut screen = vt100::Screen::new(24, 80);
- screen.assert_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");
+ 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.window_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!(!screen.alternate_buffer_active());
- screen.assert_process(b"\x1b[?1049h");
+ screen.process(b"\x1b[?1049h");
assert_eq!(
screen.window_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!(screen.alternate_buffer_active());
- screen.assert_process(b"foobar");
+ screen.process(b"foobar");
assert_eq!(
screen.window_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"
);
- screen.assert_process(b"\x1b[?1049l");
+ screen.process(b"\x1b[?1049l");
assert_eq!(screen.window_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!(!screen.alternate_buffer_active());
}
diff --git a/tests/osc.rs b/tests/osc.rs
index be3c476..001ad53 100644
--- a/tests/osc.rs
+++ b/tests/osc.rs
@@ -1,15 +1,12 @@
-mod support;
-use support::TestHelpers;
-
#[test]
fn title() {
let mut screen = vt100::Screen::new(24, 80);
assert!(screen.title().is_none());
assert!(screen.icon_name().is_none());
- screen.assert_process(b"\x1b]2;it's a title\x07");
+ screen.process(b"\x1b]2;it's a title\x07");
assert_eq!(screen.title().unwrap(), "it's a title");
assert!(screen.icon_name().is_none());
- screen.assert_process(b"\x1b]2;\x07");
+ screen.process(b"\x1b]2;\x07");
assert_eq!(screen.title().unwrap(), "");
assert!(screen.icon_name().is_none());
}
@@ -19,10 +16,10 @@ fn icon_name() {
let mut screen = vt100::Screen::new(24, 80);
assert!(screen.title().is_none());
assert!(screen.icon_name().is_none());
- screen.assert_process(b"\x1b]1;it's an icon name\x07");
+ screen.process(b"\x1b]1;it's an icon name\x07");
assert!(screen.title().is_none());
assert_eq!(screen.icon_name().unwrap(), "it's an icon name");
- screen.assert_process(b"\x1b]1;\x07");
+ screen.process(b"\x1b]1;\x07");
assert!(screen.title().is_none());
assert_eq!(screen.icon_name().unwrap(), "");
}
@@ -32,10 +29,10 @@ fn title_icon_name() {
let mut screen = vt100::Screen::new(24, 80);
assert!(screen.title().is_none());
assert!(screen.icon_name().is_none());
- screen.assert_process(b"\x1b]0;it's both\x07");
+ screen.process(b"\x1b]0;it's both\x07");
assert_eq!(screen.title().unwrap(), "it's both");
assert_eq!(screen.icon_name().unwrap(), "it's both");
- screen.assert_process(b"\x1b]0;\x07");
+ screen.process(b"\x1b]0;\x07");
assert_eq!(screen.title().unwrap(), "");
assert_eq!(screen.icon_name().unwrap(), "");
}
@@ -44,6 +41,6 @@ fn title_icon_name() {
fn unknown_sequence() {
let mut screen = vt100::Screen::new(24, 80);
assert_eq!(screen.cell(0, 0).unwrap().contents(), "");
- screen.assert_process(b"\x1b]499;some long, long string?\x07");
+ screen.process(b"\x1b]499;some long, long string?\x07");
assert_eq!(screen.cell(0, 0).unwrap().contents(), "");
}
diff --git a/tests/processing.rs b/tests/processing.rs
index 3110814..0e801d2 100644
--- a/tests/processing.rs
+++ b/tests/processing.rs
@@ -3,64 +3,162 @@
#[test]
fn split_escape_sequences() {
let mut screen = vt100::Screen::new(24, 80);
- assert_eq!(screen.process(b"abc"), 3);
- assert_eq!(screen.process(b"abc\x1b[12;24Hdef"), 14);
+ let contents = screen.window_contents(0, 0, 23, 79);
+ screen.process(b"abc");
+ assert_ne!(screen.window_contents(0, 0, 23, 79), contents);
+ let contents = screen.window_contents(0, 0, 23, 79);
+ screen.process(b"abc\x1b[12;24Hdef");
+ assert_ne!(screen.window_contents(0, 0, 23, 79), contents);
+ let contents = screen.window_contents(0, 0, 23, 79);
+ assert!(contents.contains("abc"));
+ assert!(contents.contains("def"));
+ assert_eq!(screen.cursor_position(), (11, 26));
- assert_eq!(screen.process(b"\x1b"), 0);
- assert_eq!(screen.process(b"\x1b["), 0);
- assert_eq!(screen.process(b"\x1b[1"), 0);
- assert_eq!(screen.process(b"\x1b[12"), 0);
- assert_eq!(screen.process(b"\x1b[12;"), 0);
- assert_eq!(screen.process(b"\x1b[12;2"), 0);
- assert_eq!(screen.process(b"\x1b[12;24"), 0);
- assert_eq!(screen.process(b"\x1b[12;24H"), 8);
+ screen.process(b"\x1b");
+ assert_eq!(screen.cursor_position(), (11, 26));
+ assert_eq!(screen.window_contents(0, 0, 23, 79), contents);
+ screen.process(b"[");
+ assert_eq!(screen.cursor_position(), (11, 26));
+ assert_eq!(screen.window_contents(0, 0, 23, 79), contents);
+ screen.process(b"1");
+ assert_eq!(screen.cursor_position(), (11, 26));
+ assert_eq!(screen.window_contents(0, 0, 23, 79), contents);
+ screen.process(b"2");
+ assert_eq!(screen.cursor_position(), (11, 26));
+ assert_eq!(screen.window_contents(0, 0, 23, 79), contents);
+ screen.process(b";");
+ assert_eq!(screen.cursor_position(), (11, 26));
+ assert_eq!(screen.window_contents(0, 0, 23, 79), contents);
+ screen.process(b"2");
+ assert_eq!(screen.cursor_position(), (11, 26));
+ assert_eq!(screen.window_contents(0, 0, 23, 79), contents);
+ screen.process(b"4");
+ assert_eq!(screen.cursor_position(), (11, 26));
+ assert_eq!(screen.window_contents(0, 0, 23, 79), contents);
+ screen.process(b"H");
+ assert_eq!(screen.cursor_position(), (11, 23));
+ assert_eq!(screen.window_contents(0, 0, 23, 79), contents);
- assert_eq!(screen.process(b"abc\x1b"), 3);
- assert_eq!(screen.process(b"abc\x1b["), 3);
- assert_eq!(screen.process(b"abc\x1b[1"), 3);
- assert_eq!(screen.process(b"abc\x1b[12"), 3);
- assert_eq!(screen.process(b"abc\x1b[12;"), 3);
- assert_eq!(screen.process(b"abc\x1b[12;2"), 3);
- assert_eq!(screen.process(b"abc\x1b[12;24"), 3);
- assert_eq!(screen.process(b"abc\x1b[12;24H"), 11);
+ assert!(!screen.mouse_reporting_press_release());
+ screen.process(b"\x1b");
+ assert!(!screen.mouse_reporting_press_release());
+ assert_eq!(screen.cursor_position(), (11, 23));
+ assert_eq!(screen.window_contents(0, 0, 23, 79), contents);
+ screen.process(b"[");
+ assert!(!screen.mouse_reporting_press_release());
+ assert_eq!(screen.cursor_position(), (11, 23));
+ assert_eq!(screen.window_contents(0, 0, 23, 79), contents);
+ screen.process(b"?");
+ assert!(!screen.mouse_reporting_press_release());
+ assert_eq!(screen.cursor_position(), (11, 23));
+ assert_eq!(screen.window_contents(0, 0, 23, 79), contents);
+ screen.process(b"1");
+ assert!(!screen.mouse_reporting_press_release());
+ assert_eq!(screen.cursor_position(), (11, 23));
+ assert_eq!(screen.window_contents(0, 0, 23, 79), contents);
+ screen.process(b"0");
+ assert!(!screen.mouse_reporting_press_release());
+ assert_eq!(screen.cursor_position(), (11, 23));
+ assert_eq!(screen.window_contents(0, 0, 23, 79), contents);
+ screen.process(b"0");
+ assert!(!screen.mouse_reporting_press_release());
+ assert_eq!(screen.cursor_position(), (11, 23));
+ assert_eq!(screen.window_contents(0, 0, 23, 79), contents);
+ screen.process(b"0");
+ assert!(!screen.mouse_reporting_press_release());
+ assert_eq!(screen.cursor_position(), (11, 23));
+ assert_eq!(screen.window_contents(0, 0, 23, 79), contents);
+ screen.process(b"h");
+ assert!(screen.mouse_reporting_press_release());
+ assert_eq!(screen.cursor_position(), (11, 23));
+ assert_eq!(screen.window_contents(0, 0, 23, 79), contents);
- assert_eq!(screen.process(b"\x1b"), 0);
- assert_eq!(screen.process(b"\x1b["), 0);
- assert_eq!(screen.process(b"\x1b[?"), 0);
- assert_eq!(screen.process(b"\x1b[?1"), 0);
- assert_eq!(screen.process(b"\x1b[?10"), 0);
- assert_eq!(screen.process(b"\x1b[?100"), 0);
- assert_eq!(screen.process(b"\x1b[?1000"), 0);
- assert_eq!(screen.process(b"\x1b[?1000h"), 8);
-
- assert_eq!(screen.process(b"\x1b]"), 0);
- assert_eq!(screen.process(b"\x1b]4"), 0);
- assert_eq!(screen.process(b"\x1b]49"), 0);
- assert_eq!(screen.process(b"\x1b]499"), 0);
- assert_eq!(screen.process(b"\x1b]499;"), 0);
- assert_eq!(screen.process(b"\x1b]499;a"), 0);
- assert_eq!(screen.process(b"\x1b]499;a "), 0);
- assert_eq!(screen.process(b"\x1b]499;a '"), 0);
- assert_eq!(screen.process(b"\x1b]499;a '["), 0);
- assert_eq!(screen.process(b"\x1b]499;a '[]"), 0);
- assert_eq!(screen.process(b"\x1b]499;a '[]_"), 0);
- assert_eq!(screen.process(b"\x1b]499;a '[]_\x07"), 13);
+ assert_eq!(screen.title(), None);
+ screen.process(b"\x1b");
+ assert_eq!(screen.title(), None);
+ assert!(screen.mouse_reporting_press_release());
+ assert_eq!(screen.cursor_position(), (11, 23));
+ assert_eq!(screen.window_contents(0, 0, 23, 79), contents);
+ screen.process(b"]");
+ assert_eq!(screen.title(), None);
+ assert!(screen.mouse_reporting_press_release());
+ assert_eq!(screen.cursor_position(), (11, 23));
+ assert_eq!(screen.window_contents(0, 0, 23, 79), contents);
+ screen.process(b"0");
+ assert_eq!(screen.title(), None);
+ assert!(screen.mouse_reporting_press_release());
+ assert_eq!(screen.cursor_position(), (11, 23));
+ assert_eq!(screen.window_contents(0, 0, 23, 79), contents);
+ screen.process(b";");
+ assert_eq!(screen.title(), None);
+ assert!(screen.mouse_reporting_press_release());
+ assert_eq!(screen.cursor_position(), (11, 23));
+ assert_eq!(screen.window_contents(0, 0, 23, 79), contents);
+ screen.process(b"a");
+ assert_eq!(screen.title(), None);
+ assert!(screen.mouse_reporting_press_release());
+ assert_eq!(screen.cursor_position(), (11, 23));
+ assert_eq!(screen.window_contents(0, 0, 23, 79), contents);
+ screen.process(b" ");
+ assert_eq!(screen.title(), None);
+ assert!(screen.mouse_reporting_press_release());
+ assert_eq!(screen.cursor_position(), (11, 23));
+ assert_eq!(screen.window_contents(0, 0, 23, 79), contents);
+ screen.process(b"'");
+ assert_eq!(screen.title(), None);
+ assert!(screen.mouse_reporting_press_release());
+ assert_eq!(screen.cursor_position(), (11, 23));
+ assert_eq!(screen.window_contents(0, 0, 23, 79), contents);
+ screen.process(b"[");
+ assert_eq!(screen.title(), None);
+ assert!(screen.mouse_reporting_press_release());
+ assert_eq!(screen.cursor_position(), (11, 23));
+ assert_eq!(screen.window_contents(0, 0, 23, 79), contents);
+ screen.process(b"]");
+ assert_eq!(screen.title(), None);
+ assert!(screen.mouse_reporting_press_release());
+ assert_eq!(screen.cursor_position(), (11, 23));
+ assert_eq!(screen.window_contents(0, 0, 23, 79), contents);
+ screen.process(b"_");
+ assert_eq!(screen.title(), None);
+ assert!(screen.mouse_reporting_press_release());
+ assert_eq!(screen.cursor_position(), (11, 23));
+ assert_eq!(screen.window_contents(0, 0, 23, 79), contents);
+ screen.process(b"\x07");
+ assert_eq!(screen.title(), Some("a '[]_"));
+ assert!(screen.mouse_reporting_press_release());
+ assert_eq!(screen.cursor_position(), (11, 23));
+ assert_eq!(screen.window_contents(0, 0, 23, 79), contents);
}
#[test]
fn split_utf8() {
let mut screen = vt100::Screen::new(24, 80);
- assert_eq!(screen.process(b"a"), 1);
+ let contents = screen.window_contents(0, 0, 23, 79);
+ screen.process(b"a");
+ assert_ne!(screen.window_contents(0, 0, 23, 79), contents);
+ let contents = screen.window_contents(0, 0, 23, 79);
- assert_eq!(screen.process(b"\xc3"), 0);
- assert_eq!(screen.process(b"\xc3\xa1"), 2);
+ screen.process(b"\xc3");
+ assert_eq!(screen.window_contents(0, 0, 23, 79), contents);
+ screen.process(b"\xa1");
+ assert_ne!(screen.window_contents(0, 0, 23, 79), contents);
+ let contents = screen.window_contents(0, 0, 23, 79);
- assert_eq!(screen.process(b"\xe3"), 0);
- assert_eq!(screen.process(b"\xe3\x82"), 0);
- assert_eq!(screen.process(b"\xe3\x82\xad"), 3);
+ screen.process(b"\xe3");
+ assert_eq!(screen.window_contents(0, 0, 23, 79), contents);
+ screen.process(b"\x82");
+ assert_eq!(screen.window_contents(0, 0, 23, 79), contents);
+ screen.process(b"\xad");
+ assert_ne!(screen.window_contents(0, 0, 23, 79), contents);
+ let contents = screen.window_contents(0, 0, 23, 79);
- assert_eq!(screen.process(b"\xf0"), 0);
- assert_eq!(screen.process(b"\xf0\x9f"), 0);
- assert_eq!(screen.process(b"\xf0\x9f\x92"), 0);
- assert_eq!(screen.process(b"\xf0\x9f\x92\xa9"), 4);
+ screen.process(b"\xf0");
+ assert_eq!(screen.window_contents(0, 0, 23, 79), contents);
+ screen.process(b"\x9f");
+ assert_eq!(screen.window_contents(0, 0, 23, 79), contents);
+ screen.process(b"\x92");
+ assert_eq!(screen.window_contents(0, 0, 23, 79), contents);
+ screen.process(b"\xa9");
+ assert_ne!(screen.window_contents(0, 0, 23, 79), contents);
}
diff --git a/tests/scroll.rs b/tests/scroll.rs
index 3ac0074..f7e062a 100644
--- a/tests/scroll.rs
+++ b/tests/scroll.rs
@@ -1,28 +1,25 @@
-mod support;
-use support::TestHelpers;
-
#[test]
fn scroll_regions() {
let mut screen = vt100::Screen::new(24, 80);
- screen.assert_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");
+ 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.window_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");
- screen.assert_process(b"\x1b[24;50H\n");
+ screen.process(b"\x1b[24;50H\n");
assert_eq!(screen.window_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");
- screen.assert_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");
- screen.assert_process(b"\x1b[10;20r\x1b[20;50H\n");
+ 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");
+ screen.process(b"\x1b[10;20r\x1b[20;50H\n");
assert_eq!(screen.window_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.cursor_position(), (19, 49));
- screen.assert_process(b"\x1b[B");
+ screen.process(b"\x1b[B");
assert_eq!(screen.cursor_position(), (19, 49));
- screen.assert_process(b"\x1b[20A");
+ screen.process(b"\x1b[20A");
assert_eq!(screen.cursor_position(), (9, 49));
- screen.assert_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.assert_process(b"\x1b[10;20r\x1b[15;50H\x1b[2L");
+ 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.window_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");
- screen.assert_process(b"\x1b[10;50H\x1bM");
+ screen.process(b"\x1b[10;50H\x1bM");
assert_eq!(screen.window_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");
}
diff --git a/tests/split-escapes.rs b/tests/split-escapes.rs
index 33f3c0d..b630144 100644
--- a/tests/split-escapes.rs
+++ b/tests/split-escapes.rs
@@ -9,13 +9,9 @@ fn get_file_contents(name: &str) -> Vec<u8> {
fn write_to_screen(chunks: &mut Vec<Vec<u8>>) -> String {
let mut screen = vt100::Screen::new(37, 193);
- let mut full_chunk = vec![];
for chunk in chunks.iter_mut() {
- full_chunk.append(chunk);
- let bytes = screen.process(&full_chunk);
- full_chunk = full_chunk.split_off(bytes);
+ screen.process(&chunk);
}
- assert_eq!(full_chunk.len(), 0);
screen.window_contents(0, 0, 36, 192)
}
diff --git a/tests/support/mod.rs b/tests/support/mod.rs
deleted file mode 100644
index cfa6320..0000000
--- a/tests/support/mod.rs
+++ /dev/null
@@ -1,11 +0,0 @@
-pub trait TestHelpers {
- fn assert_process(&mut self, s: &[u8]) -> usize;
-}
-
-impl TestHelpers for vt100::Screen {
- fn assert_process(&mut self, s: &[u8]) -> usize {
- let ret = self.process(s);
- assert_eq!(ret, s.len());
- ret
- }
-}
diff --git a/tests/text.rs b/tests/text.rs
index 140b32f..4ece65b 100644
--- a/tests/text.rs
+++ b/tests/text.rs
@@ -1,12 +1,9 @@
#![allow(clippy::cognitive_complexity)]
-mod support;
-use support::TestHelpers;
-
#[test]
fn ascii() {
let mut screen = vt100::Screen::new(24, 80);
- screen.assert_process(b"foo");
+ screen.process(b"foo");
assert_eq!(screen.cell(0, 0).unwrap().contents(), "f");
assert_eq!(screen.cell(0, 1).unwrap().contents(), "o");
assert_eq!(screen.cell(0, 2).unwrap().contents(), "o");
@@ -25,7 +22,7 @@ fn ascii() {
#[test]
fn utf8() {
let mut screen = vt100::Screen::new(24, 80);
- screen.assert_process("café".as_bytes());
+ screen.process("café".as_bytes());
assert_eq!(screen.cell(0, 0).unwrap().contents(), "c");
assert_eq!(screen.cell(0, 1).unwrap().contents(), "a");
assert_eq!(screen.cell(0, 2).unwrap().contents(), "f");
@@ -45,7 +42,7 @@ fn utf8() {
#[test]
fn newlines() {
let mut screen = vt100::Screen::new(24, 80);
- screen.assert_process(b"f\r\noo\r\nood");
+ screen.process(b"f\r\noo\r\nood");
assert_eq!(screen.cell(0, 0).unwrap().contents(), "f");
assert_eq!(screen.cell(0, 1).unwrap().contents(), "");
assert_eq!(screen.cell(0, 2).unwrap().contents(), "");
@@ -70,7 +67,7 @@ fn newlines() {
#[test]
fn wide() {
let mut screen = vt100::Screen::new(24, 80);
- screen.assert_process("aデbネ".as_bytes());
+ screen.process("aデbネ".as_bytes());
assert_eq!(screen.cell(0, 0).unwrap().contents(), "a");
assert_eq!(screen.cell(0, 1).unwrap().contents(), "デ");
assert_eq!(screen.cell(0, 2).unwrap().contents(), "");
@@ -92,17 +89,17 @@ fn wide() {
#[test]
fn combining() {
let mut screen = vt100::Screen::new(24, 80);
- screen.assert_process(b"a");
+ screen.process(b"a");
assert_eq!(screen.cell(0, 0).unwrap().contents(), "a");
- screen.assert_process("\u{0301}".as_bytes());
+ screen.process("\u{0301}".as_bytes());
assert_eq!(screen.cell(0, 0).unwrap().contents(), "á");
- screen.assert_process(b"\x1b[20;20Habcdefg");
+ screen.process(b"\x1b[20;20Habcdefg");
assert_eq!(screen.window_contents(19, 19, 19, 26), "abcdefg");
- screen.assert_process("\x1b[20;25H\u{0301}".as_bytes());
+ screen.process("\x1b[20;25H\u{0301}".as_bytes());
assert_eq!(screen.window_contents(19, 19, 19, 26), "abcdéfg");
- screen.assert_process(b"\x1b[10;78Haaa");
+ screen.process(b"\x1b[10;78Haaa");
assert_eq!(screen.cell(9, 79).unwrap().contents(), "a");
- screen.assert_process("\r\n\u{0301}".as_bytes());
+ screen.process("\r\n\u{0301}".as_bytes());
assert_eq!(screen.cell(9, 79).unwrap().contents(), "a");
assert_eq!(screen.cell(10, 0).unwrap().contents(), "");
}
@@ -110,34 +107,34 @@ fn combining() {
#[test]
fn wrap() {
let mut screen = vt100::Screen::new(24, 80);
- screen.assert_process(b"0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789");
+ screen.process(b"0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789");
assert_eq!(screen.window_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");
- screen.assert_process(b"\x1b[5H01234567890123456789012345678901234567890123456789012345678901234567890123456789");
- screen.assert_process(b"\x1b[6H01234567890123456789012345678901234567890123456789012345678901234567890123456789");
+ screen.process(b"\x1b[5H01234567890123456789012345678901234567890123456789012345678901234567890123456789");
+ screen.process(b"\x1b[6H01234567890123456789012345678901234567890123456789012345678901234567890123456789");
assert_eq!(screen.window_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");
- screen.assert_process(b"\x1b[H\x1b[J");
- screen.assert_process(b"0123456789012345678901234567890123456789012345678901234567890123456789012345678");
+ screen.process(b"\x1b[H\x1b[J");
+ screen.process(b"0123456789012345678901234567890123456789012345678901234567890123456789012345678");
assert_eq!(screen.window_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.cursor_position(), (0, 79));
- screen.assert_process(b"9");
+ screen.process(b"9");
assert_eq!(screen.window_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.cursor_position(), (0, 80));
- screen.assert_process(b"a");
+ screen.process(b"a");
assert_eq!(screen.window_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.cursor_position(), (1, 1));
- screen.assert_process(b"b");
+ screen.process(b"b");
assert_eq!(screen.window_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.cursor_position(), (1, 2));
- screen.assert_process(b"\x1b[H\x1b[J");
- screen.assert_process(b"012345678901234567890123456789012345678901234567890123456789012345678901234567");
+ screen.process(b"\x1b[H\x1b[J");
+ screen.process(b"012345678901234567890123456789012345678901234567890123456789012345678901234567");
assert_eq!(screen.window_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.cursor_position(), (0, 78));
- screen.assert_process("ネ".as_bytes());
+ screen.process("ネ".as_bytes());
assert_eq!(screen.window_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.cursor_position(), (0, 80));
- screen.assert_process(b"a");
+ screen.process(b"a");
assert_eq!(screen.window_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.cursor_position(), (1, 1));
assert_eq!(screen.cell(0, 77).unwrap().contents(), "7");
@@ -146,14 +143,14 @@ fn wrap() {
assert_eq!(screen.cell(1, 0).unwrap().contents(), "a");
assert_eq!(screen.cell(1, 1).unwrap().contents(), "");
- screen.assert_process(b"\x1b[H\x1b[J");
- screen.assert_process(b"0123456789012345678901234567890123456789012345678901234567890123456789012345678");
+ screen.process(b"\x1b[H\x1b[J");
+ screen.process(b"0123456789012345678901234567890123456789012345678901234567890123456789012345678");
assert_eq!(screen.window_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.cursor_position(), (0, 79));
- screen.assert_process("ネ".as_bytes());
+ screen.process("ネ".as_bytes());
assert_eq!(screen.window_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.cursor_position(), (1, 2));
- screen.assert_process(b"a");
+ screen.process(b"a");
assert_eq!(screen.window_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.cursor_position(), (1, 3));
assert_eq!(screen.cell(0, 77).unwrap().contents(), "7");