summaryrefslogtreecommitdiffstats
path: root/js/build/tests/services/models/itemmodelSpec.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/build/tests/services/models/itemmodelSpec.js')
-rw-r--r--js/build/tests/services/models/itemmodelSpec.js160
1 files changed, 160 insertions, 0 deletions
diff --git a/js/build/tests/services/models/itemmodelSpec.js b/js/build/tests/services/models/itemmodelSpec.js
new file mode 100644
index 000000000..929163689
--- /dev/null
+++ b/js/build/tests/services/models/itemmodelSpec.js
@@ -0,0 +1,160 @@
+// Generated by CoffeeScript 1.6.3
+/*
+
+ownCloud - News
+
+@author Bernhard Posselt
+@copyright 2012 Bernhard Posselt dev@bernhard-posselt.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/>.
+*/
+
+
+(function() {
+ describe('ItemModel', function() {
+ var _this = this;
+ beforeEach(module('News'));
+ beforeEach(inject(function(ItemModel, _Model) {
+ _this.ItemModel = ItemModel;
+ _this._Model = _Model;
+ }));
+ it('should extend model', function() {
+ return expect(_this.ItemModel instanceof _this._Model).toBeTruthy();
+ });
+ it('should also update items with the same feed id and guidhash', function() {
+ var item1, item2, item3, item4;
+ item1 = {
+ id: 4,
+ guidHash: 'abc',
+ feedId: 3
+ };
+ _this.ItemModel.add(item1);
+ expect(_this.ItemModel.getById(4)).toBe(item1);
+ item2 = {
+ id: 4,
+ guidHash: 'abc',
+ feedId: 4
+ };
+ _this.ItemModel.add(item2);
+ expect(_this.ItemModel.size()).toBe(1);
+ item3 = {
+ id: 5,
+ guidHash: 'abc',
+ feedId: 6
+ };
+ _this.ItemModel.add(item3);
+ expect(_this.ItemModel.size()).toBe(2);
+ item4 = {
+ id: 3,
+ guidHash: 'abc',
+ feedId: 6
+ };
+ _this.ItemModel.add(item4);
+ expect(_this.ItemModel.getById(3).guidHash).toBe(item4.guidHash);
+ expect(_this.ItemModel.getById(3).feedId).toBe(item4.feedId);
+ expect(_this.ItemModel.getById(3).id).toBe(item4.id);
+ expect(_this.ItemModel.getById(5)).toBe(void 0);
+ return expect(_this.ItemModel.size()).toBe(2);
+ });
+ it('should also remove the feed from the url cache when its removed', function() {
+ var item;
+ item = {
+ id: 4,
+ guidHash: 'abc',
+ feedId: 3
+ };
+ _this.ItemModel.add(item);
+ expect(_this.ItemModel.getById(4)).toBe(item);
+ expect(_this.ItemModel.getByGuidHashAndFeedId('abc', 3)).toBe(item);
+ _this.ItemModel.removeById(4);
+ return expect(_this.ItemModel.getByGuidHashAndFeedId('abc', 3)).toBe(void 0);
+ });
+ it('should bind the correct isRead() method to the item', function() {
+ var item;
+ item = {
+ id: 3,
+ guidHash: 'abc',
+ feedId: 6,
+ status: 16
+ };
+ _this.ItemModel.add(item);
+ item.setRead();
+ return expect(_this.ItemModel.getById(3).isRead()).toBe(true);
+ });
+ it('should bind the correct set unread method to the item', function() {
+ var item;
+ item = {
+ id: 3,
+ guidHash: 'abc',
+ feedId: 6,
+ status: 16
+ };
+ _this.ItemModel.add(item);
+ item.setUnread();
+ return expect(_this.ItemModel.getById(3).isRead()).toBe(false);
+ });
+ it('should bind the correct set starred method to the item', function() {
+ var item;
+ item = {
+ id: 3,
+ guidHash: 'abc',
+ feedId: 6,
+ status: 16
+ };
+ _this.ItemModel.add(item);
+ item.setStarred();
+ return expect(_this.ItemModel.getById(3).isStarred()).toBe(true);
+ });
+ it('should bind the correct set unstarred method to the item', function() {
+ var item;
+ item = {
+ id: 3,
+ guidHash: 'abc',
+ feedId: 6,
+ status: 16
+ };
+ _this.ItemModel.add(item);
+ item.setUnstarred();
+ return expect(_this.ItemModel.getById(3).isStarred()).toBe(false);
+ });
+ return it('should return the lowest id', function() {
+ _this.ItemModel.add({
+ id: 2,
+ guidHash: 'abc',
+ feedId: 2,
+ status: 16
+ });
+ _this.ItemModel.add({
+ id: 3,
+ guidHash: 'abcd',
+ feedId: 2,
+ status: 16
+ });
+ _this.ItemModel.add({
+ id: 1,
+ guidHash: 'abce',
+ feedId: 2,
+ status: 16
+ });
+ _this.ItemModel.add({
+ id: 6,
+ guidHash: 'abcf',
+ feedId: 2,
+ status: 16
+ });
+ return expect(_this.ItemModel.getLowestId()).toBe(1);
+ });
+ });
+
+}).call(this);