diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2022-09-03 14:13:22 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2022-09-03 14:13:22 -0700 |
commit | e1c5a42f311fdafd88506726bbe480f3fcc2d1a3 (patch) | |
tree | 6628729cc55947d0bd5d306704e88b57680c3514 /run_tests.lua | |
parent | 9c72ff1bb4fc1ba08acfb0324079da6fe49f3a4a (diff) | |
download | view.love-e1c5a42f311fdafd88506726bbe480f3fcc2d1a3.tar.gz |
editing source code from within the app
integrated from pong.love via text.love: https://merveilles.town/@akkartik/108933336531898243
Diffstat (limited to 'run_tests.lua')
-rw-r--r-- | run_tests.lua | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/run_tests.lua b/run_tests.lua new file mode 100644 index 0000000..31605f0 --- /dev/null +++ b/run_tests.lua @@ -0,0 +1,76 @@ +function test_resize_window() + io.write('\ntest_resize_window') + App.screen.init{width=300, height=300} + Editor_state = edit.initialize_test_state() + Editor_state.filename = 'foo' + 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') + App.resize(200, 400) + check_eq(App.screen.width, 200, 'F - test_resize_window/width') + check_eq(App.screen.height, 400, 'F - test_resize_window/height') + check_eq(Editor_state.left, Test_margin_left, 'F - test_resize_window/left_margin') + -- ugly; right margin switches from 0 after resize + check_eq(Editor_state.right, 200-Margin_right, 'F - test_resize_window/right_margin') + check_eq(Editor_state.width, 200-Test_margin_left-Margin_right, 'F - test_resize_window/drawing_width') + -- TODO: how to make assertions about when App.update got past the early exit? +end + +function test_drop_file() + io.write('\ntest_drop_file') + App.screen.init{width=Editor_state.left+300, height=300} + Editor_state = edit.initialize_test_state() + App.filesystem['foo'] = 'abc\ndef\nghi\n' + local fake_dropped_file = { + opened = false, + getFilename = function(self) + return 'foo' + end, + open = function(self) + self.opened = true + end, + lines = function(self) + assert(self.opened) + return App.filesystem['foo']:gmatch('[^\n]+') + end, + close = function(self) + self.opened = false + end, + } + App.filedropped(fake_dropped_file) + check_eq(#Editor_state.lines, 3, 'F - test_drop_file/#lines') + check_eq(Editor_state.lines[1].data, 'abc', 'F - test_drop_file/lines:1') + check_eq(Editor_state.lines[2].data, 'def', 'F - test_drop_file/lines:2') + check_eq(Editor_state.lines[3].data, 'ghi', 'F - test_drop_file/lines:3') + edit.draw(Editor_state) +end + +function test_drop_file_saves_previous() + io.write('\ntest_drop_file_saves_previous') + App.screen.init{width=Editor_state.left+300, height=300} + -- initially editing a file called foo that hasn't been saved to filesystem yet + Editor_state.lines = load_array{'abc', 'def'} + Editor_state.filename = 'foo' + schedule_save(Editor_state) + -- now drag a new file bar from the filesystem + App.filesystem['bar'] = 'abc\ndef\nghi\n' + local fake_dropped_file = { + opened = false, + getFilename = function(self) + return 'bar' + end, + open = function(self) + self.opened = true + end, + lines = function(self) + assert(self.opened) + return App.filesystem['bar']:gmatch('[^\n]+') + end, + close = function(self) + self.opened = false + end, + } + App.filedropped(fake_dropped_file) + -- filesystem now contains a file called foo + check_eq(App.filesystem['foo'], 'abc\ndef\n', 'F - test_drop_file_saves_previous') +end |