aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files/tests/js/appSpec.js
diff options
context:
space:
mode:
authorDaniel Calviño Sánchez <danxuliu@gmail.com>2017-12-19 03:06:06 +0100
committerDaniel Calviño Sánchez <danxuliu@gmail.com>2017-12-19 18:33:34 +0100
commit7760f1652190474d1f62b590b6a57799c8ffd68d (patch)
tree8e473e460ab02514fe229abb968ad720ccb7fbcc /apps/files/tests/js/appSpec.js
parentb01d20c0d7b76dc04fcbfa027c51b14d740dc67e (diff)
downloadnextcloud-server-7760f1652190474d1f62b590b6a57799c8ffd68d.tar.gz
nextcloud-server-7760f1652190474d1f62b590b6a57799c8ffd68d.zip
Trigger events before and after a file action is executed
In the same way that other elements can know when a FileAction is registered or a default action is set this commit makes possible to be notified before and after a FileAction is executed. This is achieved by wrapping the registered action handler in a custom function that notifies the listeners before and after executing the handler itself. Due to this approach only FileActions registered through "registerAction" trigger the events, although that is not a problem as this is how the actions should be added to the FileActions anyway. Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
Diffstat (limited to 'apps/files/tests/js/appSpec.js')
-rw-r--r--apps/files/tests/js/appSpec.js19
1 files changed, 16 insertions, 3 deletions
diff --git a/apps/files/tests/js/appSpec.js b/apps/files/tests/js/appSpec.js
index b9c323e7c12..5728991e197 100644
--- a/apps/files/tests/js/appSpec.js
+++ b/apps/files/tests/js/appSpec.js
@@ -112,9 +112,22 @@ describe('OCA.Files.App tests', function() {
App.initialize();
var actions = App.fileList.fileActions.actions;
- expect(actions.all.OverwriteThis.action).toBe(actionStub);
- expect(actions.all.LegacyTest.action).toBe(legacyActionStub);
- expect(actions.all.RegularTest.action).toBe(actionStub);
+ var context = { fileActions: sinon.createStubInstance(OCA.Files.FileActions) };
+ actions.all.OverwriteThis.action('testFileName', context);
+ expect(actionStub.calledOnce).toBe(true);
+ expect(context.fileActions._notifyUpdateListeners.callCount).toBe(2);
+ expect(context.fileActions._notifyUpdateListeners.getCall(0).calledWith('beforeTriggerAction')).toBe(true);
+ expect(context.fileActions._notifyUpdateListeners.getCall(1).calledWith('afterTriggerAction')).toBe(true);
+ actions.all.LegacyTest.action('testFileName', context);
+ expect(legacyActionStub.calledOnce).toBe(true);
+ expect(context.fileActions._notifyUpdateListeners.callCount).toBe(4);
+ expect(context.fileActions._notifyUpdateListeners.getCall(2).calledWith('beforeTriggerAction')).toBe(true);
+ expect(context.fileActions._notifyUpdateListeners.getCall(3).calledWith('afterTriggerAction')).toBe(true);
+ actions.all.RegularTest.action('testFileName', context);
+ expect(actionStub.calledTwice).toBe(true);
+ expect(context.fileActions._notifyUpdateListeners.callCount).toBe(6);
+ expect(context.fileActions._notifyUpdateListeners.getCall(4).calledWith('beforeTriggerAction')).toBe(true);
+ expect(context.fileActions._notifyUpdateListeners.getCall(5).calledWith('afterTriggerAction')).toBe(true);
// default one still there
expect(actions.dir.Open.action).toBeDefined();
});