summaryrefslogtreecommitdiffstats
path: root/js/tests/unit/service/FolderResourceSpec.js
blob: 7c8cd52ddfe4a168086f3e28b1cd59534e3366b5 (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
108
109
110
111
112
113
114
115
116
117
118
119
/**
 * 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('FolderResource', function () {
    'use strict';

    var resource,
        http;

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

    afterEach(function () {
        http.verifyNoOutstandingExpectation();
        http.verifyNoOutstandingRequest();
    });


    beforeEach(inject(function (FolderResource, $httpBackend) {
        resource = FolderResource;
        http = $httpBackend;
        FolderResource.receive([
            {id: 1, name: 'ye'},
            {id: 2, name: 'SYE'},
            {id: 3, name: 'hore', opened: true}
        ]);
    }));


    it ('should delete a folder', inject(function (FolderResource) {
        http.expectDELETE('base/folders/1').respond(200, {});

        FolderResource.delete('ye');

        http.flush();

        expect(FolderResource.size()).toBe(2);
    }));


    it ('should rename a folder', inject(function (FolderResource) {
        http.expectPOST('base/folders/1/rename', {
            folderName: 'heho'
        }).respond(200, {});

        FolderResource.rename('ye', 'heho');

        http.flush();

        expect(FolderResource.get('heho').id).toBe(1);
    }));


    it ('should open a folder', inject(function (FolderResource) {
        http.expectPOST('base/folders/3/open', {
            folderId: 3,
            open: false,
        }).respond(200, {});

        FolderResource.toggleOpen('hore');

        http.flush();

        expect(FolderResource.get('hore').opened).toBe(false);
    }));


    it ('should create a folder', inject(function (FolderResource) {
        http.expectPOST('base/folders', {
            folderName: 'hey'
        }).respond(200, {});

        FolderResource.create('hey');

        http.flush();

        expect(FolderResource.size()).toBe(4);
    }));


    it ('should set a folder error message', inject(function (FolderResource) {
        http.expectPOST('base/folders', {
            folderName: 'hey'
        }).respond(400, {message: 'carramba'});

        FolderResource.create('hey');

        http.flush();

        expect(FolderResource.get('hey').error).toBe('carramba');
    }));


    it ('should undo a delete folder', inject(function (FolderResource) {
        http.expectDELETE('base/folders/1').respond(200, {});

        FolderResource.delete('ye');

        http.flush();


        http.expectPOST('base/folders/1/restore').respond(200, {});

        FolderResource.undoDelete();

        http.flush();

        expect(FolderResource.get('ye').id).toBe(1);
    }));


});