summaryrefslogtreecommitdiffstats
path: root/apps/files_external/tests/appSpec.js
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files_external/tests/appSpec.js')
-rw-r--r--apps/files_external/tests/appSpec.js98
1 files changed, 98 insertions, 0 deletions
diff --git a/apps/files_external/tests/appSpec.js b/apps/files_external/tests/appSpec.js
new file mode 100644
index 00000000000..b00442384da
--- /dev/null
+++ b/apps/files_external/tests/appSpec.js
@@ -0,0 +1,98 @@
+/**
+* ownCloud
+*
+* @author Vincent Petry
+* @copyright 2014 Vincent Petry <pvince81@owncloud.com>
+*
+* This library is free software; you can redistribute it and/or
+* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+* License as published by the Free Software Foundation; either
+* version 3 of the License, or any later version.
+*
+* This library is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+*
+* You should have received a copy of the GNU Affero General Public
+* License along with this library. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+describe('OCA.External.App tests', function() {
+ var App = OCA.External.App;
+ var fileList;
+
+ beforeEach(function() {
+ $('#testArea').append(
+ '<div id="app-navigation">' +
+ '<ul><li data-id="files"><a>Files</a></li>' +
+ '<li data-id="sharingin"><a></a></li>' +
+ '<li data-id="sharingout"><a></a></li>' +
+ '</ul></div>' +
+ '<div id="app-content">' +
+ '<div id="app-content-files" class="hidden">' +
+ '</div>' +
+ '<div id="app-content-extstoragemounts" class="hidden">' +
+ '</div>' +
+ '</div>' +
+ '</div>'
+ );
+ fileList = App.initList($('#app-content-extstoragemounts'));
+ });
+ afterEach(function() {
+ App.fileList = null;
+ fileList = null;
+ });
+
+ describe('initialization', function() {
+ it('inits external mounts list on show', function() {
+ expect(App.fileList).toBeDefined();
+ });
+ });
+ describe('file actions', function() {
+ 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('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($('<table><thead></thead><tbody></tbody></table>'));
+
+ var setActiveViewStub = sinon.stub(OCA.Files.App, 'setActiveView');
+ // create dummy table so we can click the dom
+ var $table = '<table><thead></thead><tbody id="fileList"></tbody></table>';
+ $('#app-content-extstoragemounts').append($table);
+
+ App._inFileList = null;
+ fileList = App.initList($('#app-content-extstoragemounts'));
+
+ 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;
+ });
+ });
+});