diff options
author | Jesse Luehrs <doy@tozt.net> | 2019-11-05 01:32:25 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2019-11-05 01:32:25 -0500 |
commit | 4b4a9c18e4c55a2ba6558ef614292db9c18ab88a (patch) | |
tree | 03c9ada690835acbf3d1b02f46341bde5b579989 /tests/basic.rs | |
parent | 59e7c620a516278719c1689ebebeb558bede5b60 (diff) | |
download | vt100-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.rs | 104 |
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()); } |