summaryrefslogtreecommitdiffstats
path: root/core/js/tests
diff options
context:
space:
mode:
authorMorris Jobke <hey@morrisjobke.de>2018-11-01 22:36:09 +0100
committerGitHub <noreply@github.com>2018-11-01 22:36:09 +0100
commitf28691c26edb5b6f01330946445316d25d175fcb (patch)
tree77bc0b87e611677611750cd668be7e106a8b84a5 /core/js/tests
parent35e3d40e803653e2fdfcd775eefc2d8a9a183d80 (diff)
parent876d6ec8e6b1e38215659fd606b7d7022bdb8460 (diff)
downloadnextcloud-server-f28691c26edb5b6f01330946445316d25d175fcb.tar.gz
nextcloud-server-f28691c26edb5b6f01330946445316d25d175fcb.zip
Merge pull request #11844 from nextcloud/multiple-link-shares
allow to create multiple link shares via share api
Diffstat (limited to 'core/js/tests')
-rw-r--r--core/js/tests/specHelper.js2
-rw-r--r--core/js/tests/specs/sharedialoglinkshareview.js46
-rw-r--r--core/js/tests/specs/sharedialogshareelistview.js2
-rw-r--r--core/js/tests/specs/sharedialogviewSpec.js49
-rw-r--r--core/js/tests/specs/shareitemmodelSpec.js45
5 files changed, 75 insertions, 69 deletions
diff --git a/core/js/tests/specHelper.js b/core/js/tests/specHelper.js
index f2fc2888448..45a0f04db00 100644
--- a/core/js/tests/specHelper.js
+++ b/core/js/tests/specHelper.js
@@ -103,6 +103,8 @@ window.oc_appconfig = {
window.oc_defaults = {
docPlaceholderUrl: 'https://docs.example.org/PLACEHOLDER'
};
+window.oc_capabilities = {
+}
/* jshint camelcase: true */
diff --git a/core/js/tests/specs/sharedialoglinkshareview.js b/core/js/tests/specs/sharedialoglinkshareview.js
index d8dec3968e3..f5fe8725c03 100644
--- a/core/js/tests/specs/sharedialoglinkshareview.js
+++ b/core/js/tests/specs/sharedialoglinkshareview.js
@@ -81,12 +81,12 @@ describe('OC.Share.ShareDialogLinkShareView', function () {
// Needed to render the view
configModel.isShareWithLinkAllowed.returns(true);
- // Setting the share also triggers the rendering
shareModel.set({
- linkShare: {
- isLinkShare: true,
- }
+ linkShares: [{
+ id: 123
+ }]
});
+ view.render();
$hideDownloadCheckbox = view.$el.find('.hideDownloadCheckbox');
$workingIcon = $hideDownloadCheckbox.prev('.icon-loading-small');
@@ -119,11 +119,12 @@ describe('OC.Share.ShareDialogLinkShareView', function () {
it('checkbox is checked when the setting is enabled', function () {
shareModel.set({
- linkShare: {
- isLinkShare: true,
+ linkShares: [{
+ id: 123,
hideDownload: true
- }
+ }]
});
+ view.render();
$hideDownloadCheckbox = view.$el.find('.hideDownloadCheckbox');
@@ -141,16 +142,17 @@ describe('OC.Share.ShareDialogLinkShareView', function () {
$hideDownloadCheckbox.change();
expect($workingIcon.hasClass('hidden')).toBeFalsy();
- expect(shareModel.saveLinkShare.withArgs({ hideDownload: true }).calledOnce).toBeTruthy();
+ expect(shareModel.saveLinkShare.withArgs({ hideDownload: true, cid: 123 }).calledOnce).toBeTruthy();
});
it('disables the setting if clicked when checked', function () {
shareModel.set({
- linkShare: {
- isLinkShare: true,
+ linkShares: [{
+ id: 123,
hideDownload: true
- }
+ }]
});
+ view.render();
$hideDownloadCheckbox = view.$el.find('.hideDownloadCheckbox');
$workingIcon = $hideDownloadCheckbox.prev('.icon-loading-small');
@@ -161,7 +163,7 @@ describe('OC.Share.ShareDialogLinkShareView', function () {
$hideDownloadCheckbox.change();
expect($workingIcon.hasClass('hidden')).toBeFalsy();
- expect(shareModel.saveLinkShare.withArgs({ hideDownload: false }).calledOnce).toBeTruthy();
+ expect(shareModel.saveLinkShare.withArgs({ hideDownload: false, cid: 123 }).calledOnce).toBeTruthy();
});
});
@@ -176,13 +178,13 @@ describe('OC.Share.ShareDialogLinkShareView', function () {
// Needed to render the view
configModel.isShareWithLinkAllowed.returns(true);
- // Setting the share also triggers the rendering
shareModel.set({
- linkShare: {
- isLinkShare: true,
+ linkShares: [{
+ id: 123,
password: 'password'
- }
+ }]
});
+ view.render();
var $passwordDiv = view.$el.find('#linkPass');
$passwordText = view.$el.find('.linkPassText');
@@ -202,17 +204,17 @@ describe('OC.Share.ShareDialogLinkShareView', function () {
});
it('shows the working icon when called', function () {
- view.onPasswordEntered();
+ view.onPasswordEntered({target: view.$el.find('.linkPassText')});
expect($workingIcon.hasClass('hidden')).toBeFalsy();
- expect(shareModel.saveLinkShare.withArgs({ password: 'myPassword' }).calledOnce).toBeTruthy();
+ expect(shareModel.saveLinkShare.withArgs({ password: 'myPassword', cid: 123 }).calledOnce).toBeTruthy();
});
it('hides the working icon when saving the password succeeds', function () {
- view.onPasswordEntered();
+ view.onPasswordEntered({target: view.$el.find('.linkPassText')});
expect($workingIcon.hasClass('hidden')).toBeFalsy();
- expect(shareModel.saveLinkShare.withArgs({ password: 'myPassword' }).calledOnce).toBeTruthy();
+ expect(shareModel.saveLinkShare.withArgs({ password: 'myPassword', cid: 123 }).calledOnce).toBeTruthy();
shareModel.saveLinkShare.yieldTo("complete", [shareModel]);
@@ -220,10 +222,10 @@ describe('OC.Share.ShareDialogLinkShareView', function () {
});
it('hides the working icon when saving the password fails', function () {
- view.onPasswordEntered();
+ view.onPasswordEntered({target: view.$el.find('.linkPassText')});
expect($workingIcon.hasClass('hidden')).toBeFalsy();
- expect(shareModel.saveLinkShare.withArgs({ password: 'myPassword' }).calledOnce).toBeTruthy();
+ expect(shareModel.saveLinkShare.withArgs({ password: 'myPassword', cid: 123 }).calledOnce).toBeTruthy();
shareModel.saveLinkShare.yieldTo("complete", [shareModel]);
shareModel.saveLinkShare.yieldTo("error", [shareModel, "The error message"]);
diff --git a/core/js/tests/specs/sharedialogshareelistview.js b/core/js/tests/specs/sharedialogshareelistview.js
index e51fc2df72d..4f84fa0e08f 100644
--- a/core/js/tests/specs/sharedialogshareelistview.js
+++ b/core/js/tests/specs/sharedialogshareelistview.js
@@ -73,7 +73,7 @@ describe('OC.Share.ShareDialogShareeListView', function () {
$('#testArea').append(listView.$el);
shareModel.set({
- linkShare: {isLinkShare: false}
+ linkShares: []
});
oldCurrentUser = OC.currentUser;
diff --git a/core/js/tests/specs/sharedialogviewSpec.js b/core/js/tests/specs/sharedialogviewSpec.js
index efe50c415c8..8d5a2ae434d 100644
--- a/core/js/tests/specs/sharedialogviewSpec.js
+++ b/core/js/tests/specs/sharedialogviewSpec.js
@@ -89,7 +89,7 @@ describe('OC.Share.ShareDialogView', function() {
// triggers rendering
shareModel.set({
shares: [],
- linkShare: {isLinkShare: false}
+ linkShares: []
});
autocompleteStub = sinon.stub($.fn, 'autocomplete').callsFake(function() {
@@ -130,8 +130,10 @@ describe('OC.Share.ShareDialogView', function() {
it('update password on focus out', function() {
$('#allowShareWithLink').val('yes');
- dialog.model.set('linkShare', {
- isLinkShare: true
+ dialog.model.set({
+ linkShares: [{
+ id: 123
+ }]
});
dialog.render();
@@ -143,20 +145,20 @@ describe('OC.Share.ShareDialogView', function() {
expect(saveLinkShareStub.calledOnce).toEqual(true);
expect(saveLinkShareStub.firstCall.args[0]).toEqual({
+ cid: 123,
password: 'foo'
});
});
it('update password on enter', function() {
$('#allowShareWithLink').val('yes');
- dialog.model.set('linkShare', {
- isLinkShare: true
+ dialog.model.set({
+ linkShares: [{
+ id: 123
+ }]
});
dialog.render();
- // Toggle linkshare
- dialog.$el.find('.linkCheckbox').click();
-
// Enable password and enter password
dialog.$el.find('[name=showPassword]').click();
dialog.$el.find('.linkPassText').focus();
@@ -165,47 +167,48 @@ describe('OC.Share.ShareDialogView', function() {
expect(saveLinkShareStub.calledOnce).toEqual(true);
expect(saveLinkShareStub.firstCall.args[0]).toEqual({
+ cid: 123,
password: 'foo'
});
});
- it('shows share with link checkbox when allowed', function() {
+ it('shows add share with link button when allowed', function() {
$('#allowShareWithLink').val('yes');
dialog.render();
- expect(dialog.$el.find('.linkCheckbox').length).toEqual(1);
+ expect(dialog.$el.find('.new-share').length).toEqual(1);
});
- it('does not show share with link checkbox when not allowed', function() {
+ it('does not show add share with link button when not allowed', function() {
$('#allowShareWithLink').val('no');
dialog.render();
- expect(dialog.$el.find('.linkCheckbox').length).toEqual(0);
+ expect(dialog.$el.find('.new-share').length).toEqual(0);
expect(dialog.$el.find('.shareWithField').length).toEqual(1);
});
it('shows populated link share when a link share exists', function() {
// this is how the OC.Share class does it...
var link = parent.location.protocol + '//' + location.host +
- OC.generateUrl('/s/') + 'tehtoken';
- shareModel.set('linkShare', {
- isLinkShare: true,
- token: 'tehtoken',
- link: link,
- expiration: '',
- permissions: OC.PERMISSION_READ,
- stime: 1403884258,
+ OC.generateUrl('/s/') + 'thetoken';
+ shareModel.set({
+ linkShares: [{
+ id: 123,
+ url: link
+ }]
});
dialog.render();
- expect(dialog.$el.find('.linkCheckbox').prop('checked')).toEqual(true);
+ expect(dialog.$el.find('.share-menu .icon-more').length).toEqual(1);
expect(dialog.$el.find('.linkText').val()).toEqual(link);
});
it('autofocus link text when clicked', function() {
$('#allowShareWithLink').val('yes');
- dialog.model.set('linkShare', {
- isLinkShare: true
+ dialog.model.set({
+ linkShares: [{
+ id: 123
+ }]
});
dialog.render();
diff --git a/core/js/tests/specs/shareitemmodelSpec.js b/core/js/tests/specs/shareitemmodelSpec.js
index a2eabbf4ae4..3b4dc5a960f 100644
--- a/core/js/tests/specs/shareitemmodelSpec.js
+++ b/core/js/tests/specs/shareitemmodelSpec.js
@@ -185,8 +185,9 @@ describe('OC.Share.ShareItemModel', function() {
expect(shares[0].share_with).toEqual('user1');
expect(shares[0].share_with_displayname).toEqual('User One');
- var linkShare = model.get('linkShare');
- expect(linkShare.isLinkShare).toEqual(true);
+ var linkShares = model.get('linkShares');
+ expect(linkShares.length).toEqual(1);
+ var linkShare = linkShares[0];
expect(linkShare.hideDownload).toEqual(true);
// TODO: check more attributes
@@ -268,8 +269,8 @@ describe('OC.Share.ShareItemModel', function() {
// remaining share appears in this list
expect(shares.length).toEqual(1);
- var linkShare = model.get('linkShare');
- expect(linkShare.isLinkShare).toEqual(false);
+ var linkShares = model.get('linkShares');
+ expect(linkShares.length).toEqual(0);
});
it('parses correct link share when a nested link share exists along with parent one', function() {
/* jshint camelcase: false */
@@ -321,8 +322,9 @@ describe('OC.Share.ShareItemModel', function() {
// the parent share remains in the list
expect(shares.length).toEqual(1);
- var linkShare = model.get('linkShare');
- expect(linkShare.isLinkShare).toEqual(true);
+ var linkShares = model.get('linkShares');
+ expect(linkShares.length).toEqual(1);
+ var linkShare = linkShares[0];
expect(linkShare.token).toEqual('tehtoken');
expect(linkShare.hideDownload).toEqual(false);
@@ -575,9 +577,8 @@ describe('OC.Share.ShareItemModel', function() {
it('creates a new share if no link share exists', function() {
model.set({
- linkShare: {
- isLinkShare: false
- }
+ linkShares: [
+ ]
});
model.saveLinkShare();
@@ -600,9 +601,8 @@ describe('OC.Share.ShareItemModel', function() {
defaultExpireDate: 7
});
model.set({
- linkShare: {
- isLinkShare: false
- }
+ linkShares: [
+ ]
});
model.saveLinkShare();
@@ -621,13 +621,13 @@ describe('OC.Share.ShareItemModel', function() {
});
it('updates link share if it exists', function() {
model.set({
- linkShare: {
- isLinkShare: true,
+ linkShares: [{
id: 123
- }
+ }]
});
model.saveLinkShare({
+ cid: 123,
password: 'test'
});
@@ -635,20 +635,19 @@ describe('OC.Share.ShareItemModel', function() {
expect(updateShareStub.calledOnce).toEqual(true);
expect(updateShareStub.firstCall.args[0]).toEqual(123);
expect(updateShareStub.firstCall.args[1]).toEqual({
+ cid: 123,
password: 'test'
});
});
it('forwards error message on add', function() {
var errorStub = sinon.stub();
model.set({
- linkShare: {
- isLinkShare: false
- }
+ linkShares: [
+ ]
}, {
});
model.saveLinkShare({
- password: 'test'
}, {
error: errorStub
});
@@ -661,14 +660,14 @@ describe('OC.Share.ShareItemModel', function() {
it('forwards error message on update', function() {
var errorStub = sinon.stub();
model.set({
- linkShare: {
- isLinkShare: true,
- id: '123'
- }
+ linkShares: [{
+ id: 123
+ }]
}, {
});
model.saveLinkShare({
+ cid: 123,
password: 'test'
}, {
error: errorStub