about summary refs log tree commit diff stats
path: root/main_tests.lua
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2022-06-29 17:58:58 -0700
committerKartik K. Agaram <vc@akkartik.com>2022-06-29 17:58:58 -0700
commitd009390cc4fa891d8c6399e12bb83567606156e2 (patch)
tree6a199e5cc448b1056209d6d5a76290d2a2c025a1 /main_tests.lua
parentbfbe73e0efd2f80d5a2402ced3a93d6748319fbd (diff)
downloadlines.love-d009390cc4fa891d8c6399e12bb83567606156e2.tar.gz
bugfix: save previous file when dropping a new one on
Diffstat (limited to 'main_tests.lua')
-rw-r--r--main_tests.lua30
1 files changed, 30 insertions, 0 deletions
diff --git a/main_tests.lua b/main_tests.lua
index 495630f..a86c825 100644
--- a/main_tests.lua
+++ b/main_tests.lua
@@ -37,6 +37,36 @@ function test_drop_file()
   check_eq(Lines[3].data, 'ghi', 'F - test_drop_file/lines:3')
 end
 
+function test_drop_file_saves_previous()
+  io.write('\ntest_drop_file_saves_previous')
+  App.screen.init{width=Margin_left+300, height=300}
+  -- initially editing a file called foo that hasn't been saved to filesystem yet
+  Lines = load_array{'abc', 'def'}
+  Filename = 'foo'
+  schedule_save()
+  -- 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
+
 function test_adjust_line_width()
   io.write('\ntest_adjust_line_width')
   Filename = 'foo'