aboutsummaryrefslogtreecommitdiffstats
path: root/src/tests
diff options
context:
space:
mode:
authorBrooks Rady <b.j.rady@gmail.com>2021-01-08 14:14:39 +0000
committerGitHub <noreply@github.com>2021-01-08 14:14:39 +0000
commit7efc435bdaf1aa29d72cda11105dd72c0fc1a891 (patch)
treeb617f2b607b072fcdd54f63987069d795f7aaf9e /src/tests
parentchore(cleanup): Clean up project root (#135) (diff)
parentDon't forget to tell split terminals that they have a new size! (diff)
downloadsl0ppij-7efc435bdaf1aa29d72cda11105dd72c0fc1a891.tar.gz
sl0ppij-7efc435bdaf1aa29d72cda11105dd72c0fc1a891.tar.xz
sl0ppij-7efc435bdaf1aa29d72cda11105dd72c0fc1a891.zip
feat(infra): initial plugin system
- Added the ability to load and keep track of several plugins at once - Removed `wasm-wip` feature flag, enabling plugins in all builds - `split_space` now returns a tuple with the `part_position_and_size` (as before) plus a cloned version of the part, so plugins and terminals can be distinguished by its users - Added a `Draw` instruction for rendering plugins when asked to by Mosaic - Added a new `PluginPane`, implementing `Pane` for plugins! - Replaced RawFd as a pane-identifier with the `PaneId` enum in most places - `change_size` -> `change_pos_and_size`, with the functionality updated to fit the new name - `buffer_as_vte_output` -> `render` - `pid()` on the `Pane` trait now returns a `PaneId` - Changed lots of functions in `tab.rs` to be more pane oriented, renaming some to remove the `terminal` and switching to `PaneId`s - splitting functions in `tab.rs` now correctly update the positions of returned fragments - Used `PaneId`'s as a replacement for `PaneKind` in the tab `BTreeMap` - Removed `get_rows` and `get_columns` from the `Pane` trait - Layouts can now create plugin panes! - Changed lots of the `active_terminal` stuff in `tab.rs` to work with all panes - Changed the `Tab` `render` function, so that common requirements are moved there and out of the `Pane::render()` methods - Added a `shared.rs` to `utils` with a couple of useful functions - We can now accept input and pass it to plugins via serialised JSON - Trigger a screen render after handling input meant for a plugin - Allow plugins to be properly closed - Allow plugin panes to be split (opening a new terminal) - Allow plugin API functions to send messages on the PTY bus - Added the API functionality needed for a plugin to open a file in a new pane - No more compiler warnings! - Fixed 53 clippy lints!
Diffstat (limited to 'src/tests')
-rw-r--r--src/tests/fakes.rs4
-rw-r--r--src/tests/fixtures/layouts/panes-with-plugins.yaml2
-rw-r--r--src/tests/integration/basic.rs2
-rw-r--r--src/tests/integration/close_pane.rs2
-rw-r--r--src/tests/integration/compatibility.rs2
-rw-r--r--src/tests/integration/layouts.rs2
-rw-r--r--src/tests/integration/move_focus_down.rs2
-rw-r--r--src/tests/integration/move_focus_left.rs2
-rw-r--r--src/tests/integration/move_focus_right.rs2
-rw-r--r--src/tests/integration/move_focus_up.rs2
-rw-r--r--src/tests/integration/resize_down.rs2
-rw-r--r--src/tests/integration/resize_left.rs2
-rw-r--r--src/tests/integration/resize_right.rs2
-rw-r--r--src/tests/integration/resize_up.rs2
-rw-r--r--src/tests/integration/tabs.rs2
-rw-r--r--src/tests/integration/toggle_fullscreen.rs2
-rw-r--r--src/tests/utils.rs8
17 files changed, 20 insertions, 22 deletions
diff --git a/src/tests/fakes.rs b/src/tests/fakes.rs
index 8ae1a972..821183b6 100644
--- a/src/tests/fakes.rs
+++ b/src/tests/fakes.rs
@@ -1,4 +1,4 @@
-use crate::terminal_pane::PositionAndSize;
+use crate::panes::PositionAndSize;
use std::collections::{HashMap, VecDeque};
use std::io::Write;
use std::os::unix::io::RawFd;
@@ -130,7 +130,7 @@ impl OsApi for FakeInputOutput {
.unwrap()
.push(IoEvent::SetTerminalSizeUsingFd(pid, cols, rows));
}
- fn into_raw_mode(&mut self, pid: RawFd) {
+ fn set_raw_mode(&mut self, pid: RawFd) {
self.io_events
.lock()
.unwrap()
diff --git a/src/tests/fixtures/layouts/panes-with-plugins.yaml b/src/tests/fixtures/layouts/panes-with-plugins.yaml
index 09913bb4..7fb13b2e 100644
--- a/src/tests/fixtures/layouts/panes-with-plugins.yaml
+++ b/src/tests/fixtures/layouts/panes-with-plugins.yaml
@@ -14,4 +14,4 @@ parts:
Percent: 80
- direction: Vertical
split_size:
- Percent: 20
+ Percent: 20 \ No newline at end of file
diff --git a/src/tests/integration/basic.rs b/src/tests/integration/basic.rs
index 29cabcd5..7c9d3c6a 100644
--- a/src/tests/integration/basic.rs
+++ b/src/tests/integration/basic.rs
@@ -1,4 +1,4 @@
-use crate::terminal_pane::PositionAndSize;
+use crate::panes::PositionAndSize;
use ::insta::assert_snapshot;
use crate::tests::fakes::FakeInputOutput;
diff --git a/src/tests/integration/close_pane.rs b/src/tests/integration/close_pane.rs
index f57e6a4b..3aed7480 100644
--- a/src/tests/integration/close_pane.rs
+++ b/src/tests/integration/close_pane.rs
@@ -1,4 +1,4 @@
-use crate::terminal_pane::PositionAndSize;
+use crate::panes::PositionAndSize;
use ::insta::assert_snapshot;
use crate::tests::fakes::FakeInputOutput;
diff --git a/src/tests/integration/compatibility.rs b/src/tests/integration/compatibility.rs
index a82b9d30..8b446cb4 100644
--- a/src/tests/integration/compatibility.rs
+++ b/src/tests/integration/compatibility.rs
@@ -1,7 +1,7 @@
use ::insta::assert_snapshot;
use ::std::collections::HashMap;
-use crate::terminal_pane::PositionAndSize;
+use crate::panes::PositionAndSize;
use crate::tests::fakes::FakeInputOutput;
use crate::tests::possible_tty_inputs::Bytes;
use crate::tests::utils::get_output_frame_snapshots;
diff --git a/src/tests/integration/layouts.rs b/src/tests/integration/layouts.rs
index fe935d2e..35ff7188 100644
--- a/src/tests/integration/layouts.rs
+++ b/src/tests/integration/layouts.rs
@@ -1,7 +1,7 @@
use insta::assert_snapshot;
use std::path::PathBuf;
-use crate::terminal_pane::PositionAndSize;
+use crate::panes::PositionAndSize;
use crate::tests::fakes::FakeInputOutput;
use crate::tests::utils::commands::{COMMAND_TOGGLE, QUIT};
use crate::tests::utils::get_output_frame_snapshots;
diff --git a/src/tests/integration/move_focus_down.rs b/src/tests/integration/move_focus_down.rs
index 72ac27ae..771c31fe 100644
--- a/src/tests/integration/move_focus_down.rs
+++ b/src/tests/integration/move_focus_down.rs
@@ -1,6 +1,6 @@
use ::insta::assert_snapshot;
-use crate::terminal_pane::PositionAndSize;
+use crate::panes::PositionAndSize;
use crate::tests::fakes::FakeInputOutput;
use crate::tests::utils::get_output_frame_snapshots;
use crate::{start, CliArgs};
diff --git a/src/tests/integration/move_focus_left.rs b/src/tests/integration/move_focus_left.rs
index 2d1a1480..ca676fb6 100644
--- a/src/tests/integration/move_focus_left.rs
+++ b/src/tests/integration/move_focus_left.rs
@@ -1,6 +1,6 @@
use ::insta::assert_snapshot;
-use crate::terminal_pane::PositionAndSize;
+use crate::panes::PositionAndSize;
use crate::tests::fakes::FakeInputOutput;
use crate::tests::utils::get_output_frame_snapshots;
use crate::{start, CliArgs};
diff --git a/src/tests/integration/move_focus_right.rs b/src/tests/integration/move_focus_right.rs
index 329d2f2b..80e0f2f0 100644
--- a/src/tests/integration/move_focus_right.rs
+++ b/src/tests/integration/move_focus_right.rs
@@ -1,6 +1,6 @@
use ::insta::assert_snapshot;
-use crate::terminal_pane::PositionAndSize;
+use crate::panes::PositionAndSize;
use crate::tests::fakes::FakeInputOutput;
use crate::tests::utils::get_output_frame_snapshots;
use crate::{start, CliArgs};
diff --git a/src/tests/integration/move_focus_up.rs b/src/tests/integration/move_focus_up.rs
index 273b7dae..5abfb42f 100644
--- a/src/tests/integration/move_focus_up.rs
+++ b/src/tests/integration/move_focus_up.rs
@@ -1,6 +1,6 @@
use ::insta::assert_snapshot;
-use crate::terminal_pane::PositionAndSize;
+use crate::panes::PositionAndSize;
use crate::tests::fakes::FakeInputOutput;
use crate::tests::utils::get_output_frame_snapshots;
use crate::{start, CliArgs};
diff --git a/src/tests/integration/resize_down.rs b/src/tests/integration/resize_down.rs
index ba56a0c4..3a639910 100644
--- a/src/tests/integration/resize_down.rs
+++ b/src/tests/integration/resize_down.rs
@@ -1,6 +1,6 @@
use insta::assert_snapshot;
-use crate::terminal_pane::PositionAndSize;
+use crate::panes::PositionAndSize;
use crate::tests::fakes::FakeInputOutput;
use crate::tests::utils::get_output_frame_snapshots;
use crate::{start, CliArgs};
diff --git a/src/tests/integration/resize_left.rs b/src/tests/integration/resize_left.rs
index 95b241e3..685d291c 100644
--- a/src/tests/integration/resize_left.rs
+++ b/src/tests/integration/resize_left.rs
@@ -1,6 +1,6 @@
use ::insta::assert_snapshot;
-use crate::terminal_pane::PositionAndSize;
+use crate::panes::PositionAndSize;
use crate::tests::fakes::FakeInputOutput;
use crate::tests::utils::get_output_frame_snapshots;
use crate::{start, CliArgs};
diff --git a/src/tests/integration/resize_right.rs b/src/tests/integration/resize_right.rs
index 768636a3..561b962e 100644
--- a/src/tests/integration/resize_right.rs
+++ b/src/tests/integration/resize_right.rs
@@ -1,6 +1,6 @@
use ::insta::assert_snapshot;
-use crate::terminal_pane::PositionAndSize;
+use crate::panes::PositionAndSize;
use crate::tests::fakes::FakeInputOutput;
use crate::tests::utils::get_output_frame_snapshots;
use crate::{start, CliArgs};
diff --git a/src/tests/integration/resize_up.rs b/src/tests/integration/resize_up.rs
index eb9000df..d94bcd3f 100644
--- a/src/tests/integration/resize_up.rs
+++ b/src/tests/integration/resize_up.rs
@@ -1,6 +1,6 @@
use ::insta::assert_snapshot;
-use crate::terminal_pane::PositionAndSize;
+use crate::panes::PositionAndSize;
use crate::tests::fakes::FakeInputOutput;
use crate::tests::utils::get_output_frame_snapshots;
use crate::{start, CliArgs};
diff --git a/src/tests/integration/tabs.rs b/src/tests/integration/tabs.rs
index edf239a3..c968e232 100644
--- a/src/tests/integration/tabs.rs
+++ b/src/tests/integration/tabs.rs
@@ -2,8 +2,8 @@ use insta::assert_snapshot;
use crate::tests::fakes::FakeInputOutput;
use crate::tests::utils::get_output_frame_snapshots;
+use crate::{panes::PositionAndSize, tests::utils::commands::CLOSE_FOCUSED_PANE};
use crate::{start, CliArgs};
-use crate::{terminal_pane::PositionAndSize, tests::utils::commands::CLOSE_FOCUSED_PANE};
use crate::tests::utils::commands::{
CLOSE_TAB, COMMAND_TOGGLE, NEW_TAB, QUIT, SPLIT_HORIZONTALLY, SWITCH_NEXT_TAB, SWITCH_PREV_TAB,
diff --git a/src/tests/integration/toggle_fullscreen.rs b/src/tests/integration/toggle_fullscreen.rs
index db555ae3..f715300d 100644
--- a/src/tests/integration/toggle_fullscreen.rs
+++ b/src/tests/integration/toggle_fullscreen.rs
@@ -1,6 +1,6 @@
use insta::assert_snapshot;
-use crate::terminal_pane::PositionAndSize;
+use crate::panes::PositionAndSize;
use crate::tests::fakes::FakeInputOutput;
use crate::tests::utils::get_output_frame_snapshots;
use crate::{start, CliArgs};
diff --git a/src/tests/utils.rs b/src/tests/utils.rs
index a107dce4..63c953f6 100644
--- a/src/tests/utils.rs
+++ b/src/tests/utils.rs
@@ -1,5 +1,5 @@
-use crate::terminal_pane::PositionAndSize;
-use crate::terminal_pane::TerminalPane;
+use crate::panes::PositionAndSize;
+use crate::panes::TerminalPane;
pub fn get_output_frame_snapshots(
output_frames: &[Vec<u8>],
@@ -7,9 +7,7 @@ pub fn get_output_frame_snapshots(
) -> Vec<String> {
let mut vte_parser = vte::Parser::new();
let main_pid = 0;
- let x = 0;
- let y = 0;
- let mut terminal_output = TerminalPane::new(main_pid, *win_size, x, y);
+ let mut terminal_output = TerminalPane::new(main_pid, *win_size);
let mut snapshots = vec![];
for frame in output_frames.iter() {