use justerm_core::Engine;
#[test]
fn autowrap_off_overwrites_the_last_column() {
let mut t = Engine::new(3, 2);
t.feed(b"\x1b[?7l"); t.feed(b"abcd"); assert_eq!(t.grid().cell(0, 0).c(), 'a');
assert_eq!(t.grid().cell(0, 1).c(), 'b');
assert_eq!(t.grid().cell(0, 2).c(), 'd'); assert_eq!(t.grid().cell(1, 0).c(), ' '); }
#[test]
fn autowrap_on_is_the_default_and_wraps() {
let mut t = Engine::new(3, 2);
t.feed(b"abcd"); assert_eq!(t.grid().cell(0, 2).c(), 'c');
assert_eq!(t.grid().cell(1, 0).c(), 'd');
}
#[test]
fn re_enabling_autowrap_restores_wrapping() {
let mut t = Engine::new(3, 2);
t.feed(b"\x1b[?7l"); t.feed(b"\x1b[?7h"); t.feed(b"abcd");
assert_eq!(t.grid().cell(1, 0).c(), 'd'); }
#[test]
fn autowrap_off_skips_a_wide_glyph_that_does_not_fit() {
let mut t = Engine::new(3, 2);
t.feed(b"\x1b[?7l");
t.feed(b"ab"); t.feed("世".as_bytes()); assert_eq!(t.grid().cell(0, 2).c(), ' '); assert_eq!(t.grid().cell(1, 0).c(), ' '); }
#[test]
fn decrqm_reports_autowrap_state() {
let mut t = Engine::new(10, 2);
t.feed(b"\x1b[?7$p"); assert_eq!(t.drain_replies(), b"\x1b[?7;1$y");
t.feed(b"\x1b[?7l\x1b[?7$p"); assert_eq!(t.drain_replies(), b"\x1b[?7;2$y");
}