fix(input): read stdin with lock (#72)

* fix(input): lock stdin when reading and use its own buffer

* style(format): make rustfmt happy

* fix(ipc): add accidentally removed trait
This commit is contained in:
Aram Drevekenin 2020-11-29 19:12:19 +01:00 committed by GitHub
parent 9ad7b8a35e
commit ea549f151e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 926 additions and 988 deletions

View file

@ -1,5 +1,4 @@
/// Module for handling input /// Module for handling input
use std::io::Read;
use std::sync::mpsc::Sender; use std::sync::mpsc::Sender;
use crate::os_input_output::OsApi; use crate::os_input_output::OsApi;
@ -9,9 +8,8 @@ use crate::AppInstruction;
use crate::CommandIsExecuting; use crate::CommandIsExecuting;
struct InputHandler { struct InputHandler {
buffer: [u8; 10], // TODO: more accurately
mode: InputMode, mode: InputMode,
stdin: Box<dyn Read>, os_input: Box<dyn OsApi>,
command_is_executing: CommandIsExecuting, command_is_executing: CommandIsExecuting,
send_screen_instructions: Sender<ScreenInstruction>, send_screen_instructions: Sender<ScreenInstruction>,
send_pty_instructions: Sender<PtyInstruction>, send_pty_instructions: Sender<PtyInstruction>,
@ -27,9 +25,8 @@ impl InputHandler {
send_app_instructions: Sender<AppInstruction>, send_app_instructions: Sender<AppInstruction>,
) -> Self { ) -> Self {
InputHandler { InputHandler {
buffer: [0; 10], // TODO: more accurately
mode: InputMode::Normal, mode: InputMode::Normal,
stdin: os_input.get_stdin_reader(), os_input,
command_is_executing, command_is_executing,
send_screen_instructions, send_screen_instructions,
send_pty_instructions, send_pty_instructions,
@ -57,16 +54,10 @@ impl InputHandler {
assert_eq!(self.mode, InputMode::Normal); assert_eq!(self.mode, InputMode::Normal);
loop { loop {
self.buffer = [0; 10]; let stdin_buffer = self.os_input.read_from_stdin();
let _ = self match stdin_buffer.as_slice() {
.stdin [7] => {
.read(&mut self.buffer)
.expect("failed to read stdin");
match self.buffer {
[7, 0, 0, 0, 0, 0, 0, 0, 0, 0] => {
// ctrl-g // ctrl-g
// debug_log_to_file(format!("switched to command mode"));
self.mode = InputMode::Command; self.mode = InputMode::Command;
return; return;
} }
@ -75,7 +66,7 @@ impl InputHandler {
.send(ScreenInstruction::ClearScroll) .send(ScreenInstruction::ClearScroll)
.unwrap(); .unwrap();
self.send_screen_instructions self.send_screen_instructions
.send(ScreenInstruction::WriteCharacter(self.buffer)) .send(ScreenInstruction::WriteCharacter(stdin_buffer))
.unwrap(); .unwrap();
} }
} }
@ -92,15 +83,12 @@ impl InputHandler {
} }
loop { loop {
self.buffer = [0; 10]; let stdin_buffer = self.os_input.read_from_stdin();
let _ = self
.stdin
.read(&mut self.buffer)
.expect("failed to read stdin");
// uncomment this to print the entered character to a log file (/tmp/mosaic/mosaic-log.txt) for debugging // uncomment this to print the entered character to a log file (/tmp/mosaic/mosaic-log.txt) for debugging
// debug_log_to_file(format!("buffer {:?}", self.buffer)); // debug_log_to_file(format!("buffer {:?}", stdin_buffer));
match self.buffer {
[7, 0, 0, 0, 0, 0, 0, 0, 0, 0] => { match stdin_buffer.as_slice() {
[7] => {
// Ctrl-g // Ctrl-g
// If we're in command mode, this will let us switch to persistent command mode, to execute // If we're in command mode, this will let us switch to persistent command mode, to execute
// multiple commands. If we're already in persistent mode, it'll return us to normal mode. // multiple commands. If we're already in persistent mode, it'll return us to normal mode.
@ -108,49 +96,47 @@ impl InputHandler {
InputMode::Command => self.mode = InputMode::CommandPersistent, InputMode::Command => self.mode = InputMode::CommandPersistent,
InputMode::CommandPersistent => { InputMode::CommandPersistent => {
self.mode = InputMode::Normal; self.mode = InputMode::Normal;
// debug_log_to_file(format!("switched to normal mode"));
return; return;
} }
_ => panic!(), _ => panic!(),
} }
} }
[27, 0, 0, 0, 0, 0, 0, 0, 0, 0] => { [27] => {
// Esc // Esc
self.mode = InputMode::Normal; self.mode = InputMode::Normal;
// _debug_log_to_file(format!("switched to normal mode"));
return; return;
} }
[106, 0, 0, 0, 0, 0, 0, 0, 0, 0] => { [106] => {
// j // j
self.send_screen_instructions self.send_screen_instructions
.send(ScreenInstruction::ResizeDown) .send(ScreenInstruction::ResizeDown)
.unwrap(); .unwrap();
} }
[107, 0, 0, 0, 0, 0, 0, 0, 0, 0] => { [107] => {
// k // k
self.send_screen_instructions self.send_screen_instructions
.send(ScreenInstruction::ResizeUp) .send(ScreenInstruction::ResizeUp)
.unwrap(); .unwrap();
} }
[112, 0, 0, 0, 0, 0, 0, 0, 0, 0] => { [112] => {
// p // p
self.send_screen_instructions self.send_screen_instructions
.send(ScreenInstruction::MoveFocus) .send(ScreenInstruction::MoveFocus)
.unwrap(); .unwrap();
} }
[104, 0, 0, 0, 0, 0, 0, 0, 0, 0] => { [104] => {
// h // h
self.send_screen_instructions self.send_screen_instructions
.send(ScreenInstruction::ResizeLeft) .send(ScreenInstruction::ResizeLeft)
.unwrap(); .unwrap();
} }
[108, 0, 0, 0, 0, 0, 0, 0, 0, 0] => { [108] => {
// l // l
self.send_screen_instructions self.send_screen_instructions
.send(ScreenInstruction::ResizeRight) .send(ScreenInstruction::ResizeRight)
.unwrap(); .unwrap();
} }
[122, 0, 0, 0, 0, 0, 0, 0, 0, 0] => { [122] => {
// z // z
self.command_is_executing.opening_new_pane(); self.command_is_executing.opening_new_pane();
self.send_pty_instructions self.send_pty_instructions
@ -158,7 +144,7 @@ impl InputHandler {
.unwrap(); .unwrap();
self.command_is_executing.wait_until_new_pane_is_opened(); self.command_is_executing.wait_until_new_pane_is_opened();
} }
[110, 0, 0, 0, 0, 0, 0, 0, 0, 0] => { [110] => {
// n // n
self.command_is_executing.opening_new_pane(); self.command_is_executing.opening_new_pane();
self.send_pty_instructions self.send_pty_instructions
@ -166,7 +152,7 @@ impl InputHandler {
.unwrap(); .unwrap();
self.command_is_executing.wait_until_new_pane_is_opened(); self.command_is_executing.wait_until_new_pane_is_opened();
} }
[98, 0, 0, 0, 0, 0, 0, 0, 0, 0] => { [98] => {
// b // b
self.command_is_executing.opening_new_pane(); self.command_is_executing.opening_new_pane();
self.send_pty_instructions self.send_pty_instructions
@ -174,24 +160,24 @@ impl InputHandler {
.unwrap(); .unwrap();
self.command_is_executing.wait_until_new_pane_is_opened(); self.command_is_executing.wait_until_new_pane_is_opened();
} }
[113, 0, 0, 0, 0, 0, 0, 0, 0, 0] => { [113] => {
// q // q
self.mode = InputMode::Exiting; self.mode = InputMode::Exiting;
return; return;
} }
[27, 91, 53, 126, 0, 0, 0, 0, 0, 0] => { [27, 91, 53, 126] => {
// PgUp // PgUp
self.send_screen_instructions self.send_screen_instructions
.send(ScreenInstruction::ScrollUp) .send(ScreenInstruction::ScrollUp)
.unwrap(); .unwrap();
} }
[27, 91, 54, 126, 0, 0, 0, 0, 0, 0] => { [27, 91, 54, 126] => {
// PgDown // PgDown
self.send_screen_instructions self.send_screen_instructions
.send(ScreenInstruction::ScrollDown) .send(ScreenInstruction::ScrollDown)
.unwrap(); .unwrap();
} }
[120, 0, 0, 0, 0, 0, 0, 0, 0, 0] => { [120] => {
// x // x
self.command_is_executing.closing_pane(); self.command_is_executing.closing_pane();
self.send_screen_instructions self.send_screen_instructions
@ -199,7 +185,7 @@ impl InputHandler {
.unwrap(); .unwrap();
self.command_is_executing.wait_until_pane_is_closed(); self.command_is_executing.wait_until_pane_is_closed();
} }
[101, 0, 0, 0, 0, 0, 0, 0, 0, 0] => { [101] => {
// e // e
self.send_screen_instructions self.send_screen_instructions
.send(ScreenInstruction::ToggleActiveTerminalFullscreen) .send(ScreenInstruction::ToggleActiveTerminalFullscreen)

View file

@ -5,7 +5,8 @@ use nix::sys::signal::{kill, Signal};
use nix::sys::termios::{cfmakeraw, tcdrain, tcgetattr, tcsetattr, SetArg, Termios}; use nix::sys::termios::{cfmakeraw, tcdrain, tcgetattr, tcsetattr, SetArg, Termios};
use nix::sys::wait::waitpid; use nix::sys::wait::waitpid;
use nix::unistd::{read, write, ForkResult, Pid}; use nix::unistd::{read, write, ForkResult, Pid};
use std::io::{Read, Write}; use std::io::prelude::*;
use std::io::{stdin, Write};
use std::os::unix::io::RawFd; use std::os::unix::io::RawFd;
use std::path::PathBuf; use std::path::PathBuf;
use std::process::{Child, Command}; use std::process::{Child, Command};
@ -147,7 +148,7 @@ pub trait OsApi: Send + Sync {
fn write_to_tty_stdin(&mut self, pid: RawFd, buf: &mut [u8]) -> Result<usize, nix::Error>; fn write_to_tty_stdin(&mut self, pid: RawFd, buf: &mut [u8]) -> Result<usize, nix::Error>;
fn tcdrain(&mut self, pid: RawFd) -> Result<(), nix::Error>; fn tcdrain(&mut self, pid: RawFd) -> Result<(), nix::Error>;
fn kill(&mut self, pid: RawFd) -> Result<(), nix::Error>; fn kill(&mut self, pid: RawFd) -> Result<(), nix::Error>;
fn get_stdin_reader(&self) -> Box<dyn Read>; fn read_from_stdin(&self) -> Vec<u8>;
fn get_stdout_writer(&self) -> Box<dyn Write>; fn get_stdout_writer(&self) -> Box<dyn Write>;
fn box_clone(&self) -> Box<dyn OsApi>; fn box_clone(&self) -> Box<dyn OsApi>;
} }
@ -182,12 +183,14 @@ impl OsApi for OsInputOutput {
fn box_clone(&self) -> Box<dyn OsApi> { fn box_clone(&self) -> Box<dyn OsApi> {
Box::new((*self).clone()) Box::new((*self).clone())
} }
fn get_stdin_reader(&self) -> Box<dyn Read> { fn read_from_stdin(&self) -> Vec<u8> {
// TODO: stdin lock, right now it's not done because we don't have where to put it let stdin = stdin();
// if we put it on the struct, we won't be able to clone the struct let mut stdin = stdin.lock();
// if we leave it here, we're referencing a temporary value let buffer = stdin.fill_buf().unwrap();
let stdin = ::std::io::stdin(); let length = buffer.len();
Box::new(stdin) let read_bytes = Vec::from(buffer);
stdin.consume(length);
read_bytes
} }
fn get_stdout_writer(&self) -> Box<dyn Write> { fn get_stdout_writer(&self) -> Box<dyn Write> {
let stdout = ::std::io::stdout(); let stdout = ::std::io::stdout();

View file

@ -55,7 +55,7 @@ pub enum ScreenInstruction {
NewPane(RawFd), NewPane(RawFd),
HorizontalSplit(RawFd), HorizontalSplit(RawFd),
VerticalSplit(RawFd), VerticalSplit(RawFd),
WriteCharacter([u8; 10]), WriteCharacter(Vec<u8>),
ResizeLeft, ResizeLeft,
ResizeRight, ResizeRight,
ResizeDown, ResizeDown,
@ -383,21 +383,10 @@ impl Screen {
let terminal_output = self.terminals.get_mut(&pid).unwrap(); let terminal_output = self.terminals.get_mut(&pid).unwrap();
terminal_output.handle_event(event); terminal_output.handle_event(event);
} }
pub fn write_to_active_terminal(&mut self, bytes: [u8; 10]) { pub fn write_to_active_terminal(&mut self, mut bytes: Vec<u8>) {
if let Some(active_terminal_id) = &self.get_active_terminal_id() { if let Some(active_terminal_id) = &self.get_active_terminal_id() {
// this is a bit of a hack and is done in order not to send trailing
// zeros to the terminal (because they mess things up)
// TODO: fix this by only sending around the exact bytes read from stdin
let mut trimmed_bytes = vec![];
for byte in bytes.iter() {
if *byte == 0 {
break;
} else {
trimmed_bytes.push(*byte);
}
}
self.os_api self.os_api
.write_to_tty_stdin(*active_terminal_id, &mut trimmed_bytes) .write_to_tty_stdin(*active_terminal_id, &mut bytes)
.expect("failed to write to terminal"); .expect("failed to write to terminal");
self.os_api self.os_api
.tcdrain(*active_terminal_id) .tcdrain(*active_terminal_id)

View file

@ -1,6 +1,6 @@
use crate::terminal_pane::PositionAndSize; use crate::terminal_pane::PositionAndSize;
use ::std::collections::HashMap; use ::std::collections::{HashMap, VecDeque};
use ::std::io::{Read, Write}; use ::std::io::Write;
use ::std::os::unix::io::RawFd; use ::std::os::unix::io::RawFd;
use ::std::path::PathBuf; use ::std::path::PathBuf;
use ::std::sync::atomic::{AtomicBool, Ordering}; use ::std::sync::atomic::{AtomicBool, Ordering};
@ -21,68 +21,6 @@ pub enum IoEvent {
TcDrain(RawFd), TcDrain(RawFd),
} }
pub struct FakeStdinReader {
pub input_chars: Vec<[u8; 10]>,
pub read_position: usize,
last_snapshot_time: Arc<Mutex<Instant>>,
started_reading_from_pty: Arc<AtomicBool>,
}
impl FakeStdinReader {
pub fn new(
input_chars: Vec<[u8; 10]>,
last_snapshot_time: Arc<Mutex<Instant>>,
started_reading_from_pty: Arc<AtomicBool>,
) -> Self {
FakeStdinReader {
input_chars,
read_position: 0,
last_snapshot_time,
started_reading_from_pty,
}
}
}
impl Read for FakeStdinReader {
fn read(&mut self, buf: &mut [u8]) -> Result<usize, std::io::Error> {
loop {
if self.started_reading_from_pty.load(Ordering::Acquire) == false {
::std::thread::sleep(MIN_TIME_BETWEEN_SNAPSHOTS);
} else {
let last_snapshot_time = { *self.last_snapshot_time.lock().unwrap() };
if last_snapshot_time.elapsed() > MIN_TIME_BETWEEN_SNAPSHOTS {
break;
} else {
::std::thread::sleep(MIN_TIME_BETWEEN_SNAPSHOTS - last_snapshot_time.elapsed());
}
}
}
let read_position = self.read_position;
match self.input_chars.get(read_position) {
Some(bytes_to_read) => {
for (i, byte) in bytes_to_read.iter().enumerate() {
buf[i] = *byte;
}
self.read_position += 1;
Ok(bytes_to_read.len())
}
None => {
// what is happening here?
//
// Here the stdin loop is requesting more input than we have provided it with in
// the fake input chars.
// Normally this should not happen, because each test quits in the end.
// There is one case (at the time of this writing) in which it does happen, and
// that's when we quit by closing the last pane. In this case the stdin loop might
// get a chance to request more input before the app quits and drops it. In that
// case, we just give it no input and let it keep doing its thing until it dies
// very shortly after.
Ok(0)
}
}
}
}
#[derive(Clone)] #[derive(Clone)]
pub struct FakeStdoutWriter { pub struct FakeStdoutWriter {
output_buffer: Arc<Mutex<Vec<u8>>>, output_buffer: Arc<Mutex<Vec<u8>>>,
@ -125,6 +63,7 @@ impl Write for FakeStdoutWriter {
pub struct FakeInputOutput { pub struct FakeInputOutput {
read_buffers: Arc<Mutex<HashMap<RawFd, Bytes>>>, read_buffers: Arc<Mutex<HashMap<RawFd, Bytes>>>,
input_to_add: Arc<Mutex<Option<Vec<[u8; 10]>>>>, input_to_add: Arc<Mutex<Option<Vec<[u8; 10]>>>>,
stdin_commands: Arc<Mutex<VecDeque<Vec<u8>>>>,
stdin_writes: Arc<Mutex<HashMap<RawFd, Vec<u8>>>>, stdin_writes: Arc<Mutex<HashMap<RawFd, Vec<u8>>>>,
pub stdout_writer: FakeStdoutWriter, // stdout_writer.output is already an arc/mutex pub stdout_writer: FakeStdoutWriter, // stdout_writer.output is already an arc/mutex
io_events: Arc<Mutex<Vec<IoEvent>>>, io_events: Arc<Mutex<Vec<IoEvent>>>,
@ -144,6 +83,7 @@ impl FakeInputOutput {
read_buffers: Arc::new(Mutex::new(HashMap::new())), read_buffers: Arc::new(Mutex::new(HashMap::new())),
stdin_writes: Arc::new(Mutex::new(HashMap::new())), stdin_writes: Arc::new(Mutex::new(HashMap::new())),
input_to_add: Arc::new(Mutex::new(None)), input_to_add: Arc::new(Mutex::new(None)),
stdin_commands: Arc::new(Mutex::new(VecDeque::new())),
stdout_writer, stdout_writer,
last_snapshot_time, last_snapshot_time,
io_events: Arc::new(Mutex::new(vec![])), io_events: Arc::new(Mutex::new(vec![])),
@ -156,8 +96,12 @@ impl FakeInputOutput {
self.possible_tty_inputs = tty_inputs; self.possible_tty_inputs = tty_inputs;
self self
} }
pub fn add_terminal_input(&mut self, input: &[[u8; 10]]) { pub fn add_terminal_input(&mut self, input: &[&[u8]]) {
self.input_to_add = Arc::new(Mutex::new(Some(input.to_vec()))); let mut stdin_commands: VecDeque<Vec<u8>> = VecDeque::new();
for command in input.iter() {
stdin_commands.push_back(command.iter().copied().collect())
}
self.stdin_commands = Arc::new(Mutex::new(stdin_commands));
} }
pub fn add_terminal(&mut self, fd: RawFd) { pub fn add_terminal(&mut self, fd: RawFd) {
self.stdin_writes.lock().unwrap().insert(fd, vec![]); self.stdin_writes.lock().unwrap().insert(fd, vec![]);
@ -253,19 +197,31 @@ impl OsApi for FakeInputOutput {
fn box_clone(&self) -> Box<dyn OsApi> { fn box_clone(&self) -> Box<dyn OsApi> {
Box::new((*self).clone()) Box::new((*self).clone())
} }
fn get_stdin_reader(&self) -> Box<dyn Read> { fn read_from_stdin(&self) -> Vec<u8> {
let mut input_chars = vec![[0; 10]]; loop {
if let Some(input_to_add) = self.input_to_add.lock().unwrap().as_ref() { let last_snapshot_time = { *self.last_snapshot_time.lock().unwrap() };
for bytes in input_to_add { if last_snapshot_time.elapsed() > MIN_TIME_BETWEEN_SNAPSHOTS {
input_chars.push(*bytes); break;
} else {
::std::thread::sleep(MIN_TIME_BETWEEN_SNAPSHOTS - last_snapshot_time.elapsed());
}
}
match self.stdin_commands.lock().unwrap().pop_front() {
Some(command) => command,
None => {
// what is happening here?
//
// Here the stdin loop is requesting more input than we have provided it with in
// the fake input chars.
// Normally this should not happen, because each test quits in the end.
// There is one case (at the time of this writing) in which it does happen, and
// that's when we quit by closing the last pane. In this case the stdin loop might
// get a chance to request more input before the app quits and drops it. In that
// case, we just give it no input and let it keep doing its thing until it dies
// very shortly after.
vec![]
} }
} }
let reader = FakeStdinReader::new(
input_chars,
self.last_snapshot_time.clone(),
self.started_reading_from_pty.clone(),
);
Box::new(reader)
} }
fn get_stdout_writer(&self) -> Box<dyn Write> { fn get_stdout_writer(&self) -> Box<dyn Write> {
Box::new(self.stdout_writer.clone()) Box::new(self.stdout_writer.clone())

View file

@ -22,7 +22,7 @@ pub fn starts_with_one_terminal() {
y: 0, y: 0,
}; };
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[COMMAND_TOGGLE, COMMAND_TOGGLE, QUIT]); fake_input_output.add_terminal_input(&[&COMMAND_TOGGLE, &COMMAND_TOGGLE, &QUIT]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
let output_frames = fake_input_output let output_frames = fake_input_output
.stdout_writer .stdout_writer
@ -44,7 +44,12 @@ pub fn split_terminals_vertically() {
y: 0, y: 0,
}; };
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[COMMAND_TOGGLE, COMMAND_TOGGLE, SPLIT_VERTICALLY, QUIT]); fake_input_output.add_terminal_input(&[
&COMMAND_TOGGLE,
&COMMAND_TOGGLE,
&SPLIT_VERTICALLY,
&QUIT,
]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
let output_frames = fake_input_output let output_frames = fake_input_output
.stdout_writer .stdout_writer
@ -67,10 +72,10 @@ pub fn split_terminals_horizontally() {
}; };
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
let output_frames = fake_input_output let output_frames = fake_input_output
@ -95,12 +100,12 @@ pub fn split_largest_terminal() {
}; };
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPAWN_TERMINAL, &SPAWN_TERMINAL,
SPAWN_TERMINAL, &SPAWN_TERMINAL,
SPAWN_TERMINAL, &SPAWN_TERMINAL,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
let output_frames = fake_input_output let output_frames = fake_input_output
@ -140,18 +145,18 @@ pub fn resize_right_and_up_on_the_same_axis() {
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_RIGHT, &RESIZE_RIGHT,
RESIZE_LEFT, &RESIZE_LEFT,
RESIZE_UP, &RESIZE_UP,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
let output_frames = fake_input_output let output_frames = fake_input_output
@ -175,15 +180,15 @@ pub fn scrolling_inside_a_pane() {
}; };
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SCROLL_UP, &SCROLL_UP,
SCROLL_UP, &SCROLL_UP,
SCROLL_DOWN, &SCROLL_DOWN,
SCROLL_DOWN, &SCROLL_DOWN,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
let output_frames = fake_input_output let output_frames = fake_input_output
@ -209,13 +214,13 @@ pub fn max_panes() {
}; };
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPAWN_TERMINAL, &SPAWN_TERMINAL,
SPAWN_TERMINAL, &SPAWN_TERMINAL,
SPAWN_TERMINAL, &SPAWN_TERMINAL,
SPAWN_TERMINAL, &SPAWN_TERMINAL,
QUIT, &QUIT,
]); ]);
let mut opts = Opt::default(); let mut opts = Opt::default();
opts.max_panes = Some(4); opts.max_panes = Some(4);
@ -241,23 +246,23 @@ pub fn toggle_focused_pane_fullscreen() {
}; };
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPAWN_TERMINAL, &SPAWN_TERMINAL,
SPAWN_TERMINAL, &SPAWN_TERMINAL,
SPAWN_TERMINAL, &SPAWN_TERMINAL,
TOGGLE_ACTIVE_TERMINAL_FULLSCREEN, &TOGGLE_ACTIVE_TERMINAL_FULLSCREEN,
TOGGLE_ACTIVE_TERMINAL_FULLSCREEN, &TOGGLE_ACTIVE_TERMINAL_FULLSCREEN,
MOVE_FOCUS, &MOVE_FOCUS,
TOGGLE_ACTIVE_TERMINAL_FULLSCREEN, &TOGGLE_ACTIVE_TERMINAL_FULLSCREEN,
TOGGLE_ACTIVE_TERMINAL_FULLSCREEN, &TOGGLE_ACTIVE_TERMINAL_FULLSCREEN,
MOVE_FOCUS, &MOVE_FOCUS,
TOGGLE_ACTIVE_TERMINAL_FULLSCREEN, &TOGGLE_ACTIVE_TERMINAL_FULLSCREEN,
TOGGLE_ACTIVE_TERMINAL_FULLSCREEN, &TOGGLE_ACTIVE_TERMINAL_FULLSCREEN,
MOVE_FOCUS, &MOVE_FOCUS,
TOGGLE_ACTIVE_TERMINAL_FULLSCREEN, &TOGGLE_ACTIVE_TERMINAL_FULLSCREEN,
TOGGLE_ACTIVE_TERMINAL_FULLSCREEN, &TOGGLE_ACTIVE_TERMINAL_FULLSCREEN,
QUIT, &QUIT,
]); ]);
let mut opts = Opt::default(); let mut opts = Opt::default();
opts.max_panes = Some(4); opts.max_panes = Some(4);

View file

@ -32,11 +32,11 @@ pub fn close_pane_with_another_pane_above_it() {
}; };
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
CLOSE_FOCUSED_PANE, &CLOSE_FOCUSED_PANE,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -69,12 +69,12 @@ pub fn close_pane_with_another_pane_below_it() {
}; };
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
CLOSE_FOCUSED_PANE, &CLOSE_FOCUSED_PANE,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -105,11 +105,11 @@ pub fn close_pane_with_another_pane_to_the_left() {
}; };
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
CLOSE_FOCUSED_PANE, &CLOSE_FOCUSED_PANE,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -140,12 +140,12 @@ pub fn close_pane_with_another_pane_to_the_right() {
}; };
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
CLOSE_FOCUSED_PANE, &CLOSE_FOCUSED_PANE,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -178,15 +178,15 @@ pub fn close_pane_with_multiple_panes_above_it() {
}; };
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
CLOSE_FOCUSED_PANE, &CLOSE_FOCUSED_PANE,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -219,13 +219,13 @@ pub fn close_pane_with_multiple_panes_below_it() {
}; };
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
CLOSE_FOCUSED_PANE, &CLOSE_FOCUSED_PANE,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -258,15 +258,15 @@ pub fn close_pane_with_multiple_panes_to_the_left() {
}; };
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
CLOSE_FOCUSED_PANE, &CLOSE_FOCUSED_PANE,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -299,13 +299,13 @@ pub fn close_pane_with_multiple_panes_to_the_right() {
}; };
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
CLOSE_FOCUSED_PANE, &CLOSE_FOCUSED_PANE,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -338,27 +338,27 @@ pub fn close_pane_with_multiple_panes_above_it_away_from_screen_edges() {
}; };
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
RESIZE_UP, &RESIZE_UP,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_UP, &RESIZE_UP,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
CLOSE_FOCUSED_PANE, &CLOSE_FOCUSED_PANE,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -391,27 +391,27 @@ pub fn close_pane_with_multiple_panes_below_it_away_from_screen_edges() {
}; };
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
RESIZE_DOWN, &RESIZE_DOWN,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_DOWN, &RESIZE_DOWN,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
CLOSE_FOCUSED_PANE, &CLOSE_FOCUSED_PANE,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -446,27 +446,27 @@ pub fn close_pane_with_multiple_panes_to_the_left_away_from_screen_edges() {
}; };
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
RESIZE_LEFT, &RESIZE_LEFT,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_LEFT, &RESIZE_LEFT,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
CLOSE_FOCUSED_PANE, &CLOSE_FOCUSED_PANE,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -501,27 +501,27 @@ pub fn close_pane_with_multiple_panes_to_the_right_away_from_screen_edges() {
}; };
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
RESIZE_LEFT, &RESIZE_LEFT,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_LEFT, &RESIZE_LEFT,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
CLOSE_FOCUSED_PANE, &CLOSE_FOCUSED_PANE,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -546,14 +546,14 @@ pub fn closing_last_pane_exits_app() {
}; };
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
CLOSE_FOCUSED_PANE, &CLOSE_FOCUSED_PANE,
CLOSE_FOCUSED_PANE, &CLOSE_FOCUSED_PANE,
CLOSE_FOCUSED_PANE, &CLOSE_FOCUSED_PANE,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());

View file

@ -39,7 +39,7 @@ pub fn run_bandwhich_from_fish_shell() {
}; };
let fixture_name = "fish_and_bandwhich"; let fixture_name = "fish_and_bandwhich";
let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name); let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name);
fake_input_output.add_terminal_input(&[COMMAND_TOGGLE, COMMAND_TOGGLE, QUIT]); fake_input_output.add_terminal_input(&[&COMMAND_TOGGLE, &COMMAND_TOGGLE, &QUIT]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
let output_frames = fake_input_output let output_frames = fake_input_output
.stdout_writer .stdout_writer
@ -62,7 +62,7 @@ pub fn fish_tab_completion_options() {
}; };
let fixture_name = "fish_tab_completion_options"; let fixture_name = "fish_tab_completion_options";
let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name); let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name);
fake_input_output.add_terminal_input(&[COMMAND_TOGGLE, COMMAND_TOGGLE, QUIT]); fake_input_output.add_terminal_input(&[&COMMAND_TOGGLE, &COMMAND_TOGGLE, &QUIT]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
let output_frames = fake_input_output let output_frames = fake_input_output
.stdout_writer .stdout_writer
@ -90,7 +90,7 @@ pub fn fish_select_tab_completion_options() {
}; };
let fixture_name = "fish_select_tab_completion_options"; let fixture_name = "fish_select_tab_completion_options";
let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name); let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name);
fake_input_output.add_terminal_input(&[COMMAND_TOGGLE, COMMAND_TOGGLE, QUIT]); fake_input_output.add_terminal_input(&[&COMMAND_TOGGLE, &COMMAND_TOGGLE, &QUIT]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
let output_frames = fake_input_output let output_frames = fake_input_output
.stdout_writer .stdout_writer
@ -122,8 +122,7 @@ pub fn vim_scroll_region_down() {
}; };
let fixture_name = "vim_scroll_region_down"; let fixture_name = "vim_scroll_region_down";
let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name); let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name);
// fake_input_output.add_terminal_input(&[COMMAND_TOGGLE, COMMAND_TOGGLE, 17]); // quit (ctrl-q) fake_input_output.add_terminal_input(&[&COMMAND_TOGGLE, &COMMAND_TOGGLE, &QUIT]); // quit (ctrl-q)
fake_input_output.add_terminal_input(&[COMMAND_TOGGLE, COMMAND_TOGGLE, QUIT]); // quit (ctrl-q)
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
let output_frames = fake_input_output let output_frames = fake_input_output
.stdout_writer .stdout_writer
@ -152,7 +151,7 @@ pub fn vim_ctrl_d() {
}; };
let fixture_name = "vim_ctrl_d"; let fixture_name = "vim_ctrl_d";
let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name); let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name);
fake_input_output.add_terminal_input(&[COMMAND_TOGGLE, COMMAND_TOGGLE, QUIT]); fake_input_output.add_terminal_input(&[&COMMAND_TOGGLE, &COMMAND_TOGGLE, &QUIT]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
let output_frames = fake_input_output let output_frames = fake_input_output
.stdout_writer .stdout_writer
@ -180,7 +179,7 @@ pub fn vim_ctrl_u() {
}; };
let fixture_name = "vim_ctrl_u"; let fixture_name = "vim_ctrl_u";
let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name); let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name);
fake_input_output.add_terminal_input(&[COMMAND_TOGGLE, COMMAND_TOGGLE, QUIT]); fake_input_output.add_terminal_input(&[&COMMAND_TOGGLE, &COMMAND_TOGGLE, &QUIT]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
let output_frames = fake_input_output let output_frames = fake_input_output
.stdout_writer .stdout_writer
@ -203,7 +202,7 @@ pub fn htop() {
}; };
let fixture_name = "htop"; let fixture_name = "htop";
let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name); let mut fake_input_output = get_fake_os_input(&fake_win_size, fixture_name);
fake_input_output.add_terminal_input(&[COMMAND_TOGGLE, COMMAND_TOGGLE, QUIT]); fake_input_output.add_terminal_input(&[&COMMAND_TOGGLE, &COMMAND_TOGGLE, &QUIT]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
let output_frames = fake_input_output let output_frames = fake_input_output
.stdout_writer .stdout_writer

View file

@ -20,7 +20,7 @@ pub fn accepts_basic_layout() {
y: 0, y: 0,
}; };
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[COMMAND_TOGGLE, COMMAND_TOGGLE, QUIT]); fake_input_output.add_terminal_input(&[&COMMAND_TOGGLE, &COMMAND_TOGGLE, &QUIT]);
let mut opts = Opt::default(); let mut opts = Opt::default();
opts.layout = Some(PathBuf::from( opts.layout = Some(PathBuf::from(
"src/tests/fixtures/layouts/three-panes-with-nesting.yaml", "src/tests/fixtures/layouts/three-panes-with-nesting.yaml",
@ -61,7 +61,7 @@ pub fn should_throw_for_more_than_100_percent_total() {
y: 0, y: 0,
}; };
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[QUIT]); fake_input_output.add_terminal_input(&[&QUIT]);
let mut opts = Opt::default(); let mut opts = Opt::default();
opts.layout = Some(PathBuf::from( opts.layout = Some(PathBuf::from(
@ -81,7 +81,7 @@ pub fn should_throw_for_less_than_100_percent_total() {
y: 0, y: 0,
}; };
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[QUIT]); fake_input_output.add_terminal_input(&[&QUIT]);
let mut opts = Opt::default(); let mut opts = Opt::default();
opts.layout = Some(PathBuf::from( opts.layout = Some(PathBuf::from(

View file

@ -33,11 +33,11 @@ pub fn resize_down_with_pane_above() {
}; };
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
RESIZE_DOWN, &RESIZE_DOWN,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -70,12 +70,12 @@ pub fn resize_down_with_pane_below() {
}; };
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_DOWN, &RESIZE_DOWN,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -111,14 +111,14 @@ pub fn resize_down_with_panes_above_and_below() {
}; };
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_DOWN, &RESIZE_DOWN,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -152,15 +152,15 @@ pub fn resize_down_with_multiple_panes_above() {
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_DOWN, &RESIZE_DOWN,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -195,17 +195,17 @@ pub fn resize_down_with_panes_above_aligned_left_with_current_pane() {
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_DOWN, &RESIZE_DOWN,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -240,16 +240,16 @@ pub fn resize_down_with_panes_below_aligned_left_with_current_pane() {
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_DOWN, &RESIZE_DOWN,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -284,14 +284,14 @@ pub fn resize_down_with_panes_above_aligned_right_with_current_pane() {
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
RESIZE_DOWN, &RESIZE_DOWN,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -326,15 +326,15 @@ pub fn resize_down_with_panes_below_aligned_right_with_current_pane() {
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_DOWN, &RESIZE_DOWN,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -369,18 +369,18 @@ pub fn resize_down_with_panes_above_aligned_left_and_right_with_current_pane() {
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
RESIZE_DOWN, &RESIZE_DOWN,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -415,20 +415,20 @@ pub fn resize_down_with_panes_below_aligned_left_and_right_with_current_pane() {
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_DOWN, &RESIZE_DOWN,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -463,35 +463,35 @@ pub fn resize_down_with_panes_above_aligned_left_and_right_with_panes_to_the_lef
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_LEFT, &RESIZE_LEFT,
RESIZE_LEFT, &RESIZE_LEFT,
RESIZE_LEFT, &RESIZE_LEFT,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_LEFT, &RESIZE_LEFT,
RESIZE_LEFT, &RESIZE_LEFT,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_DOWN, &RESIZE_DOWN,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -526,37 +526,37 @@ pub fn resize_down_with_panes_below_aligned_left_and_right_with_to_the_left_and_
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_LEFT, &RESIZE_LEFT,
RESIZE_LEFT, &RESIZE_LEFT,
RESIZE_LEFT, &RESIZE_LEFT,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_LEFT, &RESIZE_LEFT,
RESIZE_LEFT, &RESIZE_LEFT,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_DOWN, &RESIZE_DOWN,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());

View file

@ -29,11 +29,11 @@ pub fn resize_left_with_pane_to_the_left() {
}; };
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
RESIZE_LEFT, &RESIZE_LEFT,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -64,12 +64,12 @@ pub fn resize_left_with_pane_to_the_right() {
}; };
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_LEFT, &RESIZE_LEFT,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -100,14 +100,14 @@ pub fn resize_left_with_panes_to_the_left_and_right() {
}; };
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_LEFT, &RESIZE_LEFT,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -139,15 +139,15 @@ pub fn resize_left_with_multiple_panes_to_the_left() {
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_LEFT, &RESIZE_LEFT,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -180,17 +180,17 @@ pub fn resize_left_with_panes_to_the_left_aligned_top_with_current_pane() {
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_LEFT, &RESIZE_LEFT,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -223,14 +223,14 @@ pub fn resize_left_with_panes_to_the_right_aligned_top_with_current_pane() {
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
RESIZE_LEFT, &RESIZE_LEFT,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -263,16 +263,16 @@ pub fn resize_left_with_panes_to_the_left_aligned_bottom_with_current_pane() {
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_LEFT, &RESIZE_LEFT,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -305,15 +305,15 @@ pub fn resize_left_with_panes_to_the_right_aligned_bottom_with_current_pane() {
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_LEFT, &RESIZE_LEFT,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -348,18 +348,18 @@ pub fn resize_left_with_panes_to_the_left_aligned_top_and_bottom_with_current_pa
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
RESIZE_LEFT, &RESIZE_LEFT,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -394,20 +394,20 @@ pub fn resize_left_with_panes_to_the_right_aligned_top_and_bottom_with_current_p
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_LEFT, &RESIZE_LEFT,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -442,35 +442,35 @@ pub fn resize_left_with_panes_to_the_left_aligned_top_and_bottom_with_panes_abov
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_UP, &RESIZE_UP,
RESIZE_UP, &RESIZE_UP,
RESIZE_UP, &RESIZE_UP,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_UP, &RESIZE_UP,
RESIZE_UP, &RESIZE_UP,
RESIZE_LEFT, &RESIZE_LEFT,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -506,37 +506,37 @@ pub fn resize_left_with_panes_to_the_right_aligned_top_and_bottom_with_panes_abo
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_UP, &RESIZE_UP,
RESIZE_UP, &RESIZE_UP,
RESIZE_UP, &RESIZE_UP,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_UP, &RESIZE_UP,
RESIZE_UP, &RESIZE_UP,
RESIZE_LEFT, &RESIZE_LEFT,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());

View file

@ -29,11 +29,11 @@ pub fn resize_right_with_pane_to_the_left() {
}; };
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
RESIZE_RIGHT, &RESIZE_RIGHT,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -64,12 +64,12 @@ pub fn resize_right_with_pane_to_the_right() {
}; };
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_RIGHT, &RESIZE_RIGHT,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -100,14 +100,14 @@ pub fn resize_right_with_panes_to_the_left_and_right() {
}; };
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_RIGHT, &RESIZE_RIGHT,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -139,15 +139,15 @@ pub fn resize_right_with_multiple_panes_to_the_left() {
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_RIGHT, &RESIZE_RIGHT,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -180,17 +180,17 @@ pub fn resize_right_with_panes_to_the_left_aligned_top_with_current_pane() {
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_RIGHT, &RESIZE_RIGHT,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -223,14 +223,14 @@ pub fn resize_right_with_panes_to_the_right_aligned_top_with_current_pane() {
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
RESIZE_RIGHT, &RESIZE_RIGHT,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -263,16 +263,16 @@ pub fn resize_right_with_panes_to_the_left_aligned_bottom_with_current_pane() {
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_RIGHT, &RESIZE_RIGHT,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -305,15 +305,15 @@ pub fn resize_right_with_panes_to_the_right_aligned_bottom_with_current_pane() {
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_RIGHT, &RESIZE_RIGHT,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -348,18 +348,18 @@ pub fn resize_right_with_panes_to_the_left_aligned_top_and_bottom_with_current_p
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
RESIZE_RIGHT, &RESIZE_RIGHT,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -394,20 +394,20 @@ pub fn resize_right_with_panes_to_the_right_aligned_top_and_bottom_with_current_
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_RIGHT, &RESIZE_RIGHT,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -442,35 +442,35 @@ pub fn resize_right_with_panes_to_the_left_aligned_top_and_bottom_with_panes_abo
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_UP, &RESIZE_UP,
RESIZE_UP, &RESIZE_UP,
RESIZE_UP, &RESIZE_UP,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_UP, &RESIZE_UP,
RESIZE_UP, &RESIZE_UP,
RESIZE_RIGHT, &RESIZE_RIGHT,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -505,37 +505,37 @@ pub fn resize_right_with_panes_to_the_right_aligned_top_and_bottom_with_panes_ab
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_UP, &RESIZE_UP,
RESIZE_UP, &RESIZE_UP,
RESIZE_UP, &RESIZE_UP,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_UP, &RESIZE_UP,
RESIZE_UP, &RESIZE_UP,
RESIZE_RIGHT, &RESIZE_RIGHT,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());

View file

@ -31,11 +31,11 @@ pub fn resize_up_with_pane_above() {
}; };
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
RESIZE_UP, &RESIZE_UP,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -68,12 +68,12 @@ pub fn resize_up_with_pane_below() {
}; };
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_UP, &RESIZE_UP,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -109,14 +109,14 @@ pub fn resize_up_with_panes_above_and_below() {
}; };
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_UP, &RESIZE_UP,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -149,15 +149,15 @@ pub fn resize_up_with_multiple_panes_above() {
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_UP, &RESIZE_UP,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -190,17 +190,17 @@ pub fn resize_up_with_panes_above_aligned_left_with_current_pane() {
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_UP, &RESIZE_UP,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -235,16 +235,16 @@ pub fn resize_up_with_panes_below_aligned_left_with_current_pane() {
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_UP, &RESIZE_UP,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -279,14 +279,14 @@ pub fn resize_up_with_panes_above_aligned_right_with_current_pane() {
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
RESIZE_UP, &RESIZE_UP,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -321,15 +321,15 @@ pub fn resize_up_with_panes_below_aligned_right_with_current_pane() {
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_UP, &RESIZE_UP,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -364,18 +364,18 @@ pub fn resize_up_with_panes_above_aligned_left_and_right_with_current_pane() {
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
RESIZE_UP, &RESIZE_UP,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -410,20 +410,20 @@ pub fn resize_up_with_panes_below_aligned_left_and_right_with_current_pane() {
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_UP, &RESIZE_UP,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -458,35 +458,35 @@ pub fn resize_up_with_panes_above_aligned_left_and_right_with_panes_to_the_left_
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_LEFT, &RESIZE_LEFT,
RESIZE_LEFT, &RESIZE_LEFT,
RESIZE_LEFT, &RESIZE_LEFT,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_LEFT, &RESIZE_LEFT,
RESIZE_LEFT, &RESIZE_LEFT,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_UP, &RESIZE_UP,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -521,37 +521,37 @@ pub fn resize_up_with_panes_below_aligned_left_and_right_with_to_the_left_and_ri
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_LEFT, &RESIZE_LEFT,
RESIZE_LEFT, &RESIZE_LEFT,
RESIZE_LEFT, &RESIZE_LEFT,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_LEFT, &RESIZE_LEFT,
RESIZE_LEFT, &RESIZE_LEFT,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
MOVE_FOCUS, &MOVE_FOCUS,
RESIZE_UP, &RESIZE_UP,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());

View file

@ -24,13 +24,13 @@ pub fn adding_new_terminal_in_fullscreen() {
}; };
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
TOGGLE_ACTIVE_TERMINAL_FULLSCREEN, &TOGGLE_ACTIVE_TERMINAL_FULLSCREEN,
SPLIT_HORIZONTALLY, &SPLIT_HORIZONTALLY,
CLOSE_FOCUSED_PANE, &CLOSE_FOCUSED_PANE,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());
@ -55,13 +55,13 @@ pub fn move_focus_is_disabled_in_fullscreen() {
}; };
let mut fake_input_output = get_fake_os_input(&fake_win_size); let mut fake_input_output = get_fake_os_input(&fake_win_size);
fake_input_output.add_terminal_input(&[ fake_input_output.add_terminal_input(&[
COMMAND_TOGGLE, &COMMAND_TOGGLE,
COMMAND_TOGGLE, &COMMAND_TOGGLE,
SPLIT_VERTICALLY, &SPLIT_VERTICALLY,
TOGGLE_ACTIVE_TERMINAL_FULLSCREEN, &TOGGLE_ACTIVE_TERMINAL_FULLSCREEN,
MOVE_FOCUS, &MOVE_FOCUS,
TOGGLE_ACTIVE_TERMINAL_FULLSCREEN, &TOGGLE_ACTIVE_TERMINAL_FULLSCREEN,
QUIT, &QUIT,
]); ]);
start(Box::new(fake_input_output.clone()), Opt::default()); start(Box::new(fake_input_output.clone()), Opt::default());

View file

@ -40,31 +40,31 @@ pub fn get_output_frame_snapshots(
pub mod commands { pub mod commands {
/// ctrl-g /// ctrl-g
pub const COMMAND_TOGGLE: [u8; 10] = [7, 0, 0, 0, 0, 0, 0, 0, 0, 0]; pub const COMMAND_TOGGLE: [u8; 1] = [7];
/// b /// b
pub const SPLIT_HORIZONTALLY: [u8; 10] = [98, 0, 0, 0, 0, 0, 0, 0, 0, 0]; pub const SPLIT_HORIZONTALLY: [u8; 1] = [98];
/// n /// n
pub const SPLIT_VERTICALLY: [u8; 10] = [110, 0, 0, 0, 0, 0, 0, 0, 0, 0]; pub const SPLIT_VERTICALLY: [u8; 1] = [110];
/// j /// j
pub const RESIZE_DOWN: [u8; 10] = [106, 0, 0, 0, 0, 0, 0, 0, 0, 0]; pub const RESIZE_DOWN: [u8; 1] = [106];
/// k /// k
pub const RESIZE_UP: [u8; 10] = [107, 0, 0, 0, 0, 0, 0, 0, 0, 0]; pub const RESIZE_UP: [u8; 1] = [107];
/// p /// p
pub const MOVE_FOCUS: [u8; 10] = [112, 0, 0, 0, 0, 0, 0, 0, 0, 0]; pub const MOVE_FOCUS: [u8; 1] = [112];
/// h /// h
pub const RESIZE_LEFT: [u8; 10] = [104, 0, 0, 0, 0, 0, 0, 0, 0, 0]; pub const RESIZE_LEFT: [u8; 1] = [104];
/// l /// l
pub const RESIZE_RIGHT: [u8; 10] = [108, 0, 0, 0, 0, 0, 0, 0, 0, 0]; pub const RESIZE_RIGHT: [u8; 1] = [108];
/// z /// z
pub const SPAWN_TERMINAL: [u8; 10] = [122, 0, 0, 0, 0, 0, 0, 0, 0, 0]; pub const SPAWN_TERMINAL: [u8; 1] = [122];
/// q /// q
pub const QUIT: [u8; 10] = [113, 0, 0, 0, 0, 0, 0, 0, 0, 0]; pub const QUIT: [u8; 1] = [113];
/// PgUp /// PgUp
pub const SCROLL_UP: [u8; 10] = [27, 91, 53, 126, 0, 0, 0, 0, 0, 0]; pub const SCROLL_UP: [u8; 4] = [27, 91, 53, 126];
/// PgDn /// PgDn
pub const SCROLL_DOWN: [u8; 10] = [27, 91, 54, 126, 0, 0, 0, 0, 0, 0]; pub const SCROLL_DOWN: [u8; 4] = [27, 91, 54, 126];
/// x /// x
pub const CLOSE_FOCUSED_PANE: [u8; 10] = [120, 0, 0, 0, 0, 0, 0, 0, 0, 0]; pub const CLOSE_FOCUSED_PANE: [u8; 1] = [120];
/// e /// e
pub const TOGGLE_ACTIVE_TERMINAL_FULLSCREEN: [u8; 10] = [101, 0, 0, 0, 0, 0, 0, 0, 0, 0]; pub const TOGGLE_ACTIVE_TERMINAL_FULLSCREEN: [u8; 1] = [101];
} }