aboutsummaryrefslogtreecommitdiffstats
path: root/tests/basic.rs
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2019-11-05 01:32:25 -0500
committerJesse Luehrs <doy@tozt.net>2019-11-05 01:32:25 -0500
commit4b4a9c18e4c55a2ba6558ef614292db9c18ab88a (patch)
tree03c9ada690835acbf3d1b02f46341bde5b579989 /tests/basic.rs
parent59e7c620a516278719c1689ebebeb558bede5b60 (diff)
downloadvt100-rust-4b4a9c18e4c55a2ba6558ef614292db9c18ab88a.tar.gz
vt100-rust-4b4a9c18e4c55a2ba6558ef614292db9c18ab88a.zip
expose the screen separately from the parser
Diffstat (limited to 'tests/basic.rs')
-rw-r--r--tests/basic.rs104
1 files changed, 58 insertions, 46 deletions
diff --git a/tests/basic.rs b/tests/basic.rs
index f26e175..afb090a 100644
--- a/tests/basic.rs
+++ b/tests/basic.rs
@@ -1,82 +1,94 @@
#[test]
fn object_creation() {
- let screen = vt100::Screen::new(24, 80);
- assert_eq!(screen.size(), (24, 80));
+ let parser = vt100::Parser::new(24, 80);
+ assert_eq!(parser.screen().size(), (24, 80));
}
#[test]
fn process_text() {
- let mut screen = vt100::Screen::new(24, 80);
+ let mut parser = vt100::Parser::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");
+ parser.process(input);
+ assert_eq!(parser.screen().contents(0, 0, 0, 50), "foobar");
}
#[test]
fn set_size() {
- let mut screen = vt100::Screen::new(24, 80);
- assert_eq!(screen.size(), (24, 80));
- assert_eq!(screen.cursor_position(), (0, 0));
+ let mut parser = vt100::Parser::new(24, 80);
+ assert_eq!(parser.screen().size(), (24, 80));
+ assert_eq!(parser.screen().cursor_position(), (0, 0));
- screen.set_size(34, 8);
- assert_eq!(screen.size(), (34, 8));
- assert_eq!(screen.cursor_position(), (0, 0));
+ parser.screen_mut().set_size(34, 8);
+ assert_eq!(parser.screen().size(), (34, 8));
+ assert_eq!(parser.screen().cursor_position(), (0, 0));
- screen.process(b"\x1b[30;5H");
- assert_eq!(screen.cursor_position(), (29, 4));
+ parser.process(b"\x1b[30;5H");
+ assert_eq!(parser.screen().cursor_position(), (29, 4));
- screen.set_size(24, 80);
- assert_eq!(screen.size(), (24, 80));
- assert_eq!(screen.cursor_position(), (23, 4));
+ parser.screen_mut().set_size(24, 80);
+ assert_eq!(parser.screen().size(), (24, 80));
+ assert_eq!(parser.screen().cursor_position(), (23, 4));
- screen.set_size(34, 8);
- assert_eq!(screen.size(), (34, 8));
- assert_eq!(screen.cursor_position(), (23, 4));
+ parser.screen_mut().set_size(34, 8);
+ assert_eq!(parser.screen().size(), (34, 8));
+ assert_eq!(parser.screen().cursor_position(), (23, 4));
- screen.process(b"\x1b[?1049h");
- assert_eq!(screen.size(), (34, 8));
- assert_eq!(screen.cursor_position(), (0, 0));
+ parser.process(b"\x1b[?1049h");
+ assert_eq!(parser.screen().size(), (34, 8));
+ assert_eq!(parser.screen().cursor_position(), (0, 0));
- screen.set_size(24, 80);
- assert_eq!(screen.size(), (24, 80));
- assert_eq!(screen.cursor_position(), (0, 0));
+ parser.screen_mut().set_size(24, 80);
+ assert_eq!(parser.screen().size(), (24, 80));
+ assert_eq!(parser.screen().cursor_position(), (0, 0));
- screen.process(b"\x1b[?1049l");
- assert_eq!(screen.size(), (24, 80));
- assert_eq!(screen.cursor_position(), (23, 4));
+ parser.process(b"\x1b[?1049l");
+ assert_eq!(parser.screen().size(), (24, 80));
+ assert_eq!(parser.screen().cursor_position(), (23, 4));
}
#[test]
fn cell_contents() {
- let mut screen = vt100::Screen::new(24, 80);
+ let mut parser = vt100::Parser::new(24, 80);
let input = b"foo\x1b[31m\x1b[32mb\x1b[3;7;42ma\x1b[23mr";
- screen.process(input);
- 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");
- assert_eq!(screen.cell(0, 3).unwrap().contents(), "b");
- assert_eq!(screen.cell(0, 4).unwrap().contents(), "a");
- assert_eq!(screen.cell(0, 5).unwrap().contents(), "r");
- assert_eq!(screen.cell(0, 6).unwrap().contents(), "");
+ parser.process(input);
+ assert_eq!(parser.screen().cell(0, 0).unwrap().contents(), "f");
+ assert_eq!(parser.screen().cell(0, 1).unwrap().contents(), "o");
+ assert_eq!(parser.screen().cell(0, 2).unwrap().contents(), "o");
+ assert_eq!(parser.screen().cell(0, 3).unwrap().contents(), "b");
+ assert_eq!(parser.screen().cell(0, 4).unwrap().contents(), "a");
+ assert_eq!(parser.screen().cell(0, 5).unwrap().contents(), "r");
+ assert_eq!(parser.screen().cell(0, 6).unwrap().contents(), "");
}
#[test]
fn cell_colors() {
- let mut screen = vt100::Screen::new(24, 80);
+ let mut parser = vt100::Parser::new(24, 80);
let input = b"foo\x1b[31m\x1b[32mb\x1b[3;7;42ma\x1b[23mr";
- screen.process(input);
+ parser.process(input);
- assert_eq!(screen.cell(0, 0).unwrap().fgcolor(), vt100::Color::Default);
- assert_eq!(screen.cell(0, 3).unwrap().fgcolor(), vt100::Color::Idx(2));
- assert_eq!(screen.cell(0, 4).unwrap().fgcolor(), vt100::Color::Idx(2));
- assert_eq!(screen.cell(0, 4).unwrap().bgcolor(), vt100::Color::Idx(2));
+ assert_eq!(
+ parser.screen().cell(0, 0).unwrap().fgcolor(),
+ vt100::Color::Default
+ );
+ assert_eq!(
+ parser.screen().cell(0, 3).unwrap().fgcolor(),
+ vt100::Color::Idx(2)
+ );
+ assert_eq!(
+ parser.screen().cell(0, 4).unwrap().fgcolor(),
+ vt100::Color::Idx(2)
+ );
+ assert_eq!(
+ parser.screen().cell(0, 4).unwrap().bgcolor(),
+ vt100::Color::Idx(2)
+ );
}
#[test]
fn cell_attrs() {
- let mut screen = vt100::Screen::new(24, 80);
+ let mut parser = vt100::Parser::new(24, 80);
let input = b"foo\x1b[31m\x1b[32mb\x1b[3;7;42ma\x1b[23mr";
- screen.process(input);
+ parser.process(input);
- assert!(screen.cell(0, 4).unwrap().italic());
+ assert!(parser.screen().cell(0, 4).unwrap().italic());
}