summaryrefslogtreecommitdiffstats
path: root/js/tests/services/businesslayer/subsriptionsbusinesslayerSpec.coffee
diff options
context:
space:
mode:
authorBernhard Posselt <nukeawhale@gmail.com>2013-04-15 16:02:32 +0200
committerBernhard Posselt <nukeawhale@gmail.com>2013-04-15 16:02:32 +0200
commit464ff6c4c1bda3edbd0f132c4d3d866539d3a117 (patch)
tree96b8fd57e24ebaab762a190a933cd98e1c7a4881 /js/tests/services/businesslayer/subsriptionsbusinesslayerSpec.coffee
parent89c31ab5fcb2f931fecc5ce82608ff7c8129510a (diff)
renamed bl to businesslayer, handle exception in update routine, fix #69
Diffstat (limited to 'js/tests/services/businesslayer/subsriptionsbusinesslayerSpec.coffee')
-rw-r--r--js/tests/services/businesslayer/subsriptionsbusinesslayerSpec.coffee83
1 files changed, 83 insertions, 0 deletions
diff --git a/js/tests/services/businesslayer/subsriptionsbusinesslayerSpec.coffee b/js/tests/services/businesslayer/subsriptionsbusinesslayerSpec.coffee
new file mode 100644
index 000000000..0047f9437
--- /dev/null
+++ b/js/tests/services/businesslayer/subsriptionsbusinesslayerSpec.coffee
@@ -0,0 +1,83 @@
+###
+
+ownCloud - News
+
+@author Bernhard Posselt
+@copyright 2012 Bernhard Posselt nukeawhale@gmail.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 'SubscriptionsBusinessLayer', ->
+
+ beforeEach module 'News'
+
+ beforeEach =>
+ angular.module('News').factory 'Persistence', =>
+ @setFeedReadSpy = jasmine.createSpy('setFeedRead')
+ @persistence = {
+ setFeedRead: @setFeedReadSpy
+ }
+
+ beforeEach inject (@SubscriptionsBusinessLayer, @ShowAll, @FeedModel,
+ @ActiveFeed, @FeedType) =>
+ @ShowAll.setShowAll(false)
+ @ActiveFeed.handle({type: @FeedType.Feed, id:0})
+
+
+ it 'should be visible shows all items is set to true and there are feeds', =>
+ @FeedModel.add({id: 3, unreadCount: 5})
+
+ expect(@SubscriptionsBusinessLayer.isVisible()).toBe(true)
+
+ @ShowAll.setShowAll(true)
+ expect(@SubscriptionsBusinessLayer.isVisible()).toBe(true)
+
+
+ it 'should not be visible if there are no feeds', =>
+ expect(@SubscriptionsBusinessLayer.isVisible()).toBe(false)
+
+ @ShowAll.setShowAll(true)
+ expect(@SubscriptionsBusinessLayer.isVisible()).toBe(false)
+
+
+ it 'should not be visible if showall is false + there are no unread', =>
+ @FeedModel.add({id: 3, unreadCount: 0})
+ expect(@SubscriptionsBusinessLayer.isVisible()).toBe(false)
+
+
+ it 'should always be visible if its the active feed', =>
+ @ActiveFeed.handle({type: @FeedType.Subscriptions, id:0})
+ expect(@SubscriptionsBusinessLayer.isVisible()).toBe(true)
+
+
+ it 'should mark all feeds as read', =>
+ item = {id: 3, unreadCount: 132}
+ @FeedModel.add(item)
+
+ @SubscriptionsBusinessLayer.markAllRead()
+
+ expect(item.unreadCount).toBe(0)
+ expect(@setFeedReadSpy).toHaveBeenCalled()
+
+
+ it 'should get the correct unread count', =>
+ @FeedModel.add({id: 3, unreadCount: 132, urlHash: 'hoho'})
+ @FeedModel.add({id: 4, unreadCount: 12, urlHash: 'hohod'})
+
+ expect(@SubscriptionsBusinessLayer.getUnreadCount()).toBe(144)
+
+