summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBernhard Posselt <dev@bernhard-posselt.com>2014-05-19 16:21:17 +0200
committerBernhard Posselt <dev@bernhard-posselt.com>2014-05-19 16:21:17 +0200
commitb5d5b2b22a2b4aabd4c9bb5c8b89aae10facc735 (patch)
tree39d71ee89d973f6151ed013edc8d5ca3deff160f
parent274034a63374434298204db21e6d6513690e6eaf (diff)
bind items to controller
-rw-r--r--js/build/app.js24
-rw-r--r--js/controller/ContentController.js13
-rw-r--r--js/model/Model.js4
-rw-r--r--js/tests/e2e/main.js6
-rw-r--r--js/tests/unit/controller/ContentControllerSpec.js42
-rw-r--r--js/tests/unit/controller/ItemControllerSpec.js26
-rw-r--r--js/tests/unit/models/ModelSpec.js22
7 files changed, 102 insertions, 35 deletions
diff --git a/js/build/app.js b/js/build/app.js
index ffb062350..3f78f4647 100644
--- a/js/build/app.js
+++ b/js/build/app.js
@@ -190,10 +190,23 @@ app.controller('AppController', [
};
}
]);
-app.controller('ItemController', function () {
- 'use strict';
- console.log('here');
-});
+app.controller('ContentController', [
+ 'Publisher',
+ 'Feed',
+ 'Item',
+ 'data',
+ function (Publisher, Feed, Item, data) {
+ 'use strict';
+ // distribute data to models based on key
+ Publisher.publishAll(data);
+ this.getItems = function () {
+ return Item.getAll();
+ };
+ this.getFeeds = function () {
+ return Feed.getAll();
+ };
+ }
+]);
app.controller('NavigationController', function () {
'use strict';
console.log('here');
@@ -371,6 +384,9 @@ app.factory('Model', function () {
while (this.values.length > 0) {
this.values.pop();
}
+ },
+ getAll: function () {
+ return this.values;
}
};
return Model;
diff --git a/js/controller/ContentController.js b/js/controller/ContentController.js
index ffada2a5c..51309a93d 100644
--- a/js/controller/ContentController.js
+++ b/js/controller/ContentController.js
@@ -7,8 +7,17 @@
* @author Bernhard Posselt <dev@bernhard-posselt.com>
* @copyright Bernhard Posselt 2014
*/
-app.controller('ItemController', function () {
+app.controller('ContentController', function (Publisher, Feed, Item, data) {
'use strict';
- console.log('here');
+ // distribute data to models based on key
+ Publisher.publishAll(data);
+
+ this.getItems = function () {
+ return Item.getAll();
+ };
+
+ this.getFeeds = function () {
+ return Feed.getAll();
+ };
}); \ No newline at end of file
diff --git a/js/model/Model.js b/js/model/Model.js
index dddede788..d43a40f1d 100644
--- a/js/model/Model.js
+++ b/js/model/Model.js
@@ -81,6 +81,10 @@ app.factory('Model', function () {
while (this.values.length > 0) {
this.values.pop();
}
+ },
+
+ getAll: function () {
+ return this.values;
}
};
diff --git a/js/tests/e2e/main.js b/js/tests/e2e/main.js
index 5b0ea5d82..b76110c65 100644
--- a/js/tests/e2e/main.js
+++ b/js/tests/e2e/main.js
@@ -27,9 +27,9 @@ describe('news page', function () {
firstRun = browser.findElement(By.id('first-run'));
- firstRun.findElement(By.tagName('h1')).then(function (greeting) {
- expect(greeting.getText()).toBe('Welcome to the ownCloud News app!');
- });
+ //firstRun.findElement(By.tagName('h1')).then(function (greeting) {
+ // expect(greeting.getText()).toBe('Welcome to the ownCloud News app!');
+ //});
expect(firstRun.isDisplayed()).toBe(true);
});
diff --git a/js/tests/unit/controller/ContentControllerSpec.js b/js/tests/unit/controller/ContentControllerSpec.js
new file mode 100644
index 000000000..9e3693e86
--- /dev/null
+++ b/js/tests/unit/controller/ContentControllerSpec.js
@@ -0,0 +1,42 @@
+/**
+ * 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('ContentController', function () {
+ 'use strict';
+
+ beforeEach(module('News'));
+
+
+ it('should publish data to models', inject(function ($controller, Publisher, Feed, Item) {
+ Publisher.subscribe(Item).toChannels('items');
+ Publisher.subscribe(Feed).toChannels('feeds');
+
+ var controller = $controller('ContentController', {
+ data: {
+ 'items': [
+ {
+ id: 3
+ },
+ {
+ id: 4
+ }
+ ],
+ 'feeds': [
+ {
+ url: 'hi'
+ }
+ ]
+ }
+ });
+
+ expect(controller.getItems().length).toBe(2);
+ expect(controller.getFeeds().length).toBe(1);
+ }));
+
+});
diff --git a/js/tests/unit/controller/ItemControllerSpec.js b/js/tests/unit/controller/ItemControllerSpec.js
deleted file mode 100644
index cf0eb0d4d..000000000
--- a/js/tests/unit/controller/ItemControllerSpec.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/**
- * 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('ItemController', function () {
- 'use strict';
-
- var controller;
-
- beforeEach(module('News'));
-
- beforeEach(inject(function ($controller) {
- controller = $controller;
- }));
-
-
- it('should ', function () {
- expect(controller).toBeDefined();
- });
-
-}); \ No newline at end of file
diff --git a/js/tests/unit/models/ModelSpec.js b/js/tests/unit/models/ModelSpec.js
index 57b0f422c..6e1d0791b 100644
--- a/js/tests/unit/models/ModelSpec.js
+++ b/js/tests/unit/models/ModelSpec.js
@@ -126,4 +126,26 @@ describe('Model', function () {
expect(childModel.size()).toBe(0);
});
+
+ it('should get all models', function () {
+ var object1,
+ object2;
+
+ object1 = {
+ id: 3,
+ name: 'test',
+ test: 'ho'
+ };
+
+ object2 = {
+ id: 4,
+ name: 'test2'
+ };
+
+ childModel.add(object1);
+ childModel.add(object2);
+
+ expect(childModel.getAll()[1].id).toBe(4);
+ });
+
}); \ No newline at end of file