Skip to content

Commit

Permalink
Update tests specs to meet new feature implementations
Browse files Browse the repository at this point in the history
  • Loading branch information
felixheidecke committed Nov 2, 2017
1 parent 32c1b46 commit f97b37d
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 56 deletions.
24 changes: 14 additions & 10 deletions core/js/sharedialoglinkshareview.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,19 +22,19 @@
'<label class="public-link-modal--label">Link Name</label>' +
'<input class="public-link-modal--input" type="text" name="linkName" placeholder="{{namePlaceholder}}" value="{{name}}" maxlength="64" />' +
'</div>' +
'{{#if publicUploadPossible}}' +
'<div id="allowPublicRead-{{cid}}" class="public-link-modal--item">' +
'<input type="radio" value="1" name="publicPermissions" id="sharingDialogAllowPublicRead-{{cid}}" class="checkbox publicPermissions publicReadCheckbox" {{#if publicReadSelected}}checked{{/if}} />' +
'<input type="radio" value="{{publicReadValue}}" name="publicPermissions" id="sharingDialogAllowPublicRead-{{cid}}" class="checkbox publicPermissions" {{#if publicReadSelected}}checked{{/if}} />' +
'<label class="bold" for="sharingDialogAllowPublicRead-{{cid}}">{{publicReadLabel}}</label>' +
'<p>{{publicReadDescription}}</p>' +
'</div>' +
'{{#if publicUploadPossible}}' +
'<div id="allowPublicReadWrite-{{cid}}" class="public-link-modal--item">' +
'<input type="radio" value="15" name="publicPermissions" id="sharingDialogAllowPublicReadWrite-{{cid}}" class="checkbox publicPermissions publicReadWriteCheckbox" {{#if publicReadWriteSelected}}checked{{/if}} />' +
'<input type="radio" value="{{publicReadWriteValue}}" name="publicPermissions" id="sharingDialogAllowPublicReadWrite-{{cid}}" class="checkbox publicPermissions" {{#if publicReadWriteSelected}}checked{{/if}} />' +
'<label class="bold" for="sharingDialogAllowPublicReadWrite-{{cid}}">{{publicReadWriteLabel}}</label>' +
'<p>{{publicReadWriteDescription}}</p>' +
'</div>' +
'<div id="allowPublicUploadWrapper-{{cid}}" class="public-link-modal--item">' +
'<input type="radio" value="4" name="publicPermissions" id="sharingDialogAllowPublicUpload-{{cid}}" class="checkbox publicPermissions publicUploadCheckbox" {{#if publicUploadSelected}}checked{{/if}} />' +
'<input type="radio" value="{{publicUploadValue}}" name="publicPermissions" id="sharingDialogAllowPublicUpload-{{cid}}" class="checkbox publicPermissions" {{#if publicUploadSelected}}checked{{/if}} />' +
'<label class="bold" for="sharingDialogAllowPublicUpload-{{cid}}">{{publicUploadLabel}}</label>' +
'<p>{{publicUploadDescription}}</p>' +
'</div>' +
Expand Down Expand Up @@ -99,9 +99,9 @@
* @return {int} permissions
*/
_getPermissions: function() {
var $permissionRadio = this.$('input[name="publicPermissions"]:checked');
var permissions = $permissionRadio.val();
return permissions;
var permissions = this.$('input[name="publicPermissions"]:checked').val();

return (permissions) ? permissions : OC.PERMISSION_READ;
},

_save: function () {
Expand Down Expand Up @@ -230,17 +230,21 @@
passwordLabel : t('core', 'Password'),

publicUploadPossible : this._isPublicUploadPossible(),
publicUploadSelected : this.model.get('permissions') === 4,

publicUploadLabel : t('core', 'Upload only (File Drop)'),
publicUploadDescription : t('core', 'Receive files from others without revealing the contents of the folder.'),
publicUploadValue : OC.PERMISSION_CREATE,
publicUploadSelected : this.model.get('permissions') === OC.PERMISSION_CREATE,

publicReadSelected : this.model.get('permissions') === 1,
publicReadLabel : t('core', 'Read only'),
publicReadDescription : t('core', 'Users can view and download contents.'),
publicReadValue : OC.PERMISSION_READ,
publicReadSelected : this.model.get('permissions') === OC.PERMISSION_READ,

publicReadWriteSelected : this.model.get('permissions') === 15,
publicReadWriteLabel : t('core', 'Read & Write'),
publicReadWriteDescription : t('core', 'Users can view, download, edit and upload contents.'),
publicReadWriteValue : OC.PERMISSION_READ | OC.PERMISSION_UPDATE | OC.PERMISSION_CREATE | OC.PERMISSION_DELETE,
publicReadWriteSelected : this.model.get('permissions') >= (OC.PERMISSION_READ | OC.PERMISSION_UPDATE | OC.PERMISSION_CREATE | OC.PERMISSION_DELETE),

isMailEnabled: showEmailField
}));
Expand Down
62 changes: 16 additions & 46 deletions core/js/tests/specs/sharedialoglinkshareviewSpec.js
Original file line number Diff line number Diff line change
Expand Up @@ -135,18 +135,18 @@ describe('OC.Share.ShareDialogLinkShareView', function() {
publicUploadConfigStub.returns(true);
view.render();
expect(view.$('[name=linkName]').val()).toEqual('first link');
expect(view.$('.publicUploadCheckbox').prop('checked')).toEqual(false);
expect(view.$('.publicPermissions').prop('checked')).toEqual(true);
expect(view.$('.linkPassText').val()).toEqual('');
expect(view.$('.expirationDate').val()).toEqual('');

model.set({
password: 'set',
expireDate: '2017-10-12',
permissions: OC.PERMISSION_ALL
permissions: OC.PERMISSION_CREATE
});
view.render();

expect(view.$('.publicUploadCheckbox').prop('checked')).toEqual(true);
expect(parseInt(view.$('.publicPermissions:checked').val())).toBe(OC.PERMISSION_CREATE);
expect(view.$('.linkPassText').val()).toEqual('');
expect(view.$('.expirationDate').val()).toEqual('12-10-2017');
});
Expand Down Expand Up @@ -208,37 +208,15 @@ describe('OC.Share.ShareDialogLinkShareView', function() {
permissions: OC.PERMISSION_READ | OC.PERMISSION_CREATE
});
view.render();
expect(view.$('.showListingCheckbox').length).toEqual(1);
expect(view.$('.showListingCheckbox').is(':checked')).toEqual(true);
expect(view.$('.showListingCheckbox').is(':disabled')).toEqual(false);
expect(view.$('.publicPermissions').length).toEqual(3);
});
it('renders listing checkbox disabled when public upload is disallowed by user', function() {
it('renders checkbox disabled when public upload is disallowed by user', function() {
publicUploadConfigStub.returns(true);
model.set({
permissions: OC.PERMISSION_READ
});
view.render();
expect(view.$('.showListingCheckbox').length).toEqual(1);
expect(view.$('.showListingCheckbox').is(':checked')).toEqual(true);
expect(view.$('.showListingCheckbox').is(':disabled')).toEqual(true);
});
it('disables listing checkbox when ticking public upload', function() {
publicUploadConfigStub.returns(true);
model.set({
permissions: OC.PERMISSION_CREATE
});
view.render();

expect(view.$('.showListingCheckbox').length).toEqual(1);
expect(view.$('.showListingCheckbox').is(':checked')).toEqual(false);
expect(view.$('.showListingCheckbox').is(':disabled')).toEqual(false);

expect(view.$('.publicUploadCheckbox').length).toEqual(1);
expect(view.$('.publicUploadCheckbox').is(':checked')).toEqual(true);
view.$('.publicUploadCheckbox').trigger(new $.Event('click'));
expect(view.$('.publicUploadCheckbox').is(':checked')).toEqual(false);
expect(view.$('.showListingCheckbox').is(':checked')).toEqual(true);
expect(view.$('.showListingCheckbox').is(':disabled')).toEqual(true);
expect(view.$('.showListingCheckbox').length).toEqual(0);
});
});
describe('password logic', function() {
Expand Down Expand Up @@ -293,7 +271,7 @@ describe('OC.Share.ShareDialogLinkShareView', function() {
name: 'first link',
expireDate: '',
password: 'newpassword',
permissions: OC.PERMISSION_READ,
permissions: OC.PERMISSION_READ.toString(),
shareType: OC.Share.SHARE_TYPE_LINK
});
});
Expand All @@ -306,7 +284,7 @@ describe('OC.Share.ShareDialogLinkShareView', function() {
expect(saveStub.getCall(0).args[0]).toEqual({
name: 'first link',
expireDate: '',
permissions: OC.PERMISSION_READ,
permissions: OC.PERMISSION_READ.toString(),
shareType: OC.Share.SHARE_TYPE_LINK
});
});
Expand Down Expand Up @@ -394,30 +372,22 @@ describe('OC.Share.ShareDialogLinkShareView', function() {
});

var dataProvider = [
// globally enabled
[true, true, true, OC.PERMISSION_READ | OC.PERMISSION_CREATE | OC.PERMISSION_UPDATE | OC.PERMISSION_DELETE],
[true, true, false, OC.PERMISSION_CREATE],
[true, false, true, OC.PERMISSION_READ],
[true, false, false, OC.PERMISSION_READ],

// globally disabled, permission stays regardless
[false, false, false, OC.PERMISSION_READ],
[false, true, false, OC.PERMISSION_READ],
[false, true, false, OC.PERMISSION_READ],
[false, true, true, OC.PERMISSION_READ],
[true, OC.PERMISSION_READ | OC.PERMISSION_CREATE | OC.PERMISSION_UPDATE | OC.PERMISSION_DELETE],
[true, OC.PERMISSION_CREATE],
[true, OC.PERMISSION_READ],
[false, OC.PERMISSION_READ], // globally disabled, permission stays regardless
];

function testPermissions(globalEnabled, uploadChecked, listingChecked, expectedPerms) {
function testPermissions(globalEnabled, expectedPerms) {
expectedPerms = expectedPerms.toString();
it('sets permissions to ' + expectedPerms +
' if global enabled is ' + globalEnabled +
' and public upload checkbox is ' + uploadChecked +
' and listing checkbox is ' + listingChecked, function() {
' and corresponding radiobutton is checked', function() {

publicUploadConfigStub.returns(globalEnabled);
view.render();

view.$('.publicUploadCheckbox').prop('checked', uploadChecked);
view.$('.showListingCheckbox').prop('checked', listingChecked);
view.$('input[name="publicPermissions"]:checked').val(expectedPerms);

view._save();

Expand Down

0 comments on commit f97b37d

Please sign in to comment.