aboutsummaryrefslogtreecommitdiff
path: root/app/tests/test_tui.py
diff options
context:
space:
mode:
Diffstat (limited to 'app/tests/test_tui.py')
-rw-r--r--app/tests/test_tui.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/app/tests/test_tui.py b/app/tests/test_tui.py
index c87374f..5862a54 100644
--- a/app/tests/test_tui.py
+++ b/app/tests/test_tui.py
@@ -408,6 +408,31 @@ class FormTests(TuiTestCase):
back_value=marker)
self.assertIs(result, marker)
+ def test_down_on_last_field_moves_to_save(self):
+ # Down moves cursor to the last field, Down again steps onto the
+ # Save button, Enter saves.
+ screen = FakeScreen(keys=[FakeCurses.KEY_DOWN, FakeCurses.KEY_DOWN,
+ 10])
+ result = tui.form(screen, "Settings", self._fields())
+ self.assertEqual(result, {"fmt": "m4b", "chunk": "250"})
+
+ def test_up_on_first_field_moves_to_cancel(self):
+ marker = object()
+ # Up from the first field steps onto the Cancel button, Enter.
+ screen = FakeScreen(keys=[FakeCurses.KEY_UP, 10])
+ result = tui.form(screen, "Settings", self._fields(),
+ back_value=marker)
+ self.assertIs(result, marker)
+
+ def test_up_down_on_buttons_returns_to_fields(self):
+ # Down (last field -> Save), Up returns to the last field, Enter
+ # opens its text editor, then Tab -> Save, Enter.
+ screen = FakeScreen(keys=[FakeCurses.KEY_DOWN, FakeCurses.KEY_DOWN,
+ FakeCurses.KEY_UP, 10, ord("x"), 10,
+ 9, 10])
+ result = tui.form(screen, "Settings", self._fields())
+ self.assertEqual(result, {"fmt": "m4b", "chunk": "250x"})
+
def test_esc_returns_back_value(self):
marker = object()
screen = FakeScreen(keys=[27])