diff options
author | Vincent Petry <pvince81@owncloud.com> | 2015-01-12 17:54:35 +0100 |
---|---|---|
committer | Vincent Petry <pvince81@owncloud.com> | 2015-01-12 17:58:57 +0100 |
commit | ef1dd3ea0ae74a72f92ab1c6504cd24a2bd865c9 (patch) | |
tree | 322f851da7190d0b2b7a128069dd24992429caae /apps/files/tests | |
parent | 331d73c3a37e74f1e322b9bfb239940275422a65 (diff) | |
download | nextcloud-server-ef1dd3ea0ae74a72f92ab1c6504cd24a2bd865c9.tar.gz nextcloud-server-ef1dd3ea0ae74a72f92ab1c6504cd24a2bd865c9.zip |
Properly update internal file info with updated tags
Whenever tags are updated, they need to be updated in the file list's
file info array as well.
This commit also adds unit tests and makes sure that whichever tags are
sent back by the server after update are used when updating
attributes/fileinfo.
Diffstat (limited to 'apps/files/tests')
-rw-r--r-- | apps/files/tests/js/tagspluginspec.js | 36 |
1 files changed, 32 insertions, 4 deletions
diff --git a/apps/files/tests/js/tagspluginspec.js b/apps/files/tests/js/tagspluginspec.js index 66240575a5c..5309973cf4f 100644 --- a/apps/files/tests/js/tagspluginspec.js +++ b/apps/files/tests/js/tagspluginspec.js @@ -77,11 +77,39 @@ describe('OCA.Files.TagsPlugin tests', function() { }); describe('Applying tags', function() { it('sends request to server and updates icon', function() { - // TODO + var request; fileList.setFiles(testFiles); - }); - it('sends all tags to server when applyFileTags() is called ', function() { - // TODO + $tr = fileList.$el.find('tbody tr:first'); + $action = $tr.find('.action-favorite'); + $action.click(); + + expect(fakeServer.requests.length).toEqual(1); + var request = fakeServer.requests[0]; + expect(JSON.parse(request.requestBody)).toEqual({ + tags: ['tag1', 'tag2', OC.TAG_FAVORITE] + }); + request.respond(200, {'Content-Type': 'application/json'}, JSON.stringify({ + tags: ['tag1', 'tag2', 'tag3', OC.TAG_FAVORITE] + })); + + expect($tr.attr('data-favorite')).toEqual('true'); + expect($tr.attr('data-tags').split('|')).toEqual(['tag1', 'tag2', 'tag3', OC.TAG_FAVORITE]); + expect(fileList.files[0].tags).toEqual(['tag1', 'tag2', 'tag3', OC.TAG_FAVORITE]); + expect($action.find('img').attr('src')).toEqual(OC.imagePath('core', 'actions/starred')); + + $action.click(); + request = fakeServer.requests[1]; + expect(JSON.parse(request.requestBody)).toEqual({ + tags: ['tag1', 'tag2', 'tag3'] + }); + request.respond(200, {'Content-Type': 'application/json'}, JSON.stringify({ + tags: ['tag1', 'tag2', 'tag3'] + })); + + expect($tr.attr('data-favorite')).toEqual('false'); + expect($tr.attr('data-tags').split('|')).toEqual(['tag1', 'tag2', 'tag3']); + expect(fileList.files[0].tags).toEqual(['tag1', 'tag2', 'tag3']); + expect($action.find('img').attr('src')).toEqual(OC.imagePath('core', 'actions/star')); }); }); }); |