aboutsummaryrefslogtreecommitdiffstats
path: root/src/tests
diff options
context:
space:
mode:
authorAram Drevekenin <aram@poor.dev>2020-09-04 17:17:37 +0200
committerAram Drevekenin <aram@poor.dev>2020-09-04 17:17:37 +0200
commitf42c13da8e1674a8b06d47c6df653b8e4e2d8acc (patch)
treeab49e8d12f6fc9b11b30afcfca8ed20d2fa9fbcb /src/tests
parenthorizontal split prototype (diff)
downloadsl0ppij-f42c13da8e1674a8b06d47c6df653b8e4e2d8acc.tar.gz
sl0ppij-f42c13da8e1674a8b06d47c6df653b8e4e2d8acc.tar.xz
sl0ppij-f42c13da8e1674a8b06d47c6df653b8e4e2d8acc.zip
test(layout): horizontal split
Diffstat (limited to 'src/tests')
-rw-r--r--src/tests/integration.rs44
-rw-r--r--src/tests/snapshots/mosaic__tests__integration__split_terminals_horizontally-2.snap24
-rw-r--r--src/tests/snapshots/mosaic__tests__integration__split_terminals_horizontally-3.snap24
-rw-r--r--src/tests/snapshots/mosaic__tests__integration__split_terminals_horizontally-4.snap24
-rw-r--r--src/tests/snapshots/mosaic__tests__integration__split_terminals_horizontally.snap24
-rw-r--r--src/tests/snapshots/mosaic__tests__integration__split_terminals_vertically-2.snap2
-rw-r--r--src/tests/snapshots/mosaic__tests__integration__split_terminals_vertically-3.snap4
-rw-r--r--src/tests/snapshots/mosaic__tests__integration__split_terminals_vertically-4.snap2
8 files changed, 144 insertions, 4 deletions
diff --git a/src/tests/integration.rs b/src/tests/integration.rs
index 0c721c8a..828db5ed 100644
--- a/src/tests/integration.rs
+++ b/src/tests/integration.rs
@@ -99,3 +99,47 @@ pub fn split_terminals_vertically() {
assert_snapshot!(snapshot);
}
}
+
+#[test]
+pub fn split_terminals_horizontally() {
+ // TODO: this test is a little flaky - there's some sort of race condition that makes the
+ // second terminal in the split appear blank sometimes - fix this
+ let mut fake_input_output = get_fake_os_input();
+ fake_input_output.add_terminal_input(&[8, 17]); // split-horizontally and quit (ctrl-n + ctrl-q)
+ start(Box::new(fake_input_output.clone()));
+
+ let output_frames = fake_input_output.stdout_writer.output_frames.lock().unwrap();
+ let mut vte_parser = vte::Parser::new();
+ let main_pid = 0;
+ let x = 0;
+ let y = 0;
+ let fake_win_size = Winsize { // TODO: combine with above
+ ws_col: 121,
+ ws_row: 20,
+ ws_xpixel: 0,
+ ws_ypixel: 0,
+ };
+ let mut terminal_output = TerminalOutput::new(main_pid, fake_win_size, x, y);
+
+ for frame in output_frames.iter() {
+ for byte in frame.iter() {
+ vte_parser.advance(&mut terminal_output, *byte);
+ }
+ let output_lines = terminal_output.read_buffer_as_lines();
+ let cursor_position_in_last_line = terminal_output.cursor_position_in_last_line();
+ let mut snapshot = String::new();
+ for (line_index, line) in output_lines.iter().enumerate() {
+ for (character_index, terminal_character) in line.iter().enumerate() {
+ if line_index == output_lines.len() - 1 && character_index == cursor_position_in_last_line {
+ snapshot.push('█');
+ } else {
+ snapshot.push(terminal_character.character);
+ }
+ }
+ if line_index != output_lines.len() - 1 {
+ snapshot.push('\n');
+ }
+ }
+ assert_snapshot!(snapshot);
+ }
+}
diff --git a/src/tests/snapshots/mosaic__tests__integration__split_terminals_horizontally-2.snap b/src/tests/snapshots/mosaic__tests__integration__split_terminals_horizontally-2.snap
new file mode 100644
index 00000000..f613fbd3
--- /dev/null
+++ b/src/tests/snapshots/mosaic__tests__integration__split_terminals_horizontally-2.snap
@@ -0,0 +1,24 @@
+---
+source: src/tests/integration.rs
+expression: snapshot
+---
+
+
+
+
+
+
+
+
+Welcome to fish, the friendly interactive shell
+⋊> ~/c/mosaic on main ⨯ 10:47:03
+─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
+
+
+
+
+
+
+
+
+
diff --git a/src/tests/snapshots/mosaic__tests__integration__split_terminals_horizontally-3.snap b/src/tests/snapshots/mosaic__tests__integration__split_terminals_horizontally-3.snap
new file mode 100644
index 00000000..304e16a6
--- /dev/null
+++ b/src/tests/snapshots/mosaic__tests__integration__split_terminals_horizontally-3.snap
@@ -0,0 +1,24 @@
+---
+source: src/tests/integration.rs
+expression: snapshot
+---
+
+
+
+
+
+
+
+
+Welcome to fish, the friendly interactive shell
+⋊> ~/c/mosaic on main ⨯ 10:47:03
+─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
+
+
+
+
+
+
+
+Welcome to fish, the friendly interactive shell
+⋊> ~/c/mosaic on main ⨯ █ 10:47:03
diff --git a/src/tests/snapshots/mosaic__tests__integration__split_terminals_horizontally-4.snap b/src/tests/snapshots/mosaic__tests__integration__split_terminals_horizontally-4.snap
new file mode 100644
index 00000000..026ecbc3
--- /dev/null
+++ b/src/tests/snapshots/mosaic__tests__integration__split_terminals_horizontally-4.snap
@@ -0,0 +1,24 @@
+---
+source: src/tests/integration.rs
+expression: snapshot
+---
+
+
+
+
+
+
+
+Welcome to fish, the friendly interactive shell
+⋊> ~/c/mosaic on main ⨯ 10:47:03
+─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
+
+
+
+
+
+
+
+Welcome to fish, the friendly interactive shell
+⋊> ~/c/mosaic on main ⨯ 10:47:03
+Bye from Mosaic!
diff --git a/src/tests/snapshots/mosaic__tests__integration__split_terminals_horizontally.snap b/src/tests/snapshots/mosaic__tests__integration__split_terminals_horizontally.snap
new file mode 100644
index 00000000..ed307b43
--- /dev/null
+++ b/src/tests/snapshots/mosaic__tests__integration__split_terminals_horizontally.snap
@@ -0,0 +1,24 @@
+---
+source: src/tests/integration.rs
+expression: snapshot
+---
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Welcome to fish, the friendly interactive shell
+⋊> ~/c/mosaic on main ⨯ █ 10:47:03
diff --git a/src/tests/snapshots/mosaic__tests__integration__split_terminals_vertically-2.snap b/src/tests/snapshots/mosaic__tests__integration__split_terminals_vertically-2.snap
index 19da7fce..20d74b27 100644
--- a/src/tests/snapshots/mosaic__tests__integration__split_terminals_vertically-2.snap
+++ b/src/tests/snapshots/mosaic__tests__integration__split_terminals_vertically-2.snap
@@ -17,8 +17,8 @@ expression: snapshot
│
│
│
+ │
Welcome to fish, the friendly interactive shell │
│
│
⋊> ~/c/mosaic on main ⨯ │
- │
diff --git a/src/tests/snapshots/mosaic__tests__integration__split_terminals_vertically-3.snap b/src/tests/snapshots/mosaic__tests__integration__split_terminals_vertically-3.snap
index 31437f47..a110ee36 100644
--- a/src/tests/snapshots/mosaic__tests__integration__split_terminals_vertically-3.snap
+++ b/src/tests/snapshots/mosaic__tests__integration__split_terminals_vertically-3.snap
@@ -17,8 +17,8 @@ expression: snapshot
│
│
│
+ │
Welcome to fish, the friendly interactive shell │
│
│Welcome to fish, the friendly interactive shell
-⋊> ~/c/mosaic on main ⨯ │⋊> ~/c/mosaic on main ⨯ 19:40:00
- │
+⋊> ~/c/mosaic on main ⨯ │⋊> ~/c/mosaic on main ⨯ █ 19:40:00
diff --git a/src/tests/snapshots/mosaic__tests__integration__split_terminals_vertically-4.snap b/src/tests/snapshots/mosaic__tests__integration__split_terminals_vertically-4.snap
index 2bdb9726..a0e55f1a 100644
--- a/src/tests/snapshots/mosaic__tests__integration__split_terminals_vertically-4.snap
+++ b/src/tests/snapshots/mosaic__tests__integration__split_terminals_vertically-4.snap
@@ -16,9 +16,9 @@ expression: snapshot
│
│
│
+ │
Welcome to fish, the friendly interactive shell │
│
│Welcome to fish, the friendly interactive shell
⋊> ~/c/mosaic on main ⨯ │⋊> ~/c/mosaic on main ⨯ 19:40:00
- │
Bye from Mosaic!