summaryrefslogtreecommitdiffstats
path: root/apps/files_sharing/tests
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files_sharing/tests')
-rw-r--r--apps/files_sharing/tests/js/shareSpec.js114
1 files changed, 105 insertions, 9 deletions
diff --git a/apps/files_sharing/tests/js/shareSpec.js b/apps/files_sharing/tests/js/shareSpec.js
index d2697beeb0b..1b75ad7a9fd 100644
--- a/apps/files_sharing/tests/js/shareSpec.js
+++ b/apps/files_sharing/tests/js/shareSpec.js
@@ -55,7 +55,7 @@ describe('OCA.Sharing.Util tests', function() {
path: '/subdir',
mimetype: 'text/plain',
size: 12,
- permissions: 31,
+ permissions: OC.PERMISSION_ALL,
etag: 'abc',
shareOwner: 'User One',
isShareMountPoint: false
@@ -87,7 +87,7 @@ describe('OCA.Sharing.Util tests', function() {
path: '/subdir',
mimetype: 'text/plain',
size: 12,
- permissions: 31,
+ permissions: OC.PERMISSION_ALL,
etag: 'abc'
}]);
$tr = fileList.$el.find('tbody tr:first');
@@ -106,7 +106,7 @@ describe('OCA.Sharing.Util tests', function() {
path: '/subdir',
mimetype: 'text/plain',
size: 12,
- permissions: 31,
+ permissions: OC.PERMISSION_ALL,
etag: 'abc'
}]);
$tr = fileList.$el.find('tbody tr:first');
@@ -127,7 +127,7 @@ describe('OCA.Sharing.Util tests', function() {
path: '/subdir',
mimetype: 'text/plain',
size: 12,
- permissions: 31,
+ permissions: OC.PERMISSION_ALL,
etag: 'abc'
}]);
$tr = fileList.$el.find('tbody tr:first');
@@ -147,7 +147,7 @@ describe('OCA.Sharing.Util tests', function() {
path: '/subdir',
mimetype: 'text/plain',
size: 12,
- permissions: 31,
+ permissions: OC.PERMISSION_ALL,
shareOwner: 'User One',
etag: 'abc'
}]);
@@ -167,7 +167,7 @@ describe('OCA.Sharing.Util tests', function() {
path: '/subdir',
mimetype: 'text/plain',
size: 12,
- permissions: 31,
+ permissions: OC.PERMISSION_ALL,
recipientsDisplayName: 'User One, User Two',
etag: 'abc'
}]);
@@ -179,6 +179,28 @@ describe('OCA.Sharing.Util tests', function() {
expect(OC.basename(getImageUrl($tr.find('.filename')))).toEqual('folder-shared.svg');
expect($action.find('img').length).toEqual(1);
});
+ it('shows static share text when file shared with user that has no share permission', function() {
+ var $action, $tr;
+ fileList.setFiles([{
+ id: 1,
+ type: 'dir',
+ name: 'One',
+ path: '/subdir',
+ mimetype: 'text/plain',
+ size: 12,
+ permissions: OC.PERMISSION_CREATE,
+ etag: 'abc',
+ shareOwner: 'User One'
+ }]);
+ $tr = fileList.$el.find('tbody tr:first');
+ expect($tr.find('.action-share').length).toEqual(0);
+ $action = $tr.find('.action-share-notification');
+ expect($action.hasClass('permanent')).toEqual(true);
+ expect($action.find('>span').text().trim()).toEqual('Shared by User One');
+ expect(OC.basename($action.find('img').attr('src'))).toEqual('share.svg');
+ expect(OC.basename(getImageUrl($tr.find('.filename')))).toEqual('folder-shared.svg');
+ expect($action.find('img').length).toEqual(1);
+ });
});
describe('Share action', function() {
var showDropDownStub;
@@ -201,7 +223,7 @@ describe('OCA.Sharing.Util tests', function() {
path: '/subdir',
mimetype: 'text/plain',
size: 12,
- permissions: 31,
+ permissions: OC.PERMISSION_ALL,
etag: 'abc'
}]);
$action = fileList.$el.find('tbody tr:first .action-share');
@@ -237,7 +259,7 @@ describe('OCA.Sharing.Util tests', function() {
path: '/subdir',
mimetype: 'text/plain',
size: 12,
- permissions: 31,
+ permissions: OC.PERMISSION_ALL,
etag: 'abc'
}]);
$action = fileList.$el.find('tbody tr:first .action-share');
@@ -273,7 +295,7 @@ describe('OCA.Sharing.Util tests', function() {
path: '/subdir',
mimetype: 'text/plain',
size: 12,
- permissions: 31,
+ permissions: OC.PERMISSION_ALL,
etag: 'abc',
recipients: 'User One, User Two'
}]);
@@ -296,6 +318,80 @@ describe('OCA.Sharing.Util tests', function() {
OC.Share.updateIcon('file', 1);
expect($action.hasClass('permanent')).toEqual(false);
});
+ it('keep share text after updating reshare', function() {
+ var $action, $tr;
+ OC.Share.statuses = {1: {link: false, path: '/subdir'}};
+ fileList.setFiles([{
+ id: 1,
+ type: 'file',
+ name: 'One.txt',
+ path: '/subdir',
+ mimetype: 'text/plain',
+ size: 12,
+ permissions: OC.PERMISSION_ALL,
+ etag: 'abc',
+ shareOwner: 'User One'
+ }]);
+ $action = fileList.$el.find('tbody tr:first .action-share');
+ $tr = fileList.$el.find('tr:first');
+
+ expect($action.hasClass('permanent')).toEqual(true);
+
+ $tr.find('.action-share').click();
+
+ expect(showDropDownStub.calledOnce).toEqual(true);
+
+ // simulate what the dropdown does
+ var itemShares = {};
+ itemShares[OC.Share.SHARE_TYPE_USER] = ['User Two'];
+ OC.Share.itemShares = itemShares;
+ $('#dropdown').trigger(new $.Event('sharesChanged', {itemShares: itemShares}));
+
+ expect($tr.attr('data-share-recipients')).toEqual('User Two');
+
+ OC.Share.updateIcon('file', 1);
+
+ expect($action.hasClass('permanent')).toEqual(true);
+ expect($action.find('>span').text()).toEqual('Shared by User One');
+ expect(OC.basename($action.find('img').attr('src'))).toEqual('share.svg');
+ });
+ it('keep share text after unsharing reshare', function() {
+ var $action, $tr;
+ OC.Share.statuses = {1: {link: false, path: '/subdir'}};
+ fileList.setFiles([{
+ id: 1,
+ type: 'file',
+ name: 'One.txt',
+ path: '/subdir',
+ mimetype: 'text/plain',
+ size: 12,
+ permissions: OC.PERMISSION_ALL,
+ etag: 'abc',
+ shareOwner: 'User One',
+ recipients: 'User Two'
+ }]);
+ $action = fileList.$el.find('tbody tr:first .action-share');
+ $tr = fileList.$el.find('tr:first');
+
+ expect($action.hasClass('permanent')).toEqual(true);
+
+ $tr.find('.action-share').click();
+
+ expect(showDropDownStub.calledOnce).toEqual(true);
+
+ // simulate what the dropdown does
+ var itemShares = {};
+ OC.Share.itemShares = itemShares;
+ $('#dropdown').trigger(new $.Event('sharesChanged', {itemShares: itemShares}));
+
+ expect($tr.attr('data-share-recipients')).not.toBeDefined();
+
+ OC.Share.updateIcon('file', 1);
+
+ expect($action.hasClass('permanent')).toEqual(true);
+ expect($action.find('>span').text()).toEqual('Shared by User One');
+ expect(OC.basename($action.find('img').attr('src'))).toEqual('share.svg');
+ });
});
describe('formatRecipients', function() {
it('returns a single recipient when one passed', function() {