summaryrefslogtreecommitdiffstats
path: root/src/tests/e2e/steps.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/tests/e2e/steps.rs')
-rw-r--r--src/tests/e2e/steps.rs153
1 files changed, 153 insertions, 0 deletions
diff --git a/src/tests/e2e/steps.rs b/src/tests/e2e/steps.rs
new file mode 100644
index 000000000..c09fc9392
--- /dev/null
+++ b/src/tests/e2e/steps.rs
@@ -0,0 +1,153 @@
+use super::cases::{
+ MOVE_FOCUS_LEFT_IN_NORMAL_MODE, MOVE_TAB_LEFT, MOVE_TAB_RIGHT, NEW_TAB_IN_TAB_MODE,
+ SECOND_TAB_CONTENT, TAB_MODE,
+};
+use super::remote_runner::{RemoteTerminal, Step};
+
+pub fn new_tab() -> Step {
+ Step {
+ name: "Open new tab",
+ instruction: |mut remote_terminal: RemoteTerminal| -> bool {
+ let mut step_is_complete = false;
+ if remote_terminal.tip_appears() && remote_terminal.status_bar_appears() {
+ remote_terminal.send_key(&TAB_MODE);
+ remote_terminal.send_key(&NEW_TAB_IN_TAB_MODE);
+ step_is_complete = true;
+ }
+ step_is_complete
+ },
+ }
+}
+
+pub fn check_second_tab_opened() -> Step {
+ Step {
+ name: "Check second tab opened",
+ instruction: |remote_terminal: RemoteTerminal| -> bool {
+ remote_terminal.status_bar_appears()
+ && remote_terminal.tip_appears()
+ && remote_terminal.snapshot_contains("Tab #2")
+ },
+ }
+}
+
+pub fn move_tab_left() -> Step {
+ Step {
+ name: "Move tab left",
+ instruction: |mut remote_terminal: RemoteTerminal| -> bool {
+ let mut step_is_complete = false;
+ if remote_terminal.tip_appears() && remote_terminal.status_bar_appears() {
+ remote_terminal.send_key(&MOVE_TAB_LEFT);
+ step_is_complete = true;
+ }
+ step_is_complete
+ },
+ }
+}
+
+pub fn check_third_tab_moved_left() -> Step {
+ Step {
+ name: "Check third tab is in the middle",
+ instruction: |remote_terminal: RemoteTerminal| -> bool {
+ remote_terminal.status_bar_appears()
+ && remote_terminal.tip_appears()
+ && remote_terminal.snapshot_contains("Tab #1  Tab #3  Tab #2")
+ },
+ }
+}
+
+pub fn type_second_tab_content() -> Step {
+ Step {
+ name: "Type second tab content",
+ instruction: |mut remote_terminal: RemoteTerminal| -> bool {
+ let mut step_is_complete = false;
+ if remote_terminal.tip_appears() && remote_terminal.status_bar_appears() {
+ remote_terminal.send_key(&SECOND_TAB_CONTENT);
+ step_is_complete = true;
+ }
+ step_is_complete
+ },
+ }
+}
+
+pub fn check_third_tab_opened() -> Step {
+ Step {
+ name: "Check third tab opened",
+ instruction: |remote_terminal: RemoteTerminal| -> bool {
+ remote_terminal.status_bar_appears()
+ && remote_terminal.tip_appears()
+ && remote_terminal.snapshot_contains("Tab #3")
+ },
+ }
+}
+
+pub fn switch_focus_to_left_tab() -> Step {
+ Step {
+ name: "Move focus to tab on the left",
+ instruction: |mut remote_terminal: RemoteTerminal| -> bool {
+ let mut step_is_complete = false;
+ if remote_terminal.tip_appears() && remote_terminal.status_bar_appears() {
+ remote_terminal.send_key(&MOVE_FOCUS_LEFT_IN_NORMAL_MODE);
+ step_is_complete = true;
+ }
+ step_is_complete
+ },
+ }
+}
+
+pub fn check_focus_on_second_tab() -> Step {
+ Step {
+ name: "Check focus is on the second tab",
+ instruction: |remote_terminal: RemoteTerminal| -> bool {
+ remote_terminal.status_bar_appears()
+ && remote_terminal.tip_appears()
+ && remote_terminal.snapshot_contains("Tab #2 content")
+ },
+ }
+}
+
+pub fn move_tab_right() -> Step {
+ Step {
+ name: "Move tab right",
+ instruction: |mut remote_terminal: RemoteTerminal| -> bool {
+ let mut step_is_complete = false;
+ if remote_terminal.tip_appears() && remote_terminal.status_bar_appears() {
+ remote_terminal.send_key(&MOVE_TAB_RIGHT);
+ step_is_complete = true;
+ }
+ step_is_complete
+ },
+ }
+}
+
+pub fn check_third_tab_moved_to_beginning() -> Step {
+ Step {
+ name: "Check third tab moved to beginning",
+ instruction: |remote_terminal: RemoteTerminal| -> bool {
+ remote_terminal.status_bar_appears()
+ && remote_terminal.tip_appears()
+ && remote_terminal.snapshot_contains("Tab #3  Tab #1  Tab #2")
+ },
+ }
+}
+
+pub fn check_third_tab_is_left_wrapped() -> Step {
+ Step {
+ name: "Check third tab is in last position",
+ instruction: |remote_terminal: RemoteTerminal| -> bool {
+ remote_terminal.status_bar_appears()
+ && remote_terminal.tip_appears()
+ && remote_terminal.snapshot_contains("Tab #2  Tab #1  Tab #3")
+ },
+ }
+}
+
+pub fn check_third_tab_is_right_wrapped() -> Step {
+ Step {
+ name: "Check third tab is in last position",
+ instruction: |remote_terminal: RemoteTerminal| -> bool {
+ remote_terminal.status_bar_appears()
+ && remote_terminal.tip_appears()
+ && remote_terminal.snapshot_contains("Tab #3  Tab #2  Tab #1")
+ },
+ }
+}