aboutsummaryrefslogtreecommitdiffstats
path: root/src/tests/integration/basic.rs
diff options
context:
space:
mode:
authorAram Drevekenin <aram@poor.dev>2020-09-29 11:40:47 +0200
committerAram Drevekenin <aram@poor.dev>2020-09-29 11:40:47 +0200
commitcf1080bc3f2b3efe9ca34d9c3b462296f0d23334 (patch)
tree5f2d8366d72dffdd4de07ff6501d58f98d6808fe /src/tests/integration/basic.rs
parentfix(compatibility): properly delete characters in backspace (diff)
downloadsl0ppij-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.rs116
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);
}
}
-