diff options
author | Bernhard Posselt <dev@bernhard-posselt.com> | 2014-05-23 00:44:27 +0200 |
---|---|---|
committer | Bernhard Posselt <dev@bernhard-posselt.com> | 2014-05-23 00:44:27 +0200 |
commit | a0b6fad1ada52457c2c5022fcb7685c1fff16abb (patch) | |
tree | f3d89fcbb203dfa9b5ea2f92213567abf13bb813 /js/tests | |
parent | 7bcdc3d062996918c8cb59bf827a3db3229b8544 (diff) |
add most of the settings except import
Diffstat (limited to 'js/tests')
-rw-r--r-- | js/tests/unit/controller/SettingsControllerSpec.js | 67 | ||||
-rw-r--r-- | js/tests/unit/service/SettingsSpec.js | 22 |
2 files changed, 88 insertions, 1 deletions
diff --git a/js/tests/unit/controller/SettingsControllerSpec.js b/js/tests/unit/controller/SettingsControllerSpec.js new file mode 100644 index 000000000..c438fbcd0 --- /dev/null +++ b/js/tests/unit/controller/SettingsControllerSpec.js @@ -0,0 +1,67 @@ +/** + * ownCloud - News + * + * This file is licensed under the Affero General Public License version 3 or + * later. See the COPYING file. + * + * @author Bernhard Posselt <dev@bernhard-posselt.com> + * @copyright Bernhard Posselt 2014 + */ +describe('SettingsController', () => { + 'use strict'; + + beforeEach(module('News', ($provide) => { + $provide.value('BASE_URL', 'base'); + })); + + + it('should set values', inject(($controller) => { + let Settings = { + set: jasmine.createSpy('Settings'), + get: key => key + }; + + let ctrl = $controller('SettingsController', { + Settings: Settings + }); + + ctrl.toggleSetting(3); + + expect(Settings.set).toHaveBeenCalledWith(3, false); + })); + + + it('should reload page if set needed', inject(($controller) => { + let settings = { + set: jasmine.createSpy('Settings'), + get: key => key + }; + + let route = { + reload: jasmine.createSpy('Route') + }; + + let ctrl = $controller('SettingsController', { + Settings: settings, + $route: route + }); + + ctrl.toggleSetting('showAll'); + ctrl.toggleSetting('oldestFirst'); + + expect(settings.set).toHaveBeenCalledWith('showAll', false); + expect(route.reload).toHaveBeenCalled(); + expect(route.reload.callCount).toBe(2); + })); + + + it('should return feed size', inject(($controller, FeedResource) => { + FeedResource.add({url: 'hi'}); + + let ctrl = $controller('SettingsController', { + FeedResource: FeedResource + }); + + expect(ctrl.feedSize()).toBe(1); + })); +});
\ No newline at end of file diff --git a/js/tests/unit/service/SettingsSpec.js b/js/tests/unit/service/SettingsSpec.js index b76251e3a..06bb365b6 100644 --- a/js/tests/unit/service/SettingsSpec.js +++ b/js/tests/unit/service/SettingsSpec.js @@ -10,7 +10,16 @@ describe('Settings', () => { 'use strict'; - beforeEach(module('News')); + let http; + + beforeEach(module('News', ($provide) => { + $provide.value('BASE_URL', 'base'); + })); + + beforeEach(inject(($httpBackend) => { + http = $httpBackend; + })); + it('should receive default settings', inject((Settings) => { Settings.receive({ @@ -22,9 +31,20 @@ describe('Settings', () => { it('should set values', inject((Settings) => { + http.expectPOST('base/settings', {showAll: true}).respond(200, {}); + Settings.set('showAll', true); + http.flush(); + expect(Settings.get('showAll')).toBe(true); })); + + afterEach(() => { + http.verifyNoOutstandingExpectation(); + http.verifyNoOutstandingRequest(); + }); + + });
\ No newline at end of file |