use justerm_core::{Engine, Key, KeyEvent};
#[test]
fn mode_9001_tracked_and_decrqm_reports_it() {
let mut t = Engine::new(80, 24);
t.feed(b"\x1b[?9001$p"); assert_eq!(t.drain_replies(), b"\x1b[?9001;2$y");
t.feed(b"\x1b[?9001h\x1b[?9001$p"); assert_eq!(t.drain_replies(), b"\x1b[?9001;1$y");
}
#[test]
fn win32_input_mode_getter_reflects_the_flag() {
let mut t = Engine::new(80, 24);
assert!(!t.win32_input_mode());
t.feed(b"\x1b[?9001h");
assert!(t.win32_input_mode());
}
#[test]
fn ris_resets_win32_input_mode() {
let mut t = Engine::new(80, 24);
t.feed(b"\x1b[?9001h");
t.feed(b"\x1bc"); assert!(!t.win32_input_mode());
}
#[test]
fn win32_input_mode_does_not_hijack_encode_key() {
let mut t = Engine::new(80, 24);
t.feed(b"\x1b[?9001h");
let up = KeyEvent {
key: Key::Up,
..KeyEvent::default()
};
assert_eq!(t.encode_key(up), Some(b"\x1b[A".to_vec()));
}