summaryrefslogtreecommitdiffstats
path: root/src/tests/integration/basic.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/tests/integration/basic.rs')
-rw-r--r--src/tests/integration/basic.rs498
1 files changed, 0 insertions, 498 deletions
diff --git a/src/tests/integration/basic.rs b/src/tests/integration/basic.rs
deleted file mode 100644
index 98f77988d..000000000
--- a/src/tests/integration/basic.rs
+++ /dev/null
@@ -1,498 +0,0 @@
-use ::insta::assert_snapshot;
-use zellij_utils::pane_size::PositionAndSize;
-
-use crate::tests::fakes::FakeInputOutput;
-use crate::tests::start;
-use crate::tests::utils::commands::{
- BRACKETED_PASTE_END, BRACKETED_PASTE_START, PANE_MODE, QUIT, SCROLL_DOWN_IN_SCROLL_MODE,
- SCROLL_MODE, SCROLL_PAGE_DOWN_IN_SCROLL_MODE, SCROLL_PAGE_UP_IN_SCROLL_MODE,
- SCROLL_UP_IN_SCROLL_MODE, SPAWN_TERMINAL_IN_PANE_MODE, SPLIT_DOWN_IN_PANE_MODE,
- SPLIT_RIGHT_IN_PANE_MODE, TOGGLE_ACTIVE_TERMINAL_FULLSCREEN_IN_PANE_MODE,
-};
-use crate::tests::utils::{get_next_to_last_snapshot, get_output_frame_snapshots};
-use crate::CliArgs;
-use zellij_utils::input::config::Config;
-
-fn get_fake_os_input(fake_win_size: &PositionAndSize) -> FakeInputOutput {
- FakeInputOutput::new(fake_win_size.clone())
-}
-
-#[test]
-pub fn starts_with_one_terminal() {
- let fake_win_size = PositionAndSize {
- cols: 121,
- rows: 20,
- x: 0,
- y: 0,
- ..Default::default()
- };
- let mut fake_input_output = get_fake_os_input(&fake_win_size);
- fake_input_output.add_terminal_input(&[&QUIT]);
- start(
- Box::new(fake_input_output.clone()),
- CliArgs::default(),
- Box::new(fake_input_output.clone()),
- Config::default(),
- None,
- );
- let output_frames = fake_input_output
- .stdout_writer
- .output_frames
- .lock()
- .unwrap();
- let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size);
- let snapshot_before_quit =
- get_next_to_last_snapshot(snapshots).expect("could not find snapshot");
- assert_snapshot!(snapshot_before_quit);
-}
-
-#[test]
-pub fn split_terminals_vertically() {
- let fake_win_size = PositionAndSize {
- cols: 121,
- rows: 20,
- x: 0,
- y: 0,
- ..Default::default()
- };
- let mut fake_input_output = get_fake_os_input(&fake_win_size);
- fake_input_output.add_terminal_input(&[&PANE_MODE, &SPLIT_RIGHT_IN_PANE_MODE, &QUIT]);
- start(
- Box::new(fake_input_output.clone()),
- CliArgs::default(),
- Box::new(fake_input_output.clone()),
- Config::default(),
- None,
- );
- let output_frames = fake_input_output
- .stdout_writer
- .output_frames
- .lock()
- .unwrap();
- let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size);
- let snapshot_before_quit =
- get_next_to_last_snapshot(snapshots).expect("could not find snapshot");
- assert_snapshot!(snapshot_before_quit);
-}
-
-#[test]
-pub fn split_terminals_horizontally() {
- let fake_win_size = PositionAndSize {
- cols: 121,
- rows: 20,
- x: 0,
- y: 0,
- ..Default::default()
- };
- let mut fake_input_output = get_fake_os_input(&fake_win_size);
- fake_input_output.add_terminal_input(&[&PANE_MODE, &SPLIT_DOWN_IN_PANE_MODE, &QUIT]);
- start(
- Box::new(fake_input_output.clone()),
- CliArgs::default(),
- Box::new(fake_input_output.clone()),
- Config::default(),
- None,
- );
- let output_frames = fake_input_output
- .stdout_writer
- .output_frames
- .lock()
- .unwrap();
- let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size);
- let snapshot_before_quit =
- get_next_to_last_snapshot(snapshots).expect("could not find snapshot");
- assert_snapshot!(snapshot_before_quit);
-}
-
-#[test]
-pub fn split_largest_terminal() {
- // this finds the largest pane and splits along its longest edge (vertically or horizontally)
- let fake_win_size = PositionAndSize {
- cols: 121,
- rows: 20,
- x: 0,
- y: 0,
- ..Default::default()
- };
- let mut fake_input_output = get_fake_os_input(&fake_win_size);
- fake_input_output.add_terminal_input(&[
- &PANE_MODE,
- &SPAWN_TERMINAL_IN_PANE_MODE,
- &SPAWN_TERMINAL_IN_PANE_MODE,
- &SPAWN_TERMINAL_IN_PANE_MODE,
- &QUIT,
- ]);
- start(
- Box::new(fake_input_output.clone()),
- CliArgs::default(),
- Box::new(fake_input_output.clone()),
- Config::default(),
- None,
- );
- let output_frames = fake_input_output
- .stdout_writer
- .output_frames
- .lock()
- .unwrap();
- let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size);
- let snapshot_before_quit =
- get_next_to_last_snapshot(snapshots).expect("could not find snapshot");
- assert_snapshot!(snapshot_before_quit);
-}
-
-#[test]
-pub fn cannot_split_terminals_vertically_when_active_terminal_is_too_small() {
- let fake_win_size = PositionAndSize {
- cols: 8,
- rows: 20,
- x: 0,
- y: 0,
- ..Default::default()
- };
- let mut fake_input_output = get_fake_os_input(&fake_win_size);
- fake_input_output.add_terminal_input(&[&PANE_MODE, &SPLIT_RIGHT_IN_PANE_MODE, &QUIT]);
- start(
- Box::new(fake_input_output.clone()),
- CliArgs::default(),
- Box::new(fake_input_output.clone()),
- Config::default(),
- None,
- );
- let output_frames = fake_input_output
- .stdout_writer
- .output_frames
- .lock()
- .unwrap();
- let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size);
- let snapshot_before_quit =
- get_next_to_last_snapshot(snapshots).expect("could not find snapshot");
- assert_snapshot!(snapshot_before_quit);
-}
-
-#[test]
-pub fn cannot_split_terminals_horizontally_when_active_terminal_is_too_small() {
- let fake_win_size = PositionAndSize {
- cols: 121,
- rows: 4,
- x: 0,
- y: 0,
- ..Default::default()
- };
- let mut fake_input_output = get_fake_os_input(&fake_win_size);
- fake_input_output.add_terminal_input(&[&PANE_MODE, &SPLIT_DOWN_IN_PANE_MODE, &QUIT]);
- start(
- Box::new(fake_input_output.clone()),
- CliArgs::default(),
- Box::new(fake_input_output.clone()),
- Config::default(),
- None,
- );
- let output_frames = fake_input_output
- .stdout_writer
- .output_frames
- .lock()
- .unwrap();
- let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size);
- let snapshot_before_quit =
- get_next_to_last_snapshot(snapshots).expect("could not find snapshot");
- assert_snapshot!(snapshot_before_quit);
-}
-
-#[test]
-pub fn cannot_split_largest_terminal_when_there_is_no_room() {
- let fake_win_size = PositionAndSize {
- cols: 8,
- rows: 4,
- x: 0,
- y: 0,
- ..Default::default()
- };
- let mut fake_input_output = get_fake_os_input(&fake_win_size);
- fake_input_output.add_terminal_input(&[&PANE_MODE, &SPAWN_TERMINAL_IN_PANE_MODE, &QUIT]);
- start(
- Box::new(fake_input_output.clone()),
- CliArgs::default(),
- Box::new(fake_input_output.clone()),
- Config::default(),
- None,
- );
- let output_frames = fake_input_output
- .stdout_writer
- .output_frames
- .lock()
- .unwrap();
- let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size);
- let snapshot_before_quit =
- get_next_to_last_snapshot(snapshots).expect("could not find snapshot");
- assert_snapshot!(snapshot_before_quit);
-}
-
-#[test]
-pub fn scrolling_up_inside_a_pane() {
- let fake_win_size = PositionAndSize {
- cols: 121,
- rows: 20,
- x: 0,
- y: 0,
- ..Default::default()
- };
- let mut fake_input_output = get_fake_os_input(&fake_win_size);
- fake_input_output.add_terminal_input(&[
- &PANE_MODE,
- &SPLIT_DOWN_IN_PANE_MODE,
- &SPLIT_RIGHT_IN_PANE_MODE,
- &SCROLL_MODE,
- &SCROLL_UP_IN_SCROLL_MODE,
- &SCROLL_UP_IN_SCROLL_MODE,
- &QUIT,
- ]);
- start(
- Box::new(fake_input_output.clone()),
- CliArgs::default(),
- Box::new(fake_input_output.clone()),
- Config::default(),
- None,
- );
- let output_frames = fake_input_output
- .stdout_writer
- .output_frames
- .lock()
- .unwrap();
- let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size);
- let snapshot_before_quit =
- get_next_to_last_snapshot(snapshots).expect("could not find snapshot");
- assert_snapshot!(snapshot_before_quit);
-}
-
-#[test]
-pub fn scrolling_down_inside_a_pane() {
- let fake_win_size = PositionAndSize {
- cols: 121,
- rows: 20,
- x: 0,
- y: 0,
- ..Default::default()
- };
- let mut fake_input_output = get_fake_os_input(&fake_win_size);
- fake_input_output.add_terminal_input(&[
- &PANE_MODE,
- &SPLIT_DOWN_IN_PANE_MODE,
- &SPLIT_RIGHT_IN_PANE_MODE,
- &SCROLL_MODE,
- &SCROLL_UP_IN_SCROLL_MODE,
- &SCROLL_UP_IN_SCROLL_MODE,
- &SCROLL_DOWN_IN_SCROLL_MODE,
- &SCROLL_DOWN_IN_SCROLL_MODE,
- &QUIT,
- ]);
- start(
- Box::new(fake_input_output.clone()),
- CliArgs::default(),
- Box::new(fake_input_output.clone()),
- Config::default(),
- None,
- );
- let output_frames = fake_input_output
- .stdout_writer
- .output_frames
- .lock()
- .unwrap();
- let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size);
- let snapshot_before_quit =
- get_next_to_last_snapshot(snapshots).expect("could not find snapshot");
- assert_snapshot!(snapshot_before_quit);
-}
-
-#[test]
-pub fn scrolling_page_up_inside_a_pane() {
- let fake_win_size = PositionAndSize {
- cols: 121,
- rows: 20,
- x: 0,
- y: 0,
- ..Default::default()
- };
- let mut fake_input_output = get_fake_os_input(&fake_win_size);
- fake_input_output.add_terminal_input(&[
- &PANE_MODE,
- &SPLIT_DOWN_IN_PANE_MODE,
- &SPLIT_RIGHT_IN_PANE_MODE,
- &SCROLL_MODE,
- &SCROLL_PAGE_UP_IN_SCROLL_MODE,
- &QUIT,
- ]);
- start(
- Box::new(fake_input_output.clone()),
- CliArgs::default(),
- Box::new(fake_input_output.clone()),
- Config::default(),
- None,
- );
- let output_frames = fake_input_output
- .stdout_writer
- .output_frames
- .lock()
- .unwrap();
- let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size);
- let snapshot_before_quit =
- get_next_to_last_snapshot(snapshots).expect("could not find snapshot");
- assert_snapshot!(snapshot_before_quit);
-}
-
-#[test]
-pub fn scrolling_page_down_inside_a_pane() {
- let fake_win_size = PositionAndSize {
- cols: 121,
- rows: 20,
- x: 0,
- y: 0,
- ..Default::default()
- };
- let mut fake_input_output = get_fake_os_input(&fake_win_size);
- fake_input_output.add_terminal_input(&[
- &PANE_MODE,
- &SPLIT_DOWN_IN_PANE_MODE,
- &SPLIT_RIGHT_IN_PANE_MODE,
- &SCROLL_MODE,
- &SCROLL_PAGE_UP_IN_SCROLL_MODE,
- &SCROLL_PAGE_UP_IN_SCROLL_MODE,
- &SCROLL_PAGE_DOWN_IN_SCROLL_MODE,
- &SCROLL_PAGE_DOWN_IN_SCROLL_MODE,
- &QUIT,
- ]);
- start(
- Box::new(fake_input_output.clone()),
- CliArgs::default(),
- Box::new(fake_input_output.clone()),
- Config::default(),
- None,
- );
- let output_frames = fake_input_output
- .stdout_writer
- .output_frames
- .lock()
- .unwrap();
- let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size);
- let snapshot_before_quit =
- get_next_to_last_snapshot(snapshots).expect("could not find snapshot");
- assert_snapshot!(snapshot_before_quit);
-}
-
-#[test]
-pub fn max_panes() {
- // with the --max-panes option, we only allow a certain amount of panes on screen
- // simultaneously, new panes beyond this limit will close older panes on screen
- let fake_win_size = PositionAndSize {
- cols: 121,
- rows: 20,
- x: 0,
- y: 0,
- ..Default::default()
- };
- let mut fake_input_output = get_fake_os_input(&fake_win_size);
- fake_input_output.add_terminal_input(&[
- &PANE_MODE,
- &SPAWN_TERMINAL_IN_PANE_MODE,
- &SPAWN_TERMINAL_IN_PANE_MODE,
- &SPAWN_TERMINAL_IN_PANE_MODE,
- &SPAWN_TERMINAL_IN_PANE_MODE,
- &QUIT,
- ]);
- let mut opts = CliArgs::default();
- opts.max_panes = Some(4);
- start(
- Box::new(fake_input_output.clone()),
- opts,
- Box::new(fake_input_output.clone()),
- Config::default(),
- None,
- );
- let output_frames = fake_input_output
- .stdout_writer
- .output_frames
- .lock()
- .unwrap();
- let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size);
- let snapshot_before_quit =
- get_next_to_last_snapshot(snapshots).expect("could not find snapshot");
- assert_snapshot!(snapshot_before_quit);
-}
-
-#[test]
-pub fn toggle_focused_pane_fullscreen() {
- let fake_win_size = PositionAndSize {
- cols: 121,
- rows: 20,
- x: 0,
- y: 0,
- ..Default::default()
- };
- let mut fake_input_output = get_fake_os_input(&fake_win_size);
- fake_input_output.add_terminal_input(&[
- &PANE_MODE,
- &SPAWN_TERMINAL_IN_PANE_MODE,
- &SPAWN_TERMINAL_IN_PANE_MODE,
- &SPAWN_TERMINAL_IN_PANE_MODE,
- &TOGGLE_ACTIVE_TERMINAL_FULLSCREEN_IN_PANE_MODE,
- &QUIT,
- ]);
- let mut opts = CliArgs::default();
- opts.max_panes = Some(4);
- start(
- Box::new(fake_input_output.clone()),
- opts,
- Box::new(fake_input_output.clone()),
- Config::default(),
- None,
- );
- let output_frames = fake_input_output
- .stdout_writer
- .output_frames
- .lock()
- .unwrap();
- let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size);
- let snapshot_before_quit =
- get_next_to_last_snapshot(snapshots).expect("could not find snapshot");
- assert_snapshot!(snapshot_before_quit);
-}
-
-#[test]
-pub fn bracketed_paste() {
- // bracketed paste (https://xfree86.org/current/ctlseqs.html#Bracketed%20Paste%20Mode)
- // makes sure that text the user pastes is not interpreted as commands by the running program
- // (zellij in this case)
- // this tests makes sure the "SPLIT_RIGHT_IN_PANE_MODE" command is not interpreted as Zellij,
- // since it's inside a bracketed paste block, while the "QUIT" command is, since it is already
- // past the block
- let fake_win_size = PositionAndSize {
- cols: 121,
- rows: 20,
- x: 0,
- y: 0,
- ..Default::default()
- };
- let mut fake_input_output = get_fake_os_input(&fake_win_size);
- fake_input_output.add_terminal_input(&[
- &PANE_MODE,
- &BRACKETED_PASTE_START,
- &SPLIT_RIGHT_IN_PANE_MODE,
- &BRACKETED_PASTE_END,
- &QUIT,
- ]);
- start(
- Box::new(fake_input_output.clone()),
- CliArgs::default(),
- Box::new(fake_input_output.clone()),
- Config::default(),
- None,
- );
- let output_frames = fake_input_output
- .stdout_writer
- .output_frames
- .lock()
- .unwrap();
- let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size);
- let snapshot_before_quit =
- get_next_to_last_snapshot(snapshots).expect("could not find snapshot");
- assert_snapshot!(snapshot_before_quit);
-}