diff options
| author | Aram Drevekenin <aram@poor.dev> | 2020-09-29 11:40:47 +0200 |
|---|---|---|
| committer | Aram Drevekenin <aram@poor.dev> | 2020-09-29 11:40:47 +0200 |
| commit | cf1080bc3f2b3efe9ca34d9c3b462296f0d23334 (patch) | |
| tree | 5f2d8366d72dffdd4de07ff6501d58f98d6808fe /src/tests/integration/basic.rs | |
| parent | fix(compatibility): properly delete characters in backspace (diff) | |
| download | sl0ppij-cf1080bc3f2b3efe9ca34d9c3b462296f0d23334.tar.gz sl0ppij-cf1080bc3f2b3efe9ca34d9c3b462296f0d23334.tar.xz sl0ppij-cf1080bc3f2b3efe9ca34d9c3b462296f0d23334.zip | |
test(compatibility): bandwhich + various fish things
Diffstat (limited to 'src/tests/integration/basic.rs')
| -rw-r--r-- | src/tests/integration/basic.rs | 116 |
1 files changed, 10 insertions, 106 deletions
diff --git a/src/tests/integration/basic.rs b/src/tests/integration/basic.rs index 752d720b..123f96e6 100644 --- a/src/tests/integration/basic.rs +++ b/src/tests/integration/basic.rs @@ -1,8 +1,9 @@ use ::nix::pty::Winsize; use ::insta::assert_snapshot; -use crate::{start, TerminalOutput}; +use crate::start; use crate::tests::fakes::{FakeInputOutput}; +use crate::tests::utils::get_output_frame_snapshots; fn get_fake_os_input (fake_win_size: &Winsize) -> FakeInputOutput { FakeInputOutput::new(fake_win_size.clone()) @@ -19,33 +20,9 @@ pub fn starts_with_one_terminal () { let mut fake_input_output = get_fake_os_input(&fake_win_size); fake_input_output.add_terminal_input(&[17]); // quit (ctrl-q) start(Box::new(fake_input_output.clone())); - let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); - let mut vte_parser = vte::Parser::new(); - let main_pid = 0; - let x = 0; - let y = 0; - let mut terminal_output = TerminalOutput::new(main_pid, fake_win_size, x, y); - - for frame in output_frames.iter() { - for byte in frame.iter() { - vte_parser.advance(&mut terminal_output, *byte); - } - let output_lines = terminal_output.read_buffer_as_lines(); - let cursor_position_in_last_line = terminal_output.cursor_position_in_last_line(); - let mut snapshot = String::new(); - for (line_index, line) in output_lines.iter().enumerate() { - for (character_index, terminal_character) in line.iter().enumerate() { - if line_index == output_lines.len() - 1 && character_index == cursor_position_in_last_line { - snapshot.push('█'); - } else { - snapshot.push(terminal_character.character); - } - } - if line_index != output_lines.len() - 1 { - snapshot.push('\n'); - } - } + let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); + for snapshot in snapshots { assert_snapshot!(snapshot); } } @@ -61,33 +38,9 @@ pub fn split_terminals_vertically() { let mut fake_input_output = get_fake_os_input(&fake_win_size); fake_input_output.add_terminal_input(&[14, 17]); // split-vertically and quit (ctrl-n + ctrl-q) start(Box::new(fake_input_output.clone())); - let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); - let mut vte_parser = vte::Parser::new(); - let main_pid = 0; - let x = 0; - let y = 0; - let mut terminal_output = TerminalOutput::new(main_pid, fake_win_size, x, y); - - for frame in output_frames.iter() { - for byte in frame.iter() { - vte_parser.advance(&mut terminal_output, *byte); - } - let output_lines = terminal_output.read_buffer_as_lines(); - let cursor_position_in_last_line = terminal_output.cursor_position_in_last_line(); - let mut snapshot = String::new(); - for (line_index, line) in output_lines.iter().enumerate() { - for (character_index, terminal_character) in line.iter().enumerate() { - if line_index == output_lines.len() - 1 && character_index == cursor_position_in_last_line { - snapshot.push('█'); - } else { - snapshot.push(terminal_character.character); - } - } - if line_index != output_lines.len() - 1 { - snapshot.push('\n'); - } - } + let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); + for snapshot in snapshots { assert_snapshot!(snapshot); } } @@ -103,33 +56,9 @@ pub fn split_terminals_horizontally() { let mut fake_input_output = get_fake_os_input(&fake_win_size); fake_input_output.add_terminal_input(&[2, 17]); // split-horizontally and quit (ctrl-b + ctrl-q) start(Box::new(fake_input_output.clone())); - let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); - let mut vte_parser = vte::Parser::new(); - let main_pid = 0; - let x = 0; - let y = 0; - let mut terminal_output = TerminalOutput::new(main_pid, fake_win_size, x, y); - - for frame in output_frames.iter() { - for byte in frame.iter() { - vte_parser.advance(&mut terminal_output, *byte); - } - let output_lines = terminal_output.read_buffer_as_lines(); - let cursor_position_in_last_line = terminal_output.cursor_position_in_last_line(); - let mut snapshot = String::new(); - for (line_index, line) in output_lines.iter().enumerate() { - for (character_index, terminal_character) in line.iter().enumerate() { - if line_index == output_lines.len() - 1 && character_index == cursor_position_in_last_line { - snapshot.push('█'); - } else { - snapshot.push(terminal_character.character); - } - } - if line_index != output_lines.len() - 1 { - snapshot.push('\n'); - } - } + let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); + for snapshot in snapshots { assert_snapshot!(snapshot); } } @@ -163,34 +92,9 @@ pub fn resize_right_and_up_on_the_same_axis() { fake_input_output.add_terminal_input(&[2, 14, 16, 14, 16, 16, 12, 8, 11, 17]); start(Box::new(fake_input_output.clone())); - let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap(); - let mut vte_parser = vte::Parser::new(); - let main_pid = 0; - let x = 0; - let y = 0; - let mut terminal_output = TerminalOutput::new(main_pid, fake_win_size, x, y); - - for frame in output_frames.iter() { - for byte in frame.iter() { - vte_parser.advance(&mut terminal_output, *byte); - } - let output_lines = terminal_output.read_buffer_as_lines(); - let (cursor_x, cursor_y) = terminal_output.cursor_coordinates(); - let mut snapshot = String::new(); - for (line_index, line) in output_lines.iter().enumerate() { - for (character_index, terminal_character) in line.iter().enumerate() { - if line_index == cursor_y - 1 && character_index == cursor_x { - snapshot.push('█'); - } else { - snapshot.push(terminal_character.character); - } - } - if line_index != output_lines.len() - 1 { - snapshot.push('\n'); - } - } + let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size); + for snapshot in snapshots { assert_snapshot!(snapshot); } } - |
