use super::*;
#[test]
fn osc_22_emits_pointer_shape() {
let mut parser = crate::Parser::new(TerminalSize { rows: 24, cols: 80 }, 0);
process(&mut parser, b"\x1b]22;pointer\x07");
let events = parser.screen_mut().drain_events();
assert!(
events.contains(&ScreenEvent::MousePointerShape {
name: "pointer".to_string(),
}),
"expected MousePointerShape event, got {events:?}",
);
}
#[test]
fn osc_22_with_empty_body_emits_default() {
let mut parser = crate::Parser::new(TerminalSize { rows: 24, cols: 80 }, 0);
process(&mut parser, b"\x1b]22;\x07");
let events = parser.screen_mut().drain_events();
assert!(
events.contains(&ScreenEvent::MousePointerShape {
name: String::new(),
}),
"expected MousePointerShape event with empty name, got {events:?}",
);
}
#[test]
fn osc_22_arbitrary_name_passes_through() {
let mut parser = crate::Parser::new(TerminalSize { rows: 24, cols: 80 }, 0);
process(&mut parser, b"\x1b]22;some-future-cursor-name\x07");
let events = parser.screen_mut().drain_events();
assert!(
events.contains(&ScreenEvent::MousePointerShape {
name: "some-future-cursor-name".to_string(),
}),
"expected MousePointerShape event with verbatim name, got {events:?}",
);
}