diff options
Diffstat (limited to 'settings/tests')
-rw-r--r-- | settings/tests/js/appsSpec.js | 245 | ||||
-rw-r--r-- | settings/tests/js/users/deleteHandlerSpec.js | 206 |
2 files changed, 0 insertions, 451 deletions
diff --git a/settings/tests/js/appsSpec.js b/settings/tests/js/appsSpec.js deleted file mode 100644 index d2ca1fb5c8b..00000000000 --- a/settings/tests/js/appsSpec.js +++ /dev/null @@ -1,245 +0,0 @@ -/** -* 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('OC.Settings.Apps tests', function() { - var Apps; - - beforeEach(function() { - var $el = $('<div id="apps-list"></div>' + - '<div id="apps-list-empty" class="hidden"></div>' + - '<div id="app-template">' + - // dummy template for testing - '<div id="app-{{id}}" data-id="{{id}}" class="section">{{name}}</div>' + - '</div>' - ); - $('#testArea').append($el); - - Apps = OC.Settings.Apps; - }); - afterEach(function() { - Apps.State.apps = null; - Apps.State.currentCategory = null; - }); - - describe('Filtering apps', function() { - var oldApps; - - function loadApps(appList) { - Apps.State.apps = appList; - - _.each(appList, function(appSpec) { - Apps.renderApp(appSpec); - }); - } - - function getResultsFromDom() { - var results = []; - $('#apps-list .section:not(.hidden)').each(function() { - results.push($(this).attr('data-id')); - }); - return results; - } - - beforeEach(function() { - loadApps([ - {id: 'appone', name: 'App One', description: 'The first app', author: 'author1', level: 200}, - {id: 'apptwo', name: 'App Two', description: 'The second app', author: 'author2', level: 100}, - {id: 'appthree', name: 'App Three', description: 'Third app', author: 'author3', level: 0}, - {id: 'somestuff', name: 'Some Stuff', description: 'whatever', author: 'author4', level: 0} - ]); - }); - - it('returns no results when query does not match anything', function() { - expect(getResultsFromDom().length).toEqual(4); - expect($('#apps-list:not(.hidden)').length).toEqual(1); - expect($('#apps-list-empty:not(.hidden)').length).toEqual(0); - - Apps.filter('absurdity'); - expect(getResultsFromDom().length).toEqual(0); - expect($('#apps-list:not(.hidden)').length).toEqual(0); - expect($('#apps-list-empty:not(.hidden)').length).toEqual(1); - - Apps.filter(''); - expect(getResultsFromDom().length).toEqual(4); - expect($('#apps-list:not(.hidden)').length).toEqual(1); - expect($('#apps-list-empty:not(.hidden)').length).toEqual(0); - expect(getResultsFromDom().length).toEqual(4); - }); - it('returns relevant results when query matches name', function() { - expect($('#apps-list:not(.hidden)').length).toEqual(1); - expect($('#apps-list-empty:not(.hidden)').length).toEqual(0); - - var results; - Apps.filter('app'); - results = getResultsFromDom(); - expect(results.length).toEqual(3); - expect(results[0]).toEqual('appone'); - expect(results[1]).toEqual('apptwo'); - expect(results[2]).toEqual('appthree'); - - expect($('#apps-list:not(.hidden)').length).toEqual(1); - expect($('#apps-list-empty:not(.hidden)').length).toEqual(0); - }); - it('returns relevant result when query matches name', function() { - var results; - Apps.filter('TWO'); - results = getResultsFromDom(); - expect(results.length).toEqual(1); - expect(results[0]).toEqual('apptwo'); - }); - it('returns relevant result when query matches description', function() { - var results; - Apps.filter('ever'); - results = getResultsFromDom(); - expect(results.length).toEqual(1); - expect(results[0]).toEqual('somestuff'); - }); - it('returns relevant results when query matches author name', function() { - var results; - Apps.filter('author'); - results = getResultsFromDom(); - expect(results.length).toEqual(4); - expect(results[0]).toEqual('appone'); - expect(results[1]).toEqual('apptwo'); - expect(results[2]).toEqual('appthree'); - expect(results[3]).toEqual('somestuff'); - }); - it('returns relevant result when query matches author name', function() { - var results; - Apps.filter('thor3'); - results = getResultsFromDom(); - expect(results.length).toEqual(1); - expect(results[0]).toEqual('appthree'); - }); - it('returns relevant result when query matches level name', function() { - var results; - Apps.filter('Offic'); - results = getResultsFromDom(); - expect(results.length).toEqual(1); - expect(results[0]).toEqual('appone'); - }); - it('returns relevant result when query matches level name', function() { - var results; - Apps.filter('Appro'); - results = getResultsFromDom(); - expect(results.length).toEqual(1); - expect(results[0]).toEqual('apptwo'); - }); - it('returns relevant result when query matches level name', function() { - var results; - Apps.filter('Exper'); - results = getResultsFromDom(); - expect(results.length).toEqual(2); - expect(results[0]).toEqual('appthree'); - expect(results[1]).toEqual('somestuff'); - }); - }); - - describe('loading categories', function() { - var suite = this; - - beforeEach( function(){ - suite.server = sinon.fakeServer.create(); - }); - - afterEach( function(){ - suite.server.restore(); - }); - - function getResultsFromDom() { - var results = []; - $('#apps-list .section:not(.hidden)').each(function() { - results.push($(this).attr('data-id')); - }); - return results; - } - - it('sorts all applications using the level', function() { - Apps.loadCategory('TestId'); - - suite.server.requests[0].respond( - 200, - { - 'Content-Type': 'application/json' - }, - JSON.stringify({ - apps: [ - { - id: 'foo', - name: 'Foo app', - level: 0 - }, - { - id: 'alpha', - name: 'Alpha app', - level: 300 - }, - { - id: 'nolevel', - name: 'No level' - }, - { - id: 'zork', - name: 'Some famous adventure game', - level: 200 - }, - { - id: 'delta', - name: 'Mathematical symbol', - level: 200 - } - ] - }) - ); - - var results = getResultsFromDom(); - expect(results.length).toEqual(5); - expect(results).toEqual(['alpha', 'delta', 'zork', 'foo', 'nolevel']); - expect(OC.Settings.Apps.State.apps).toEqual({ - 'foo': { - id: 'foo', - name: 'Foo app', - level: 0 - }, - 'alpha': { - id: 'alpha', - name: 'Alpha app', - level: 300 - }, - 'nolevel': { - id: 'nolevel', - name: 'No level' - }, - 'zork': { - id: 'zork', - name: 'Some famous adventure game', - level: 200 - }, - 'delta': { - id: 'delta', - name: 'Mathematical symbol', - level: 200 - } - }); - }); - }); - -}); diff --git a/settings/tests/js/users/deleteHandlerSpec.js b/settings/tests/js/users/deleteHandlerSpec.js deleted file mode 100644 index 371eae5941d..00000000000 --- a/settings/tests/js/users/deleteHandlerSpec.js +++ /dev/null @@ -1,206 +0,0 @@ -/** -* 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('DeleteHandler tests', function() { - var showNotificationSpy; - var hideNotificationSpy; - var clock; - var removeCallback; - var markCallback; - var undoCallback; - - function init(markCallback, removeCallback, undoCallback) { - var handler = new DeleteHandler('dummyendpoint.php', 'paramid', markCallback, removeCallback); - handler.setNotification(OC.Notification, 'dataid', 'removed %oid entry', undoCallback); - return handler; - } - - beforeEach(function() { - showNotificationSpy = sinon.spy(OC.Notification, 'showHtml'); - hideNotificationSpy = sinon.spy(OC.Notification, 'hide'); - clock = sinon.useFakeTimers(); - removeCallback = sinon.stub(); - markCallback = sinon.stub(); - undoCallback = sinon.stub(); - - $('#testArea').append('<div id="notification"></div>'); - }); - afterEach(function() { - showNotificationSpy.restore(); - hideNotificationSpy.restore(); - clock.restore(); - }); - it('shows a notification when marking for delete', function() { - var handler = init(markCallback, removeCallback, undoCallback); - handler.mark('some_uid'); - - expect(showNotificationSpy.calledOnce).toEqual(true); - expect(showNotificationSpy.getCall(0).args[0]).toEqual('removed some_uid entry'); - - expect(markCallback.calledOnce).toEqual(true); - expect(markCallback.getCall(0).args[0]).toEqual('some_uid'); - expect(removeCallback.notCalled).toEqual(true); - expect(undoCallback.notCalled).toEqual(true); - - expect(fakeServer.requests.length).toEqual(0); - }); - it('deletes first entry and reshows notification on second delete', function() { - fakeServer.respondWith(/\/index\.php\/dummyendpoint.php\/some_uid/, [ - 204, - { 'Content-Type': 'application/json' }, - JSON.stringify({status: 'success'}) - ]); - fakeServer.respondWith(/\/index\.php\/dummyendpoint.php\/some_other_uid/, [ - 204, - { 'Content-Type': 'application/json' }, - JSON.stringify({status: 'success'}) - ]); - - var handler = init(markCallback, removeCallback, undoCallback); - handler.mark('some_uid'); - - expect(showNotificationSpy.calledOnce).toEqual(true); - expect(showNotificationSpy.getCall(0).args[0]).toEqual('removed some_uid entry'); - showNotificationSpy.reset(); - - handler.mark('some_other_uid'); - - expect(hideNotificationSpy.calledOnce).toEqual(true); - expect(showNotificationSpy.calledOnce).toEqual(true); - expect(showNotificationSpy.getCall(0).args[0]).toEqual('removed some_other_uid entry'); - - expect(markCallback.calledTwice).toEqual(true); - expect(markCallback.getCall(0).args[0]).toEqual('some_uid'); - expect(markCallback.getCall(1).args[0]).toEqual('some_other_uid'); - // called only once, because it is called once the second user is deleted - expect(removeCallback.calledOnce).toEqual(true); - expect(undoCallback.notCalled).toEqual(true); - - // previous one was delete - expect(fakeServer.requests.length).toEqual(1); - var request = fakeServer.requests[0]; - expect(request.url).toEqual(OC.webroot + '/index.php/dummyendpoint.php/some_uid'); - }); - it('automatically deletes after timeout', function() { - fakeServer.respondWith(/\/index\.php\/dummyendpoint.php\/some_uid/, [ - 204, - { 'Content-Type': 'application/json' }, - JSON.stringify({status: 'success'}) - ]); - - var handler = init(markCallback, removeCallback, undoCallback); - handler.mark('some_uid'); - - clock.tick(5000); - // nothing happens yet - expect(fakeServer.requests.length).toEqual(0); - - clock.tick(3000); - expect(fakeServer.requests.length).toEqual(1); - var request = fakeServer.requests[0]; - expect(request.url).toEqual(OC.webroot + '/index.php/dummyendpoint.php/some_uid'); - }); - it('deletes when deleteEntry is called', function() { - fakeServer.respondWith(/\/index\.php\/dummyendpoint.php\/some_uid/, [ - 200, - { 'Content-Type': 'application/json' }, - JSON.stringify({status: 'success'}) - ]); - var handler = init(markCallback, removeCallback, undoCallback); - handler.mark('some_uid'); - - handler.deleteEntry(); - expect(fakeServer.requests.length).toEqual(1); - var request = fakeServer.requests[0]; - expect(request.url).toEqual(OC.webroot + '/index.php/dummyendpoint.php/some_uid'); - }); - it('cancels deletion when undo is clicked', function() { - var handler = init(markCallback, removeCallback, undoCallback); - handler.setNotification(OC.Notification, 'dataid', 'removed %oid entry <span class="undo">Undo</span>', undoCallback); - handler.mark('some_uid'); - $('#notification .undo').click(); - - expect(undoCallback.calledOnce).toEqual(true); - - // timer was cancelled - clock.tick(10000); - expect(fakeServer.requests.length).toEqual(0); - }); - it('cancels deletion when cancel method is called', function() { - var handler = init(markCallback, removeCallback, undoCallback); - handler.setNotification(OC.Notification, 'dataid', 'removed %oid entry <span class="undo">Undo</span>', undoCallback); - handler.mark('some_uid'); - handler.cancel(); - - // not sure why, seems to be by design - expect(undoCallback.notCalled).toEqual(true); - - // timer was cancelled - clock.tick(10000); - expect(fakeServer.requests.length).toEqual(0); - }); - it('calls removeCallback after successful server side deletion', function() { - fakeServer.respondWith(/\/index\.php\/dummyendpoint.php\/some_uid/, [ - 200, - { 'Content-Type': 'application/json' }, - JSON.stringify({status: 'success'}) - ]); - - var handler = init(markCallback, removeCallback, undoCallback); - handler.mark('some_uid'); - handler.deleteEntry(); - - expect(fakeServer.requests.length).toEqual(1); - var request = fakeServer.requests[0]; - var query = OC.parseQueryString(request.requestBody); - - expect(removeCallback.calledOnce).toEqual(true); - expect(undoCallback.notCalled).toEqual(true); - expect(removeCallback.getCall(0).args[0]).toEqual('some_uid'); - }); - it('calls undoCallback and shows alert after failed server side deletion', function() { - // stub t to avoid extra calls - var tStub = sinon.stub(window, 't').returns('text'); - fakeServer.respondWith(/\/index\.php\/dummyendpoint.php\/some_uid/, [ - 403, - { 'Content-Type': 'application/json' }, - JSON.stringify({status: 'error', data: {message: 'test error'}}) - ]); - - var alertDialogStub = sinon.stub(OC.dialogs, 'alert'); - var handler = init(markCallback, removeCallback, undoCallback); - handler.mark('some_uid'); - handler.deleteEntry(); - - expect(fakeServer.requests.length).toEqual(1); - var request = fakeServer.requests[0]; - var query = OC.parseQueryString(request.requestBody); - - expect(removeCallback.notCalled).toEqual(true); - expect(undoCallback.calledOnce).toEqual(true); - expect(undoCallback.getCall(0).args[0]).toEqual('some_uid'); - - expect(alertDialogStub.calledOnce); - - alertDialogStub.restore(); - tStub.restore(); - }); -}); |