From 239fd2f9e64e77e1e5a0702fd7db968b42b6b8d1 Mon Sep 17 00:00:00 2001 From: Corey Johnson & Nathan Sobo Date: Tue, 24 Jul 2012 10:34:30 -0700 Subject: [PATCH] buffer triggers a 'path-change' event when a file is moved or removed --- spec/app/buffer-spec.coffee | 38 +++++++++++++++++++++++++++++++------ src/app/buffer.coffee | 4 ++++ 2 files changed, 36 insertions(+), 6 deletions(-) diff --git a/spec/app/buffer-spec.coffee b/spec/app/buffer-spec.coffee index 9478c15e8..d176a9256 100644 --- a/spec/app/buffer-spec.coffee +++ b/spec/app/buffer-spec.coffee @@ -42,14 +42,40 @@ describe 'Buffer', -> expect(buffer.getText()).toBe "" describe "path-change event", -> - afterEach -> - fs.remove("/tmp/moo.text") if fs.exists("/tmp/moo.text") + [path, newPath, bufferToChange, eventHandler] = [] - it "emits path-change event when path is changed", -> + beforeEach -> + path = fs.join(require.resolve("fixtures/"), "tmp/atom-manipulate-me") + newPath = "#{path}-i-moved" + fs.write(path, "") + bufferToChange = new Buffer(path) eventHandler = jasmine.createSpy('eventHandler') - buffer.on 'path-change', eventHandler - buffer.saveAs("/tmp/moo.text") - expect(eventHandler).toHaveBeenCalledWith(buffer) + bufferToChange.on 'path-change', eventHandler + + afterEach -> + bufferToChange.destroy() + fs.remove(path) if fs.exists(path) + fs.remove(newPath) if fs.exists(newPath) + + it "triggers a `path-change` event when path is changed", -> + bufferToChange.saveAs(newPath) + expect(eventHandler).toHaveBeenCalledWith(bufferToChange) + + it "triggers a `path-change` event when the file is moved", -> + fs.remove(newPath) if fs.exists(newPath) + fs.move(path, newPath) + + waitsFor "buffer path change", -> + eventHandler.callCount > 0 + + runs -> + expect(eventHandler).toHaveBeenCalledWith(bufferToChange) + + it "triggers a `path-change` event when the file is removed", -> + fs.remove(path) + + waitsFor "buffer path change", -> + eventHandler.callCount > 0 describe "when the buffer's file is modified (via another process)", -> path = null diff --git a/src/app/buffer.coffee b/src/app/buffer.coffee index c4e95d1ca..fa7b0c577 100644 --- a/src/app/buffer.coffee +++ b/src/app/buffer.coffee @@ -56,6 +56,10 @@ class Buffer @file.on "remove", => @file = null + @trigger "path-change", this + + @file.on "move", => + @trigger "path-change", this @trigger "path-change", this