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.lua61
1 files changed, 61 insertions, 0 deletions
diff --git a/source_tests.lua b/source_tests.lua
index 044ff47..81bdb74 100644
--- a/source_tests.lua
+++ b/source_tests.lua
@@ -21,6 +21,7 @@ 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'
@@ -35,6 +36,66 @@ function test_show_log_browser_side()
   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}
>68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85