summaryrefslogtreecommitdiffstats
path: root/src/tests/cases/ui.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/tests/cases/ui.rs')
-rw-r--r--src/tests/cases/ui.rs154
1 files changed, 154 insertions, 0 deletions
diff --git a/src/tests/cases/ui.rs b/src/tests/cases/ui.rs
index 50e8cd0..d3df052 100644
--- a/src/tests/cases/ui.rs
+++ b/src/tests/cases/ui.rs
@@ -92,6 +92,58 @@ fn pause_by_space() {
}
#[test]
+fn rearranged_by_tab() {
+ let network_frames = vec![NetworkFrames::new(vec![
+ Some(build_tcp_packet(
+ "1.1.1.1",
+ "10.0.0.2",
+ 12345,
+ 443,
+ b"I have come from 1.1.1.1",
+ )),
+ None, // sleep
+ None, // sleep
+ None, // sleep
+ Some(build_tcp_packet(
+ "1.1.1.1",
+ "10.0.0.2",
+ 12345,
+ 443,
+ b"Same here, but one second later",
+ )),
+ ]) as Box<dyn DataLinkReceiver>];
+
+ // sleep for 1s, then press tab, sleep for 2s, then quit
+ let mut events: Vec<Option<Event>> = iter::repeat(None).take(1).collect();
+ events.push(None);
+ events.push(Some(Event::Key(Key::Char('\t'))));
+ events.push(None);
+ events.push(None);
+ events.push(Some(Event::Key(Key::Ctrl('c'))));
+
+ let events = Box::new(KeyboardEvents::new(events));
+ let os_input = os_input_output_factory(network_frames, None, None, events);
+ let (terminal_events, terminal_draw_events, backend) = test_backend_factory(190, 50);
+ let opts = opts_ui();
+ start(backend, os_input, opts);
+ let terminal_draw_events_mirror = terminal_draw_events.lock().unwrap();
+ let expected_terminal_events = vec![
+ Clear, HideCursor, Draw, Flush, Draw, Flush, Draw, Flush, Draw, Flush, Draw, Flush, Clear,
+ ShowCursor,
+ ];
+ assert_eq!(
+ &terminal_events.lock().unwrap()[..],
+ &expected_terminal_events[..]
+ );
+ assert_eq!(terminal_draw_events_mirror.len(), 5);
+ assert_snapshot!(&terminal_draw_events_mirror[0]);
+ assert_snapshot!(&terminal_draw_events_mirror[1]);
+ assert_snapshot!(&terminal_draw_events_mirror[2]);
+ assert_snapshot!(&terminal_draw_events_mirror[3]);
+ assert_snapshot!(&terminal_draw_events_mirror[4]);
+}
+
+#[test]
fn basic_only_processes() {
let network_frames = vec![NetworkFrames::new(vec![
None, // sleep
@@ -1458,3 +1510,105 @@ fn layout_under_120_width_under_30_height() {
assert_snapshot!(&terminal_draw_events_mirror[0]);
assert_snapshot!(&terminal_draw_events_mirror[1]);
}
+
+#[test]
+fn layout_under_50_width_under_50_height() {
+ let network_frames = vec![NetworkFrames::new(vec![
+ Some(build_tcp_packet(
+ "1.1.1.1",
+ "10.0.0.2",
+ 12345,
+ 443,
+ b"I have come from 1.1.1.1",
+ )),
+ Some(build_tcp_packet(
+ "3.3.3.3",
+ "10.0.0.2",
+ 1337,
+ 4435,
+ b"Greetings traveller, I'm from 3.3.3.3",
+ )),
+ Some(build_tcp_packet(
+ "2.2.2.2",
+ "10.0.0.2",
+ 54321,
+ 4434,
+ b"You know, 2.2.2.2 is really nice!",
+ )),
+ Some(build_tcp_packet(
+ "4.4.4.4",
+ "10.0.0.2",
+ 1337,
+ 4432,
+ b"I'm partial to 4.4.4.4",
+ )),
+ ]) as Box<dyn DataLinkReceiver>];
+ let (terminal_events, terminal_draw_events, backend) = test_backend_factory(49, 49);
+ let os_input = os_input_output(network_frames, 2);
+ let opts = opts_ui();
+ start(backend, os_input, opts);
+ let terminal_draw_events_mirror = terminal_draw_events.lock().unwrap();
+
+ let expected_terminal_events = vec![
+ Clear, HideCursor, Draw, Flush, Draw, Flush, Clear, ShowCursor,
+ ];
+ assert_eq!(
+ &terminal_events.lock().unwrap()[..],
+ &expected_terminal_events[..]
+ );
+
+ assert_eq!(terminal_draw_events_mirror.len(), 2);
+ assert_snapshot!(&terminal_draw_events_mirror[0]);
+ assert_snapshot!(&terminal_draw_events_mirror[1]);
+}
+
+#[test]
+fn layout_under_70_width_under_30_height() {
+ let network_frames = vec![NetworkFrames::new(vec![
+ Some(build_tcp_packet(
+ "1.1.1.1",
+ "10.0.0.2",
+ 12345,
+ 443,
+ b"I have come from 1.1.1.1",
+ )),
+ Some(build_tcp_packet(
+ "3.3.3.3",
+ "10.0.0.2",
+ 1337,
+ 4435,
+ b"Greetings traveller, I'm from 3.3.3.3",
+ )),
+ Some(build_tcp_packet(
+ "2.2.2.2",
+ "10.0.0.2",
+ 54321,
+ 4434,
+ b"You know, 2.2.2.2 is really nice!",
+ )),
+ Some(build_tcp_packet(
+ "4.4.4.4",
+ "10.0.0.2",
+ 1337,
+ 4432,
+ b"I'm partial to 4.4.4.4",
+ )),
+ ]) as Box<dyn DataLinkReceiver>];
+ let (terminal_events, terminal_draw_events, backend) = test_backend_factory(69, 29);
+ let os_input = os_input_output(network_frames, 2);
+ let opts = opts_ui();
+ start(backend, os_input, opts);
+ let terminal_draw_events_mirror = terminal_draw_events.lock().unwrap();
+
+ let expected_terminal_events = vec![
+ Clear, HideCursor, Draw, Flush, Draw, Flush, Clear, ShowCursor,
+ ];
+ assert_eq!(
+ &terminal_events.lock().unwrap()[..],
+ &expected_terminal_events[..]
+ );
+
+ assert_eq!(terminal_draw_events_mirror.len(), 2);
+ assert_snapshot!(&terminal_draw_events_mirror[0]);
+ assert_snapshot!(&terminal_draw_events_mirror[1]);
+}