summaryrefslogtreecommitdiffstats
path: root/apps/files/tests/js/detailsviewSpec.js
diff options
context:
space:
mode:
authorVincent Petry <pvince81@owncloud.com>2015-07-17 14:09:00 +0200
committerArthur Schiwon <blizzz@owncloud.com>2015-08-07 01:22:43 +0200
commit3e44ca6dc24d5ffc4cb678532a5afa3b026780ce (patch)
tree5409d96caf9836d84157cc080700df29c2426aac /apps/files/tests/js/detailsviewSpec.js
parentf11946c8c0c41e87e17c50b5e3691ece11a09ae4 (diff)
downloadnextcloud-server-3e44ca6dc24d5ffc4cb678532a5afa3b026780ce.tar.gz
nextcloud-server-3e44ca6dc24d5ffc4cb678532a5afa3b026780ce.zip
Added unit tests for right sidebar
Diffstat (limited to 'apps/files/tests/js/detailsviewSpec.js')
-rw-r--r--apps/files/tests/js/detailsviewSpec.js95
1 files changed, 95 insertions, 0 deletions
diff --git a/apps/files/tests/js/detailsviewSpec.js b/apps/files/tests/js/detailsviewSpec.js
new file mode 100644
index 00000000000..b00c15032b0
--- /dev/null
+++ b/apps/files/tests/js/detailsviewSpec.js
@@ -0,0 +1,95 @@
+/**
+* ownCloud
+*
+* @author Vincent Petry
+* @copyright 2015 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.Files.DetailsView tests', function() {
+ var detailsView;
+
+ beforeEach(function() {
+ detailsView = new OCA.Files.DetailsView();
+ });
+ afterEach(function() {
+ detailsView.destroy();
+ detailsView = undefined;
+ });
+ it('renders itself empty when nothing registered', function() {
+ detailsView.render();
+ expect(detailsView.$el.find('.detailFileInfoContainer').length).toEqual(1);
+ expect(detailsView.$el.find('.tabsContainer').length).toEqual(1);
+ });
+ describe('file info detail view', function() {
+ it('renders registered view', function() {
+ var testView = new OCA.Files.DetailFileInfoView();
+ var testView2 = new OCA.Files.DetailFileInfoView();
+ detailsView.addDetailView(testView);
+ detailsView.addDetailView(testView2);
+ detailsView.render();
+
+ expect(detailsView.$el.find('.detailFileInfoContainer .detailFileInfoView').length).toEqual(2);
+ });
+ it('updates registered tabs when fileinfo is updated', function() {
+ var viewRenderStub = sinon.stub(OCA.Files.DetailFileInfoView.prototype, 'render');
+ var testView = new OCA.Files.DetailFileInfoView();
+ var testView2 = new OCA.Files.DetailFileInfoView();
+ detailsView.addDetailView(testView);
+ detailsView.addDetailView(testView2);
+ detailsView.render();
+
+ var fileInfo = {id: 5, name: 'test.txt'};
+ viewRenderStub.reset();
+ detailsView.setFileInfo(fileInfo);
+
+ expect(testView.getFileInfo()).toEqual(fileInfo);
+ expect(testView2.getFileInfo()).toEqual(fileInfo);
+
+ expect(viewRenderStub.callCount).toEqual(2);
+ viewRenderStub.restore();
+ });
+ });
+ describe('tabs', function() {
+ it('renders registered tabs', function() {
+ var testView = new OCA.Files.DetailTabView('test1');
+ var testView2 = new OCA.Files.DetailTabView('test2');
+ detailsView.addTabView(testView);
+ detailsView.addTabView(testView2);
+ detailsView.render();
+
+ expect(detailsView.$el.find('.tabsContainer .detailTabView').length).toEqual(2);
+ });
+ it('updates registered tabs when fileinfo is updated', function() {
+ var tabRenderStub = sinon.stub(OCA.Files.DetailTabView.prototype, 'render');
+ var testView = new OCA.Files.DetailTabView('test1');
+ var testView2 = new OCA.Files.DetailTabView('test2');
+ detailsView.addTabView(testView);
+ detailsView.addTabView(testView2);
+ detailsView.render();
+
+ var fileInfo = {id: 5, name: 'test.txt'};
+ tabRenderStub.reset();
+ detailsView.setFileInfo(fileInfo);
+
+ expect(testView.getFileInfo()).toEqual(fileInfo);
+ expect(testView2.getFileInfo()).toEqual(fileInfo);
+
+ expect(tabRenderStub.callCount).toEqual(2);
+ tabRenderStub.restore();
+ });
+ });
+});