summaryrefslogtreecommitdiffstats
path: root/apps/files/tests
diff options
context:
space:
mode:
authorVincent Petry <pvince81@owncloud.com>2015-01-12 17:54:35 +0100
committerVincent Petry <pvince81@owncloud.com>2015-01-12 17:58:57 +0100
commitef1dd3ea0ae74a72f92ab1c6504cd24a2bd865c9 (patch)
tree322f851da7190d0b2b7a128069dd24992429caae /apps/files/tests
parent331d73c3a37e74f1e322b9bfb239940275422a65 (diff)
downloadnextcloud-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.js36
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'));
});
});
});