use super::*;
#[test]
fn decrqm_auto_wrap_default_set() {
let mut parser = crate::Parser::new(TerminalSize { rows: 24, cols: 80 }, 0);
process(&mut parser, b"\x1b[?7$p");
assert_eq!(drain_replies(&mut parser), b"\x1b[?7;1$y");
}
#[test]
fn decrqm_auto_wrap_after_reset() {
let mut parser = crate::Parser::new(TerminalSize { rows: 24, cols: 80 }, 0);
process(&mut parser, b"\x1b[?7l\x1b[?7$p");
assert_eq!(drain_replies(&mut parser), b"\x1b[?7;2$y");
}
#[test]
fn decrqm_cursor_visible_default() {
let mut parser = crate::Parser::new(TerminalSize { rows: 24, cols: 80 }, 0);
process(&mut parser, b"\x1b[?25$p");
assert_eq!(drain_replies(&mut parser), b"\x1b[?25;1$y");
}
#[test]
fn decrqm_cursor_hidden() {
let mut parser = crate::Parser::new(TerminalSize { rows: 24, cols: 80 }, 0);
process(&mut parser, b"\x1b[?25l\x1b[?25$p");
assert_eq!(drain_replies(&mut parser), b"\x1b[?25;2$y");
}
#[test]
fn decrqm_bracketed_paste_off_by_default() {
let mut parser = crate::Parser::new(TerminalSize { rows: 24, cols: 80 }, 0);
process(&mut parser, b"\x1b[?2004$p");
assert_eq!(drain_replies(&mut parser), b"\x1b[?2004;2$y");
}
#[test]
fn decrqm_bracketed_paste_on() {
let mut parser = crate::Parser::new(TerminalSize { rows: 24, cols: 80 }, 0);
process(&mut parser, b"\x1b[?2004h\x1b[?2004$p");
assert_eq!(drain_replies(&mut parser), b"\x1b[?2004;1$y");
}
#[test]
fn decrqm_sync_update() {
let mut parser = crate::Parser::new(TerminalSize { rows: 24, cols: 80 }, 0);
process(&mut parser, b"\x1b[?2026$p");
assert_eq!(drain_replies(&mut parser), b"\x1b[?2026;2$y");
process(&mut parser, b"\x1b[?2026h\x1b[?2026$p");
assert_eq!(drain_replies(&mut parser), b"\x1b[?2026;1$y");
}
#[test]
fn decrqm_focus_in_out() {
let mut parser = crate::Parser::new(TerminalSize { rows: 24, cols: 80 }, 0);
process(&mut parser, b"\x1b[?1004h\x1b[?1004$p");
assert_eq!(drain_replies(&mut parser), b"\x1b[?1004;1$y");
}
#[test]
fn decrqm_mouse_modes() {
let mut parser = crate::Parser::new(TerminalSize { rows: 24, cols: 80 }, 0);
process(&mut parser, b"\x1b[?1000$p");
assert_eq!(drain_replies(&mut parser), b"\x1b[?1000;2$y");
process(&mut parser, b"\x1b[?1000h\x1b[?1000$p");
assert_eq!(drain_replies(&mut parser), b"\x1b[?1000;1$y");
process(&mut parser, b"\x1b[?1006h\x1b[?1006$p");
assert_eq!(drain_replies(&mut parser), b"\x1b[?1006;1$y");
}
#[test]
fn decrqm_alt_screen() {
let mut parser = crate::Parser::new(TerminalSize { rows: 24, cols: 80 }, 0);
process(&mut parser, b"\x1b[?1049$p");
assert_eq!(drain_replies(&mut parser), b"\x1b[?1049;2$y");
process(&mut parser, b"\x1b[?1049h\x1b[?1049$p");
assert_eq!(drain_replies(&mut parser), b"\x1b[?1049;1$y");
}
#[test]
fn decrqm_unknown_mode() {
let mut parser = crate::Parser::new(TerminalSize { rows: 24, cols: 80 }, 0);
process(&mut parser, b"\x1b[?9999$p");
assert_eq!(drain_replies(&mut parser), b"\x1b[?9999;0$y");
}
#[test]
fn decrqm_color_scheme_updates() {
let mut parser = crate::Parser::new(TerminalSize { rows: 24, cols: 80 }, 0);
process(&mut parser, b"\x1b[?2031$p");
assert_eq!(drain_replies(&mut parser), b"\x1b[?2031;2$y");
process(&mut parser, b"\x1b[?2031h\x1b[?2031$p");
assert_eq!(drain_replies(&mut parser), b"\x1b[?2031;1$y");
process(&mut parser, b"\x1b[?2031l\x1b[?2031$p");
assert_eq!(drain_replies(&mut parser), b"\x1b[?2031;2$y");
}
#[test]
fn decrqm_in_band_resize() {
let mut parser = crate::Parser::new(TerminalSize { rows: 24, cols: 80 }, 0);
process(&mut parser, b"\x1b[?2048$p");
assert_eq!(drain_replies(&mut parser), b"\x1b[?2048;2$y");
process(&mut parser, b"\x1b[?2048h\x1b[?2048$p");
assert_eq!(drain_replies(&mut parser), b"\x1b[?2048;1$y");
}
#[test]
fn decrqm_sgr_pixel_mouse() {
let mut parser = crate::Parser::new(TerminalSize { rows: 24, cols: 80 }, 0);
process(&mut parser, b"\x1b[?1016$p");
assert_eq!(drain_replies(&mut parser), b"\x1b[?1016;2$y");
process(&mut parser, b"\x1b[?1016h\x1b[?1016$p");
assert_eq!(drain_replies(&mut parser), b"\x1b[?1016;1$y");
}
#[test]
fn ansi_mode_report_insert() {
let mut parser = crate::Parser::new(TerminalSize { rows: 24, cols: 80 }, 0);
process(&mut parser, b"\x1b[4$p");
assert_eq!(drain_replies(&mut parser), b"\x1b[4;2$y");
process(&mut parser, b"\x1b[4h\x1b[4$p");
assert_eq!(drain_replies(&mut parser), b"\x1b[4;1$y");
}
#[test]
fn decrqm_reverse_video() {
let mut parser = crate::Parser::new(TerminalSize { rows: 24, cols: 80 }, 0);
process(&mut parser, b"\x1b[?5$p");
assert_eq!(drain_replies(&mut parser), b"\x1b[?5;2$y");
process(&mut parser, b"\x1b[?5h\x1b[?5$p");
assert_eq!(drain_replies(&mut parser), b"\x1b[?5;1$y");
process(&mut parser, b"\x1b[?5l\x1b[?5$p");
assert_eq!(drain_replies(&mut parser), b"\x1b[?5;2$y");
}
#[test]
fn decrqm_mouse_x10() {
let mut parser = crate::Parser::new(TerminalSize { rows: 24, cols: 80 }, 0);
process(&mut parser, b"\x1b[?9$p");
assert_eq!(drain_replies(&mut parser), b"\x1b[?9;2$y");
process(&mut parser, b"\x1b[?9h\x1b[?9$p");
assert_eq!(drain_replies(&mut parser), b"\x1b[?9;1$y");
process(&mut parser, b"\x1b[?9l\x1b[?9$p");
assert_eq!(drain_replies(&mut parser), b"\x1b[?9;2$y");
}
#[test]
fn decrqm_backspace_bs() {
let mut parser = crate::Parser::new(TerminalSize { rows: 24, cols: 80 }, 0);
process(&mut parser, b"\x1b[?67$p");
assert_eq!(drain_replies(&mut parser), b"\x1b[?67;2$y");
process(&mut parser, b"\x1b[?67h\x1b[?67$p");
assert_eq!(drain_replies(&mut parser), b"\x1b[?67;1$y");
process(&mut parser, b"\x1b[?67l\x1b[?67$p");
assert_eq!(drain_replies(&mut parser), b"\x1b[?67;2$y");
}
#[test]
fn ansi_mode_report_lnm() {
let mut parser = crate::Parser::new(TerminalSize { rows: 24, cols: 80 }, 0);
process(&mut parser, b"\x1b[20$p");
assert_eq!(drain_replies(&mut parser), b"\x1b[20;2$y");
process(&mut parser, b"\x1b[20h\x1b[20$p");
assert_eq!(drain_replies(&mut parser), b"\x1b[20;1$y");
process(&mut parser, b"\x1b[20l\x1b[20$p");
assert_eq!(drain_replies(&mut parser), b"\x1b[20;2$y");
}