about summary refs log tree commit diff stats
path: root/source_tests.lua
diff options
context:
space:
mode:
Diffstat (limited to 'source_tests.lua')
-rw-r--r--source_tests.lua80
1 files changed, 79 insertions, 1 deletions
diff --git a/source_tests.lua b/source_tests.lua
index 519c311..81bdb74 100644
--- a/source_tests.lua
+++ b/source_tests.lua
@@ -7,7 +7,7 @@ function test_resize_window()
   check_eq(App.screen.width, 300, 'F - test_resize_window/baseline/width')
   check_eq(App.screen.height, 300, 'F - test_resize_window/baseline/height')
   check_eq(Editor_state.left, Test_margin_left, 'F - test_resize_window/baseline/left_margin')
-  check_eq(Editor_state.right, 300 - Test_margin_right, 'F - test_resize_window/baseline/left_margin')
+  check_eq(Editor_state.right, 300 - Test_margin_right, 'F - test_resize_window/baseline/right_margin')
   App.resize(200, 400)
   -- ugly; resize switches to real, non-test margins
   check_eq(App.screen.width, 200, 'F - test_resize_window/width')
@@ -18,6 +18,84 @@ function test_resize_window()
   -- TODO: how to make assertions about when App.update got past the early exit?
 end
 
+function test_show_log_browser_side()
+  io.write('\ntest_show_log_browser_side')
+  App.screen.init{width=300, height=300}
+  Display_width = App.screen.width
+  Current_app = 'source'
+  Editor_state = edit.initialize_test_state()
+  Editor_state.filename = 'foo'
+  Text.redraw_all(Editor_state)
+  Log_browser_state = edit.initialize_test_state()
+  Text.redraw_all(Log_browser_state)
+  log_browser.parse(Log_browser_state)
+  check(not Show_log_browser_side, 'F - test_show_log_browser_side/baseline')
+  -- pressing ctrl+l shows log-browser side
+  App.wait_fake_time(0.1)
+  App.run_after_keychord('C-l')
+  check(Show_log_browser_side, 'F - test_show_log_browser_side')
+end
+
+function test_show_log_browser_side_doubles_window_width_if_possible()
+  io.write('\ntest_show_log_browser_side_doubles_window_width_if_possible')
+  -- initialize screen dimensions to half width
+  App.screen.init{width=300, height=300}
+  Display_width = App.screen.width*2
+  -- initialize source app with left side occupying entire window (half the display)
+  Current_app = 'source'
+  Editor_state = edit.initialize_test_state()
+  Editor_state.filename = 'foo'
+  Editor_state.left = Margin_left
+  Editor_state.right = App.screen.width - Margin_right
+  local old_editor_right = Editor_state.right
+  Text.redraw_all(Editor_state)
+  Log_browser_state = edit.initialize_test_state()
+  -- log browser has some arbitrary margins
+  Log_browser_state.left = 200 + Margin_left
+  Log_browser_state.right = 400
+  Text.redraw_all(Log_browser_state)
+  log_browser.parse(Log_browser_state)
+  -- display log browser
+  App.wait_fake_time(0.1)
+  App.run_after_keychord('C-l')
+  -- window width is doubled
+  check_eq(App.screen.width, 600, 'F - test_show_log_browser_side_doubles_window_width_if_possible/display:width')
+  -- left side margins are unchanged
+  check_eq(Editor_state.left, Margin_left, 'F - test_show_log_browser_side_doubles_window_width_if_possible/edit:left')
+  check_eq(Editor_state.right, old_editor_right, 'F - test_show_log_browser_side_doubles_window_width_if_possible/edit:right')
+  -- log browser margins are adjusted
+  check_eq(Log_browser_state.left, App.screen.width/2 + Margin_left, 'F - test_show_log_browser_side_doubles_window_width_if_possible/log:left')
+  check_eq(Log_browser_state.right, App.screen.width - Margin_right, 'F - test_show_log_browser_side_doubles_window_width_if_possible/log:right')
+end
+
+function test_show_log_browser_side_resizes_both_sides_if_cannot_double_window_width()
+  io.write('\ntest_show_log_browser_side_resizes_both_sides_if_cannot_double_window_width')
+  -- initialize screen dimensions and indicate that it is maximized
+  App.screen.init{width=300, height=300}
+  Display_width = 300
+  -- initialize source app with left side occupying more than half the display
+  Current_app = 'source'
+  Editor_state = edit.initialize_test_state()
+  Editor_state.filename = 'foo'
+  Editor_state.left = Margin_left
+  Editor_state.right = 200
+  Text.redraw_all(Editor_state)
+  Log_browser_state = edit.initialize_test_state()
+  -- log browser has some arbitrary margins
+  Log_browser_state.left = 200 + Margin_left
+  Log_browser_state.right = 400
+  Text.redraw_all(Log_browser_state)
+  log_browser.parse(Log_browser_state)
+  -- display log browser
+  App.wait_fake_time(0.1)
+  App.run_after_keychord('C-l')
+  -- margins are now adjusted
+  check_eq(Editor_state.left, Margin_left, 'F - test_show_log_browser_side_resizes_both_sides_if_cannot_double_window_width/edit:left')
+  check_eq(Editor_state.right, App.screen.width/2 - Margin_right, 'F - test_show_log_browser_side_resizes_both_sides_if_cannot_double_window_width/edit:right')
+  check_eq(Log_browser_state.left, App.screen.width/2 + Margin_left, 'F - test_show_log_browser_side_resizes_both_sides_if_cannot_double_window_width/log:left')
+  check_eq(Log_browser_state.right, App.screen.width - Margin_right, 'F - test_show_log_browser_side_resizes_both_sides_if_cannot_double_window_width/log:right')
+end
+
 function test_drop_file()
   io.write('\ntest_drop_file')
   App.screen.init{width=Editor_state.left+300, height=300}