aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files/tests/js/fileactionsSpec.js
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files/tests/js/fileactionsSpec.js')
-rw-r--r--apps/files/tests/js/fileactionsSpec.js80
1 files changed, 72 insertions, 8 deletions
diff --git a/apps/files/tests/js/fileactionsSpec.js b/apps/files/tests/js/fileactionsSpec.js
index 9152dbb58c3..490594a1773 100644
--- a/apps/files/tests/js/fileactionsSpec.js
+++ b/apps/files/tests/js/fileactionsSpec.js
@@ -21,7 +21,7 @@
describe('OCA.Files.FileActions tests', function() {
var $filesTable, fileList;
- var FileActions = OCA.Files.FileActions;
+ var FileActions;
beforeEach(function() {
// init horrible parameters
@@ -31,10 +31,11 @@ describe('OCA.Files.FileActions tests', function() {
// dummy files table
$filesTable = $body.append('<table id="filestable"></table>');
fileList = new OCA.Files.FileList($('#testArea'));
- FileActions.registerDefaultActions(fileList);
+ FileActions = new OCA.Files.FileActions();
+ FileActions.registerDefaultActions();
});
afterEach(function() {
- FileActions.clear();
+ FileActions = null;
fileList = undefined;
$('#dir, #permissions, #filestable').remove();
});
@@ -78,8 +79,8 @@ describe('OCA.Files.FileActions tests', function() {
};
var $tr = fileList.add(fileData);
- FileActions.display($tr.find('td.filename'), true);
- FileActions.display($tr.find('td.filename'), true);
+ FileActions.display($tr.find('td.filename'), true, fileList);
+ FileActions.display($tr.find('td.filename'), true, fileList);
// actions defined after cal
expect($tr.find('.action.action-download').length).toEqual(1);
@@ -98,12 +99,39 @@ describe('OCA.Files.FileActions tests', function() {
mtime: '123456'
};
var $tr = fileList.add(fileData);
- FileActions.display($tr.find('td.filename'), true);
+ FileActions.display($tr.find('td.filename'), true, fileList);
+
+ $tr.find('.action-download').click();
+
+ expect(redirectStub.calledOnce).toEqual(true);
+ expect(redirectStub.getCall(0).args[0]).toEqual(
+ OC.webroot +
+ '/index.php/apps/files/ajax/download.php' +
+ '?dir=%2Fsubdir&files=testName.txt');
+ redirectStub.restore();
+ });
+ it('takes the file\'s path into account when clicking download', function() {
+ var redirectStub = sinon.stub(OC, 'redirect');
+ var fileData = {
+ id: 18,
+ type: 'file',
+ name: 'testName.txt',
+ path: '/anotherpath/there',
+ mimetype: 'text/plain',
+ size: '1234',
+ etag: 'a01234c',
+ mtime: '123456'
+ };
+ var $tr = fileList.add(fileData);
+ FileActions.display($tr.find('td.filename'), true, fileList);
$tr.find('.action-download').click();
expect(redirectStub.calledOnce).toEqual(true);
- expect(redirectStub.getCall(0).args[0]).toEqual(OC.webroot + '/index.php/apps/files/ajax/download.php?dir=%2Fsubdir&files=testName.txt');
+ expect(redirectStub.getCall(0).args[0]).toEqual(
+ OC.webroot + '/index.php/apps/files/ajax/download.php' +
+ '?dir=%2Fanotherpath%2Fthere&files=testName.txt'
+ );
redirectStub.restore();
});
it('deletes file when clicking delete', function() {
@@ -118,11 +146,47 @@ describe('OCA.Files.FileActions tests', function() {
mtime: '123456'
};
var $tr = fileList.add(fileData);
- FileActions.display($tr.find('td.filename'), true);
+ FileActions.display($tr.find('td.filename'), true, fileList);
$tr.find('.action.delete').click();
expect(deleteStub.calledOnce).toEqual(true);
deleteStub.restore();
});
+ it('passes context to action handler', function() {
+ var actionStub = sinon.stub();
+ var fileData = {
+ id: 18,
+ type: 'file',
+ name: 'testName.txt',
+ mimetype: 'text/plain',
+ size: '1234',
+ etag: 'a01234c',
+ mtime: '123456'
+ };
+ var $tr = fileList.add(fileData);
+ FileActions.register(
+ 'all',
+ 'Test',
+ OC.PERMISSION_READ,
+ OC.imagePath('core', 'actions/test'),
+ actionStub
+ );
+ FileActions.display($tr.find('td.filename'), true, fileList);
+ $tr.find('.action-test').click();
+ expect(actionStub.calledOnce).toEqual(true);
+ expect(actionStub.getCall(0).args[0]).toEqual('testName.txt');
+ var context = actionStub.getCall(0).args[1];
+ expect(context.$file.is($tr)).toEqual(true);
+ expect(context.fileList).toBeDefined();
+ expect(context.fileActions).toBeDefined();
+ expect(context.dir).toEqual('/subdir');
+
+ // when data-path is defined
+ actionStub.reset();
+ $tr.attr('data-path', '/somepath');
+ $tr.find('.action-test').click();
+ context = actionStub.getCall(0).args[1];
+ expect(context.dir).toEqual('/somepath');
+ });
});