use super::*;
#[test]
fn line_wrap_on_by_default() {
let mut parser = crate::Parser::new(TerminalSize { rows: 24, cols: 80 }, 0);
let input: Vec<u8> = std::iter::repeat_n(b'A', 81).collect();
process(&mut parser, &input);
let screen = parser.screen();
assert_eq!(screen.cell(0, 79).unwrap().contents(), "A");
assert_eq!(screen.cell(1, 0).unwrap().contents(), "A");
assert_eq!(screen.cursor(), Position { row: 1, col: 1 });
}
#[test]
fn line_wrap_off_clamps() {
let mut parser = crate::Parser::new(TerminalSize { rows: 24, cols: 80 }, 0);
process(&mut parser, b"\x1b[?7l");
let input: Vec<u8> = std::iter::repeat_n(b'A', 81).collect();
process(&mut parser, &input);
let screen = parser.screen();
assert_eq!(screen.cell(0, 79).unwrap().contents(), "A");
assert!(!screen.cell(1, 0).unwrap().has_contents());
assert_eq!(screen.cursor(), Position { row: 0, col: 79 });
}
#[test]
fn line_wrap_off_overwrites_last_col() {
let mut parser = crate::Parser::new(TerminalSize { rows: 24, cols: 80 }, 0);
process(&mut parser, b"\x1b[?7l");
let mut input: Vec<u8> = std::iter::repeat_n(b'A', 80).collect();
input.push(b'B');
process(&mut parser, &input);
let screen = parser.screen();
assert_eq!(screen.cell(0, 79).unwrap().contents(), "B");
assert_eq!(screen.cell(0, 78).unwrap().contents(), "A");
}
#[test]
fn line_wrap_reenable() {
let mut parser = crate::Parser::new(TerminalSize { rows: 24, cols: 80 }, 0);
process(&mut parser, b"\x1b[?7l\x1b[?7h");
let input: Vec<u8> = std::iter::repeat_n(b'A', 81).collect();
process(&mut parser, &input);
let screen = parser.screen();
assert_eq!(screen.cell(1, 0).unwrap().contents(), "A");
}