diff options
author | Jesse Luehrs <doy@tozt.net> | 2023-03-08 22:31:00 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2023-03-09 00:27:25 -0500 |
commit | a705c1f07de2b8ec3ba4fe46377242f151b996c1 (patch) | |
tree | fcd415ca7390aa47b4c7af56948506fc15571fdf /tests/escape.rs | |
parent | 939fd8bed87dd67de9d0e00ba151ef637ef1c16a (diff) | |
download | vt100-rust-a705c1f07de2b8ec3ba4fe46377242f151b996c1.tar.gz vt100-rust-a705c1f07de2b8ec3ba4fe46377242f151b996c1.zip |
use callbacks for events rather than tracking counters
Diffstat (limited to 'tests/escape.rs')
-rw-r--r-- | tests/escape.rs | 39 |
1 files changed, 22 insertions, 17 deletions
diff --git a/tests/escape.rs b/tests/escape.rs index 478b30b..fbe7bd3 100644 --- a/tests/escape.rs +++ b/tests/escape.rs @@ -17,39 +17,44 @@ fn ris() { #[test] fn vb() { + struct State { + vb: usize, + } + + impl vt100::Callbacks for State { + fn visual_bell(&mut self, _: &mut vt100::Screen) { + self.vb += 1; + } + } + let mut parser = vt100::Parser::default(); - assert_eq!(parser.screen().visual_bell_count(), 0); + let mut state = State { vb: 0 }; + assert_eq!(state.vb, 0); let screen = parser.screen().clone(); - parser.process(b"\x1bg"); - assert_eq!(parser.screen().visual_bell_count(), 1); - assert_eq!(parser.screen().visual_bell_count(), 1); + parser.process_cb(b"\x1bg", &mut state); + assert_eq!(state.vb, 1); assert_eq!(parser.screen().contents_diff(&screen), b""); - assert_eq!(parser.screen().bells_diff(&screen), b"\x1bg"); let screen = parser.screen().clone(); - parser.process(b"\x1bg"); - assert_eq!(parser.screen().visual_bell_count(), 2); + parser.process_cb(b"\x1bg", &mut state); + assert_eq!(state.vb, 2); assert_eq!(parser.screen().contents_diff(&screen), b""); - assert_eq!(parser.screen().bells_diff(&screen), b"\x1bg"); let screen = parser.screen().clone(); - parser.process(b"\x1bg\x1bg\x1bg"); - assert_eq!(parser.screen().visual_bell_count(), 5); + parser.process_cb(b"\x1bg\x1bg\x1bg", &mut state); + assert_eq!(state.vb, 5); assert_eq!(parser.screen().contents_diff(&screen), b""); - assert_eq!(parser.screen().bells_diff(&screen), b"\x1bg"); let screen = parser.screen().clone(); - parser.process(b"foo"); - assert_eq!(parser.screen().visual_bell_count(), 5); + parser.process_cb(b"foo", &mut state); + assert_eq!(state.vb, 5); assert_eq!(parser.screen().contents_diff(&screen), b"foo"); - assert_eq!(parser.screen().bells_diff(&screen), b""); let screen = parser.screen().clone(); - parser.process(b"ba\x1bgr"); - assert_eq!(parser.screen().visual_bell_count(), 6); + parser.process_cb(b"ba\x1bgr", &mut state); + assert_eq!(state.vb, 6); assert_eq!(parser.screen().contents_diff(&screen), b"bar"); - assert_eq!(parser.screen().bells_diff(&screen), b"\x1bg"); } #[test] |