summaryrefslogtreecommitdiffstats
path: root/js/tests
diff options
context:
space:
mode:
authorBernhard Posselt <dev@bernhard-posselt.com>2014-05-23 00:44:27 +0200
committerBernhard Posselt <dev@bernhard-posselt.com>2014-05-23 00:44:27 +0200
commita0b6fad1ada52457c2c5022fcb7685c1fff16abb (patch)
treef3d89fcbb203dfa9b5ea2f92213567abf13bb813 /js/tests
parent7bcdc3d062996918c8cb59bf827a3db3229b8544 (diff)
add most of the settings except import
Diffstat (limited to 'js/tests')
-rw-r--r--js/tests/unit/controller/SettingsControllerSpec.js67
-rw-r--r--js/tests/unit/service/SettingsSpec.js22
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