aboutsummaryrefslogtreecommitdiffstats
path: root/src/tests/integration/basic.rs
diff options
context:
space:
mode:
authorAram Drevekenin <aram@poor.dev>2020-11-03 15:50:18 +0100
committerGitHub <noreply@github.com>2020-11-03 15:50:18 +0100
commit5592a83d4a38b8d2089f4887f3da26597abb4021 (patch)
tree1ab21cea62ad206fbe6468d7b39ef9a9b99426fe /src/tests/integration/basic.rs
parentfeat(screen): split largest terminal (#19) (diff)
downloadsl0ppij-5592a83d4a38b8d2089f4887f3da26597abb4021.tar.gz
sl0ppij-5592a83d4a38b8d2089f4887f3da26597abb4021.tar.xz
sl0ppij-5592a83d4a38b8d2089f4887f3da26597abb4021.zip
feat(screen): allow specifying max panes on screen (#20)
Diffstat (limited to 'src/tests/integration/basic.rs')
-rw-r--r--src/tests/integration/basic.rs38
1 files changed, 30 insertions, 8 deletions
diff --git a/src/tests/integration/basic.rs b/src/tests/integration/basic.rs
index ef122583..aae545b0 100644
--- a/src/tests/integration/basic.rs
+++ b/src/tests/integration/basic.rs
@@ -1,7 +1,7 @@
use ::nix::pty::Winsize;
use ::insta::assert_snapshot;
-use crate::start;
+use crate::{start, Opt};
use crate::tests::fakes::{FakeInputOutput};
use crate::tests::utils::get_output_frame_snapshots;
@@ -19,7 +19,7 @@ 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()));
+ start(Box::new(fake_input_output.clone()), Opt::default());
let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap();
let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size);
for snapshot in snapshots {
@@ -37,7 +37,7 @@ 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()));
+ start(Box::new(fake_input_output.clone()), Opt::default());
let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap();
let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size);
for snapshot in snapshots {
@@ -55,7 +55,7 @@ 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()));
+ start(Box::new(fake_input_output.clone()), Opt::default());
let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap();
let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size);
for snapshot in snapshots {
@@ -73,8 +73,8 @@ pub fn split_largest_terminal () {
ws_ypixel: 0,
};
let mut fake_input_output = get_fake_os_input(&fake_win_size);
- fake_input_output.add_terminal_input(&[13, 13, 13, 17]); // split-largest_terminal * 4 and quit (ctrl-m + ctrl-m + ctrl-m + ctrl-m + ctrl-q)
- start(Box::new(fake_input_output.clone()));
+ fake_input_output.add_terminal_input(&[13, 13, 13, 17]); // split-largest_terminal * 3 and quit (ctrl-m + ctrl-m + ctrl-m + ctrl-m + ctrl-q)
+ start(Box::new(fake_input_output.clone()), Opt::default());
let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap();
let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size);
for snapshot in snapshots {
@@ -110,7 +110,7 @@ pub fn resize_right_and_up_on_the_same_axis() {
// (ctrl-b + ctrl-n + ctrl-p + ctrl-n + ctrl-p * 2 + ctrl-l + ctrl-h + ctrl-k + ctrl-q)
fake_input_output.add_terminal_input(&[2, 14, 16, 14, 16, 16, 12, 8, 11, 17]);
- start(Box::new(fake_input_output.clone()));
+ start(Box::new(fake_input_output.clone()), Opt::default());
let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap();
let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size);
for snapshot in snapshots {
@@ -128,7 +128,29 @@ pub fn scrolling_inside_a_pane() {
};
let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[2, 14, 27, 27, 29, 29, 17]); // split-horizontally, split-vertically, scroll up twice, scroll down twice and quit (ctrl-b + ctrl+[ * 2 + ctrl+] * 2, ctrl-q)
- start(Box::new(fake_input_output.clone()));
+ start(Box::new(fake_input_output.clone()), Opt::default());
+ let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap();
+ let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size);
+ for snapshot in snapshots {
+ assert_snapshot!(snapshot);
+ }
+}
+
+#[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 = Winsize { // TODO: combine with above
+ ws_col: 121,
+ ws_row: 20,
+ ws_xpixel: 0,
+ ws_ypixel: 0,
+ };
+ let mut fake_input_output = get_fake_os_input(&fake_win_size);
+ fake_input_output.add_terminal_input(&[13, 13, 13, 13, 17]); // split-largest_terminal * 4 and quit (ctrl-m + ctrl-m + ctrl-m + ctrl-m + ctrl-q)
+ let mut opts = Opt::default();
+ opts.max_panes = Some(4);
+ start(Box::new(fake_input_output.clone()), opts);
let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap();
let snapshots = get_output_frame_snapshots(&output_frames, &fake_win_size);
for snapshot in snapshots {