From 57aa370be0fc99ff716127ecd9a5557617eda217 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Carlos=20Gonz=C3=A1lez=20Cabrero?= Date: Fri, 18 Mar 2016 13:34:12 +0100 Subject: [PATCH] Update public share tests and refactored publicUpload permission handling --- .../shares/UpdateRemoteShareOperation.java | 10 ++-- .../test/UpdatePublicShareTest.java | 51 ++++++++++++++++--- 2 files changed, 46 insertions(+), 15 deletions(-) diff --git a/src/com/owncloud/android/lib/resources/shares/UpdateRemoteShareOperation.java b/src/com/owncloud/android/lib/resources/shares/UpdateRemoteShareOperation.java index 137d62a8..aed53074 100644 --- a/src/com/owncloud/android/lib/resources/shares/UpdateRemoteShareOperation.java +++ b/src/com/owncloud/android/lib/resources/shares/UpdateRemoteShareOperation.java @@ -86,7 +86,7 @@ public class UpdateRemoteShareOperation extends RemoteOperation { /** * Upload permissions for the public link (only folders) */ - private boolean mPublicUpload; + private Boolean mPublicUpload; /** @@ -98,7 +98,7 @@ public class UpdateRemoteShareOperation extends RemoteOperation { mRemoteId = remoteId; mPassword = null; // no update mExpirationDateInMillis = 0; // no update - mPublicUpload = false; + mPublicUpload = null; } @@ -174,13 +174,9 @@ public class UpdateRemoteShareOperation extends RemoteOperation { parametersToUpdate.add(new Pair(PARAM_PERMISSIONS, Integer.toString(mPermissions))); } - parametersToUpdate.add(new Pair(PARAM_PUBLIC_UPLOAD, Boolean.toString(mPublicUpload))); - - /* TODO complete rest of parameters if (mPublicUpload != null) { - parametersToUpdate.add(new Pair("publicUpload", mPublicUpload.toString()); + parametersToUpdate.add(new Pair(PARAM_PUBLIC_UPLOAD, Boolean.toString(mPublicUpload))); } - */ /// perform required PUT requests PutMethod put = null; diff --git a/test_client/tests/src/com/owncloud/android/lib/test_project/test/UpdatePublicShareTest.java b/test_client/tests/src/com/owncloud/android/lib/test_project/test/UpdatePublicShareTest.java index 8da09eb0..fe01e348 100644 --- a/test_client/tests/src/com/owncloud/android/lib/test_project/test/UpdatePublicShareTest.java +++ b/test_client/tests/src/com/owncloud/android/lib/test_project/test/UpdatePublicShareTest.java @@ -64,13 +64,18 @@ public class UpdatePublicShareTest extends RemoteTest { /* File to share and update.*/ private static final String FILE_TO_SHARE = "/fileToShare.txt"; + /* Folder to share and update */ + private static final String FOLDER_TO_SHARE = "/folderToShare"; + // Data for tests private static final String PASSWORD = "password"; private static final String PASS_SPECIAL_CHARS = "p@ssw�rd"; private String mFullPath2FileToShare; + private String mFullPath2FolderToShare; private OCShare mShare; + private OCShare mFolderShare; String mServerUri, mUser, mPass; OwnCloudClient mClient = null; @@ -107,7 +112,7 @@ public class UpdatePublicShareTest extends RemoteTest { Log.v(LOG_TAG, "Setting up the remote fixture..."); - // Upload the files + // Upload the file mFullPath2FileToShare = mBaseFolderPath + FILE_TO_SHARE; File textFile = getActivity().extractAsset(TestActivity.ASSETS__TEXT_FILE_NAME); @@ -126,7 +131,7 @@ public class UpdatePublicShareTest extends RemoteTest { "", false, "", - 1); + OCShare.READ_PERMISSION_FLAG); if (result.isSuccess()){ mShare = (OCShare) result.getData().get(0); @@ -134,7 +139,31 @@ public class UpdatePublicShareTest extends RemoteTest { mShare = null; } - Log.v(LOG_TAG, "Remote fixture created."); + // Create the folder + mFullPath2FolderToShare = mBaseFolderPath + FOLDER_TO_SHARE; + result = getActivity().createFolder( + mFullPath2FolderToShare, + true); + if (!result.isSuccess()) { + Utils.logAndThrow(LOG_TAG, result); + } + + // Share the folder privately with a group + result = getActivity().createShare( + mFullPath2FolderToShare, + ShareType.PUBLIC_LINK, + "", + false, + "", + OCShare.READ_PERMISSION_FLAG); + + if (result.isSuccess()){ + mFolderShare = (OCShare) result.getData().get(0); + } else{ + mFolderShare = null; + } + + Log.v(LOG_TAG, "Remote fixtures created."); } @@ -165,11 +194,11 @@ public class UpdatePublicShareTest extends RemoteTest { result = updateShare.execute(mClient); assertTrue(result.isSuccess()); - // Update Share with edit permission - updateShare = new UpdateRemoteShareOperation(mShare.getRemoteId()); - updateShare.setPublicUpload(true); - result = updateShare.execute(mClient); - assertTrue(result.isSuccess()); + // Update the Folder Share with edit permission + updateShare = new UpdateRemoteShareOperation(mFolderShare.getRemoteId()); + updateShare.setPublicUpload(true); + result = updateShare.execute(mClient); + assertTrue(result.isSuccess()); // unsuccessful test // Update Share with expiration date in the past @@ -179,6 +208,12 @@ public class UpdatePublicShareTest extends RemoteTest { updateShare.setExpirationDate(expirationDateInMillis); result = updateShare.execute(mClient); assertFalse(result.isSuccess()); + + // Try to update the file Share with edit permission + updateShare = new UpdateRemoteShareOperation(mShare.getRemoteId()); + updateShare.setPublicUpload(true); + result = updateShare.execute(mClient); + assertFalse(result.isSuccess()); // Unshare the file before the unsuccessful tests RemoveRemoteShareOperation unshare = new RemoveRemoteShareOperation((int) mShare.getRemoteId());