summaryrefslogtreecommitdiffstats
path: root/js/tests/unit/service/FeedResourceSpec.js
blob: 5187435f0156f8397b697c60b8f1f7f5934cf678 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
/**
 * 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('FeedResource', () => {
    'use strict';

    let resource;

    beforeEach(module('News', ($provide) => {
        $provide.value('BASE_URL', 'base');
    }));


    beforeEach(inject((FeedResource) => {
        resource = FeedResource;
        FeedResource.receive([
            {id: 1, folderId: 3, url: 'ye', unreadCount: 45},
            {id: 2, folderId: 4, url: 'sye', unreadCount: 25},
            {id: 3, folderId: 3, url: '1sye', unreadCount: 0}
        ]);
    }));

    it('should mark all read', inject((FeedResource) => {

        FeedResource.markRead();

        expect(FeedResource.getUnreadCount()).toBe(0);
    }));

    it('should mark a feed read', inject((FeedResource) => {

        FeedResource.markFeedRead(1);

        expect(FeedResource.get('ye').unreadCount).toBe(0);
    }));


    it('should mark an item read', inject((FeedResource) => {

        FeedResource.markItemOfFeedRead(1);

        expect(FeedResource.get('ye').unreadCount).toBe(44);
    }));

    it('should mark an item unread', inject((FeedResource) => {

        FeedResource.markItemOfFeedUnread(1);

        expect(FeedResource.get('ye').unreadCount).toBe(46);
    }));


    it('should get all of folder', inject((FeedResource) => {

        let folders = FeedResource.getByFolderId(3);

        expect(folders.length).toBe(2);
    }));



    it('should cache unreadcount', inject((FeedResource) => {
        expect(FeedResource.getUnreadCount()).toBe(70);

        FeedResource.markItemOfFeedRead(3);
        expect(FeedResource.getUnreadCount()).toBe(69);

        FeedResource.markItemOfFeedUnread(3);
        expect(FeedResource.getUnreadCount()).toBe(70);

        FeedResource.markFolderRead(3);
        expect(FeedResource.getUnreadCount()).toBe(25);

        FeedResource.markRead();
        expect(FeedResource.getUnreadCount()).toBe(0);
    }));


    it('should cache folder unreadcount', inject((FeedResource) => {
        expect(FeedResource.getFolderUnreadCount(3)).toBe(45);

        FeedResource.markItemOfFeedRead(3);
        expect(FeedResource.getFolderUnreadCount(3)).toBe(44);

        FeedResource.markItemOfFeedUnread(3);
        expect(FeedResource.getFolderUnreadCount(3)).toBe(45);

        FeedResource.markFolderRead(3);
        expect(FeedResource.getFolderUnreadCount(3)).toBe(0);

        FeedResource.markRead();
        expect(FeedResource.getFolderUnreadCount(4)).toBe(0);
    }));


    it('should cache unreadcount', inject((FeedResource) => {
        FeedResource.markItemsOfFeedsRead([1, 2]);
        expect(FeedResource.getUnreadCount()).toBe(68);
    }));

});