/* * Copyright (c) 2014 Vincent Petry * * This file is licensed under the Affero General Public License version 3 * or later. * * See the COPYING-README file. * */ describe('OCA.Files.FavoritesPlugin tests', function() { var Plugin = OCA.Files.FavoritesPlugin; var fileList; beforeEach(function() { $('#testArea').append( '
' + '
' + '
' + '' + '' + '
' + '' ); OC.Plugins.attach('OCA.Files.App', Plugin); fileList = Plugin.showFileList($('#app-content-favorites')); }); afterEach(function() { OC.Plugins.detach('OCA.Files.App', Plugin); }); describe('initialization', function() { it('inits favorites list on show', function() { expect(fileList).toBeDefined(); }); }); describe('file actions', function() { var oldLegacyFileActions; beforeEach(function() { oldLegacyFileActions = window.FileActions; window.FileActions = new OCA.Files.FileActions(); }); afterEach(function() { window.FileActions = oldLegacyFileActions; }); it('provides default file actions', function() { var fileActions = fileList.fileActions; expect(fileActions.actions.all).toBeDefined(); expect(fileActions.actions.all.Delete).toBeDefined(); expect(fileActions.actions.all.Rename).toBeDefined(); expect(fileActions.actions.all.Download).toBeDefined(); expect(fileActions.defaults.dir).toEqual('Open'); }); it('provides custom file actions', function() { var actionStub = sinon.stub(); // regular file action OCA.Files.fileActions.register( 'all', 'RegularTest', OC.PERMISSION_READ, OC.imagePath('core', 'actions/shared'), actionStub ); Plugin.favoritesFileList = null; fileList = Plugin.showFileList($('#app-content-favorites')); expect(fileList.fileActions.actions.all.RegularTest).toBeDefined(); }); it('does not provide legacy file actions', function() { var actionStub = sinon.stub(); // legacy file action window.FileActions.register( 'all', 'LegacyTest', OC.PERMISSION_READ, OC.imagePath('core', 'actions/shared'), actionStub ); Plugin.favoritesFileList = null; fileList = Plugin.showFileList($('#app-content-favorites')); expect(fileList.fileActions.actions.all.LegacyTest).not.toBeDefined(); }); it('redirects to files app when opening a directory', function() { var oldList = OCA.Files.App.fileList; // dummy new list to make sure it exists OCA.Files.App.fileList = new OCA.Files.FileList($('
')); var setActiveViewStub = sinon.stub(OCA.Files.App, 'setActiveView'); // create dummy table so we can click the dom var $table = '
'; $('#app-content-favorites').append($table); Plugin.favoritesFileList = null; fileList = Plugin.showFileList($('#app-content-favorites')); fileList.setFiles([{ name: 'testdir', type: 'dir', path: '/somewhere/inside/subdir', counterParts: ['user2'], shareOwner: 'user2' }]); fileList.findFileEl('testdir').find('td a.name').click(); expect(OCA.Files.App.fileList.getCurrentDirectory()).toEqual('/somewhere/inside/subdir/testdir'); expect(setActiveViewStub.calledOnce).toEqual(true); expect(setActiveViewStub.calledWith('files')).toEqual(true); setActiveViewStub.restore(); // restore old list OCA.Files.App.fileList = oldList; }); }); });