From 23643ad28e3ef52c6f3bcd8bc56ce18ccfed4ba5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Carlos=20Gonz=C3=A1lez=20Cabrero?= Date: Tue, 1 Mar 2016 13:24:05 +0100 Subject: [PATCH 01/11] Added new share permissions for the federated shares --- .../owncloud/android/lib/resources/shares/OCShare.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/com/owncloud/android/lib/resources/shares/OCShare.java b/src/com/owncloud/android/lib/resources/shares/OCShare.java index 0fe3aeb2..de250368 100644 --- a/src/com/owncloud/android/lib/resources/shares/OCShare.java +++ b/src/com/owncloud/android/lib/resources/shares/OCShare.java @@ -62,6 +62,16 @@ public class OCShare implements Parcelable, Serializable { CREATE_PERMISSION_FLAG + DELETE_PERMISSION_FLAG ; + public static final int FEDERATED_PERMISSIONS_FOR_FILE = + READ_PERMISSION_FLAG + + UPDATE_PERMISSION_FLAG + ; + public static final int FEDERATED_PERMISSIONS_FOR_FOLDER = + READ_PERMISSION_FLAG + + UPDATE_PERMISSION_FLAG + + CREATE_PERMISSION_FLAG + + DELETE_PERMISSION_FLAG + ; private long mId; private long mFileSource; From 36da2a2336fdee71b544705b6a28b313d7f53e4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Carlos=20Gonz=C3=A1lez=20Cabrero?= Date: Thu, 3 Mar 2016 12:45:05 +0100 Subject: [PATCH 02/11] Parse the lists of remote users from the JSON response of the server --- .../resources/shares/GetRemoteShareesOperation.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/com/owncloud/android/lib/resources/shares/GetRemoteShareesOperation.java b/src/com/owncloud/android/lib/resources/shares/GetRemoteShareesOperation.java index 694febc0..b588e913 100644 --- a/src/com/owncloud/android/lib/resources/shares/GetRemoteShareesOperation.java +++ b/src/com/owncloud/android/lib/resources/shares/GetRemoteShareesOperation.java @@ -78,7 +78,7 @@ public class GetRemoteShareesOperation extends RemoteOperation{ // Arguments - constant values private static final String VALUE_FORMAT = "json"; - private static final String VALUE_ITEM_TYPE = "search"; // to get the server search for users / groups + private static final String VALUE_ITEM_TYPE = "file"; // to get the server search for users / groups // JSON Node names @@ -87,6 +87,7 @@ public class GetRemoteShareesOperation extends RemoteOperation{ private static final String NODE_EXACT = "exact"; private static final String NODE_USERS = "users"; private static final String NODE_GROUPS = "groups"; + private static final String NODE_REMOTES = "remotes"; public static final String NODE_VALUE = "value"; public static final String PROPERTY_LABEL = "label"; public static final String PROPERTY_SHARE_TYPE = "shareType"; @@ -146,17 +147,21 @@ public class GetRemoteShareesOperation extends RemoteOperation{ JSONObject respExact = respData.getJSONObject(NODE_EXACT); JSONArray respExactUsers = respExact.getJSONArray(NODE_USERS); JSONArray respExactGroups = respExact.getJSONArray(NODE_GROUPS); + JSONArray respExactRemotes = respExact.getJSONArray(NODE_REMOTES); JSONArray respPartialUsers = respData.getJSONArray(NODE_USERS); JSONArray respPartialGroups = respData.getJSONArray(NODE_GROUPS); + JSONArray respPartialRemotes = respData.getJSONArray(NODE_REMOTES); JSONArray[] jsonResults = { respExactUsers, respExactGroups, + respExactRemotes, respPartialUsers, - respPartialGroups + respPartialGroups, + respPartialRemotes }; ArrayList data = new ArrayList(); // For result data - for (int i=0; i<4; i++) { + for (int i=0; i<6; i++) { for(int j=0; j< jsonResults[i].length(); j++){ JSONObject jsonResult = jsonResults[i].getJSONObject(j); data.add(jsonResult); From b13e584ac3d32809492954d2e0a412b0e7898d88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Carlos=20Gonz=C3=A1lez=20Cabrero?= Date: Mon, 7 Mar 2016 09:07:51 +0100 Subject: [PATCH 03/11] Remove the share type constants from GetRemoteShareesOperation --- .../resources/shares/GetRemoteShareesOperation.java | 4 ---- .../android/lib/test_project/test/GetShareesTest.java | 11 ++++++----- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/src/com/owncloud/android/lib/resources/shares/GetRemoteShareesOperation.java b/src/com/owncloud/android/lib/resources/shares/GetRemoteShareesOperation.java index b588e913..4ac6505d 100644 --- a/src/com/owncloud/android/lib/resources/shares/GetRemoteShareesOperation.java +++ b/src/com/owncloud/android/lib/resources/shares/GetRemoteShareesOperation.java @@ -93,10 +93,6 @@ public class GetRemoteShareesOperation extends RemoteOperation{ public static final String PROPERTY_SHARE_TYPE = "shareType"; public static final String PROPERTY_SHARE_WITH = "shareWith"; - // Result types - public static final Byte USER_TYPE = 0; - public static final Byte GROUP_TYPE = 1; - private String mSearchString; private int mPage; private int mPerPage; diff --git a/test_client/tests/src/com/owncloud/android/lib/test_project/test/GetShareesTest.java b/test_client/tests/src/com/owncloud/android/lib/test_project/test/GetShareesTest.java index c80f805c..0713b7ea 100644 --- a/test_client/tests/src/com/owncloud/android/lib/test_project/test/GetShareesTest.java +++ b/test_client/tests/src/com/owncloud/android/lib/test_project/test/GetShareesTest.java @@ -41,6 +41,7 @@ import com.owncloud.android.lib.common.OwnCloudCredentialsFactory; import com.owncloud.android.lib.common.network.NetworkUtils; import com.owncloud.android.lib.common.operations.RemoteOperationResult; import com.owncloud.android.lib.resources.shares.GetRemoteShareesOperation; +import com.owncloud.android.lib.resources.shares.ShareType; import com.owncloud.android.lib.test_project.R; import com.owncloud.android.lib.test_project.SelfSignedConfidentSslSocketFactory; @@ -125,15 +126,15 @@ public class GetShareesTest extends RemoteTest { RemoteOperationResult result = getShareesOperation.execute(mClient); JSONObject resultItem; JSONObject value; - byte type; + int type; int userCount = 0, groupCount = 0; assertTrue(result.isSuccess() && result.getData().size() > 0); try { for (int i=0; i Date: Mon, 7 Mar 2016 13:55:18 +0100 Subject: [PATCH 04/11] Fix comparison of share type in the GetShareesTest --- .../android/lib/test_project/test/GetShareesTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test_client/tests/src/com/owncloud/android/lib/test_project/test/GetShareesTest.java b/test_client/tests/src/com/owncloud/android/lib/test_project/test/GetShareesTest.java index 0713b7ea..6f334079 100644 --- a/test_client/tests/src/com/owncloud/android/lib/test_project/test/GetShareesTest.java +++ b/test_client/tests/src/com/owncloud/android/lib/test_project/test/GetShareesTest.java @@ -134,7 +134,7 @@ public class GetShareesTest extends RemoteTest { resultItem = (JSONObject) result.getData().get(i); value = resultItem.getJSONObject(GetRemoteShareesOperation.NODE_VALUE); type = value.getInt(GetRemoteShareesOperation.PROPERTY_SHARE_TYPE); - if (type == ShareType.GROUP) { + if (type == ShareType.GROUP.getValue()) { groupCount++; } else { userCount++; @@ -158,7 +158,7 @@ public class GetShareesTest extends RemoteTest { resultItem = (JSONObject) result.getData().get(i); value = resultItem.getJSONObject(GetRemoteShareesOperation.NODE_VALUE); type = value.getInt(GetRemoteShareesOperation.PROPERTY_SHARE_TYPE); - if (type == ShareType.GROUP) { + if (type == ShareType.GROUP.getValue()) { groupCount++; } else { userCount++; From 0689213e727d0026796b08ace25dc9bb6911be2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Carlos=20Gonz=C3=A1lez=20Cabrero?= Date: Wed, 9 Mar 2016 10:32:12 +0100 Subject: [PATCH 05/11] New tests for the federated sharing --- .../test_project/test/CreateShareTest.java | 79 +++++++++++++++++++ .../lib/test_project/test/GetShareesTest.java | 56 ++++++++++++- 2 files changed, 134 insertions(+), 1 deletion(-) diff --git a/test_client/tests/src/com/owncloud/android/lib/test_project/test/CreateShareTest.java b/test_client/tests/src/com/owncloud/android/lib/test_project/test/CreateShareTest.java index ccc25089..09b6181b 100644 --- a/test_client/tests/src/com/owncloud/android/lib/test_project/test/CreateShareTest.java +++ b/test_client/tests/src/com/owncloud/android/lib/test_project/test/CreateShareTest.java @@ -29,6 +29,7 @@ import java.io.File; import com.owncloud.android.lib.common.operations.RemoteOperationResult; import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode; import com.owncloud.android.lib.resources.shares.ShareType; +import com.owncloud.android.lib.test_project.R; import com.owncloud.android.lib.test_project.TestActivity; /** @@ -47,6 +48,7 @@ public class CreateShareTest extends RemoteTest { private TestActivity mActivity; private String mFullPath2FileToShare; private String mFullPath2NonExistentFile; + private String mRemoteServer; @Override protected void setUp() throws Exception { @@ -55,6 +57,7 @@ public class CreateShareTest extends RemoteTest { mActivity = getActivity(); mFullPath2FileToShare = mBaseFolderPath + FILE_TO_SHARE; mFullPath2NonExistentFile = mBaseFolderPath + NON_EXISTENT_FILE; + mRemoteServer = getActivity().getString(R.string.server_base_url_2); File textFile = mActivity.extractAsset(TestActivity.ASSETS__TEXT_FILE_NAME); RemoteOperationResult result = mActivity.uploadFile( @@ -217,6 +220,82 @@ public class CreateShareTest extends RemoteTest { } + /** + * Test creation of federated shares with remote users + */ + public void testCreateFederatedShareWithUser() { + + String remoteDomain = mRemoteServer.split("//")[1]; + + /// Successful cases + RemoteOperationResult result = mActivity.createShare( + mFullPath2FileToShare, + ShareType.FEDERATED, + "admin@" + remoteDomain, + false, + "", + 1); + assertTrue(result.isSuccess()); + + + /// Failed cases + + // sharee doesn't exist in an existing remote server + result = mActivity.createShare( + mFullPath2FileToShare, + ShareType.FEDERATED, + "no_exist@" + remoteDomain, + false, + "", + 31); + assertFalse(result.isSuccess()); + assertEquals( + RemoteOperationResult.ResultCode.SHARE_FORBIDDEN, + result.getCode() + ); + assertTrue( // error message from server as part of the result + result.getData().size() == 1 && + result.getData().get(0) instanceof String + ); + + // remote server doesn't exist + result = mActivity.createShare( + mFullPath2FileToShare, + ShareType.FEDERATED, + "no_exist", + false, + "", + 31); + assertFalse(result.isSuccess()); + assertEquals( + RemoteOperationResult.ResultCode.SHARE_WRONG_PARAMETER, + result.getCode() + ); + assertTrue( // error message from server as part of the result + result.getData().size() == 1 && + result.getData().get(0) instanceof String + ); + + // file doesn't exist + result = mActivity.createShare( + mFullPath2NonExistentFile, + ShareType.FEDERATED, + "admin@" + remoteDomain, + false, + "", + 31); + assertFalse(result.isSuccess()); + assertEquals( + RemoteOperationResult.ResultCode.SHARE_NOT_FOUND, + result.getCode() + ); + assertTrue( // error message from server as part of the result + result.getData().size() == 1 && + result.getData().get(0) instanceof String + ); + + } + @Override protected void tearDown() throws Exception { diff --git a/test_client/tests/src/com/owncloud/android/lib/test_project/test/GetShareesTest.java b/test_client/tests/src/com/owncloud/android/lib/test_project/test/GetShareesTest.java index 6f334079..4455adc0 100644 --- a/test_client/tests/src/com/owncloud/android/lib/test_project/test/GetShareesTest.java +++ b/test_client/tests/src/com/owncloud/android/lib/test_project/test/GetShareesTest.java @@ -69,7 +69,7 @@ public class GetShareesTest extends RemoteTest { private static final String LOG_TAG = GetShareesTest.class.getCanonicalName(); - String mServerUri, mUser, mPass; + String mServerUri, mUser, mPass, mServerUri2; OwnCloudClient mClient = null; public GetShareesTest() { @@ -191,6 +191,59 @@ public class GetShareesTest extends RemoteTest { assertTrue(!result.isSuccess() && result.getHttpCode() == HttpStatus.SC_BAD_REQUEST); } + /** + * Test get federated sharees + * + * Requires OC server 8.2 or later + */ + public void testGetFederatedShareesOperation() { + Log.v(LOG_TAG, "testGetFederatedSharees in"); + + /// successful cases + + // search for sharees including "@" + GetRemoteShareesOperation getShareesOperation = new GetRemoteShareesOperation("@", 1, 50); + RemoteOperationResult result = getShareesOperation.execute(mClient); + JSONObject resultItem; + JSONObject value; + int type; + int fedCount = 0; + assertTrue(result.isSuccess() && result.getData().size() > 0); + try { + for (int i=0; i 0); + } catch (JSONException e) { + AssertionFailedError afe = new AssertionFailedError(e.getLocalizedMessage()); + afe.setStackTrace(e.getStackTrace()); + throw afe; + } + + // search for sharees including "admin@qa2.oc.solidgear.es" - expecting at least 1 result + String remoteSharee = "admin@" + mServerUri2.split("//")[1]; + getShareesOperation = new GetRemoteShareesOperation(remoteSharee, 1, 50); + result = getShareesOperation.execute(mClient); + assertTrue(result.isSuccess() && result.getData().size() > 0); + + + /// failed cases + + // search for sharees including wrong page values + getShareesOperation = new GetRemoteShareesOperation("@", 0, 50); + result = getShareesOperation.execute(mClient); + assertTrue(!result.isSuccess() && result.getHttpCode() == HttpStatus.SC_BAD_REQUEST); + + getShareesOperation = new GetRemoteShareesOperation("@", 1, 0); + result = getShareesOperation.execute(mClient); + assertTrue(!result.isSuccess() && result.getHttpCode() == HttpStatus.SC_BAD_REQUEST); + } + @Override protected void tearDown() throws Exception { Log.v(LOG_TAG, "Deleting remote fixture..."); @@ -203,6 +256,7 @@ public class GetShareesTest extends RemoteTest { Log.v(LOG_TAG, "Setting up client instance to access OC server..."); mServerUri = context.getString(R.string.server_base_url); + mServerUri2 = context.getString(R.string.server_base_url_2); mUser = context.getString(R.string.username); mPass = context.getString(R.string.password); From 5dfd4cac5ed4bb4a7c2a8fe0131ff641303b84b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Carlos=20Gonz=C3=A1lez=20Cabrero?= Date: Wed, 9 Mar 2016 13:18:59 +0100 Subject: [PATCH 06/11] Added setup variable for a new QA server path --- test_client/res/values/setup.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/test_client/res/values/setup.xml b/test_client/res/values/setup.xml index f72929ab..289e0889 100644 --- a/test_client/res/values/setup.xml +++ b/test_client/res/values/setup.xml @@ -26,6 +26,7 @@ + Mozilla/5.0 (Android) ownCloud test project From 4d524100d5441610e8f5999aff4acdd129885df4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Carlos=20Gonz=C3=A1lez=20Cabrero?= Date: Wed, 9 Mar 2016 14:01:41 +0100 Subject: [PATCH 07/11] Added new encrypted variable referencing the new QA server to travis config --- .travis.yml | 1 + test_client/custom_rules.xml | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/.travis.yml b/.travis.yml index 030fa16d..a3be7b76 100644 --- a/.travis.yml +++ b/.travis.yml @@ -35,6 +35,7 @@ env: - secure: gPCBnpGLA2sdSMtfhT+/InThmXNEU8XrrS54uuIP8iXBLvVe0yZrNl76GbMosV0ry3YtDngsmsbHwRjPPb0+3mTTdAqZ60HHzGaNPgEm6b5t0t4bpJ3LW9osLZsuf9jRsI2LD66zxblaMrK2+8hN/dUrj707ijsZHp3SPSQJ6g8= - secure: AnxLVarfwM7IhJ7Sca35USyRlFHFvlcBhWTt2TVDcyQ+ldDyb+U6IWXFK0Yy82QP0ZH/RCLu7FnmHK/rKG0BHNRt1Ymco1VkTQql0MZcHXP+4IKgEvgJyUn1TqYj+hSVmM6lgTA+QUjZYGSfwU8mhUFiU7644ZTdTe6ALdqa+v8= - secure: ezKyZbb3q1Phcv/vJntuJe0C2req+Hp4/C+tFZIWZ3o8wRO9jVI3bnED9TWQyQOOT0SoRYjJ5zqp0UcEOGCzPeWFO6bA7RWp+zA/R9sziLNcVWMVv3WXnuClQjPBHJeXRnP7YmNjxDmSfV97a14dk5d9LgJZYliTDepH4dLsxro= + - secure: HV8REF7bB1i6cBEe4YCZvjgTf6tGiptAPzp9qZXGUH9Lxh6yUjYMXXP8flDaIFcE2JuAakW6P4SPr7/SQ+X4f8/84cNhmU1I+6Y1nG37WvelRHQVslOUDbl1TNUnynYZ+ybkb3BtrQvggCGMdQKvGZXYiggFhN/TWuDo0c7Q2Ro= matrix: - ANDROID_TARGET=android-23 ANDROID_ABI=armeabi-v7a addons: diff --git a/test_client/custom_rules.xml b/test_client/custom_rules.xml index cb014b3a..669f008f 100644 --- a/test_client/custom_rules.xml +++ b/test_client/custom_rules.xml @@ -15,6 +15,20 @@ + + + + + + + + + + From add2aab31e80f447f9a8705c30aeb2c9765e6ef9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Carlos=20Gonz=C3=A1lez=20Cabrero?= Date: Wed, 9 Mar 2016 10:32:12 +0100 Subject: [PATCH 08/11] New tests for the federated sharing --- .../test_project/test/CreateShareTest.java | 79 +++++++++++++++++++ .../lib/test_project/test/GetShareesTest.java | 56 ++++++++++++- 2 files changed, 134 insertions(+), 1 deletion(-) diff --git a/test_client/tests/src/com/owncloud/android/lib/test_project/test/CreateShareTest.java b/test_client/tests/src/com/owncloud/android/lib/test_project/test/CreateShareTest.java index ccc25089..09b6181b 100644 --- a/test_client/tests/src/com/owncloud/android/lib/test_project/test/CreateShareTest.java +++ b/test_client/tests/src/com/owncloud/android/lib/test_project/test/CreateShareTest.java @@ -29,6 +29,7 @@ import java.io.File; import com.owncloud.android.lib.common.operations.RemoteOperationResult; import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode; import com.owncloud.android.lib.resources.shares.ShareType; +import com.owncloud.android.lib.test_project.R; import com.owncloud.android.lib.test_project.TestActivity; /** @@ -47,6 +48,7 @@ public class CreateShareTest extends RemoteTest { private TestActivity mActivity; private String mFullPath2FileToShare; private String mFullPath2NonExistentFile; + private String mRemoteServer; @Override protected void setUp() throws Exception { @@ -55,6 +57,7 @@ public class CreateShareTest extends RemoteTest { mActivity = getActivity(); mFullPath2FileToShare = mBaseFolderPath + FILE_TO_SHARE; mFullPath2NonExistentFile = mBaseFolderPath + NON_EXISTENT_FILE; + mRemoteServer = getActivity().getString(R.string.server_base_url_2); File textFile = mActivity.extractAsset(TestActivity.ASSETS__TEXT_FILE_NAME); RemoteOperationResult result = mActivity.uploadFile( @@ -217,6 +220,82 @@ public class CreateShareTest extends RemoteTest { } + /** + * Test creation of federated shares with remote users + */ + public void testCreateFederatedShareWithUser() { + + String remoteDomain = mRemoteServer.split("//")[1]; + + /// Successful cases + RemoteOperationResult result = mActivity.createShare( + mFullPath2FileToShare, + ShareType.FEDERATED, + "admin@" + remoteDomain, + false, + "", + 1); + assertTrue(result.isSuccess()); + + + /// Failed cases + + // sharee doesn't exist in an existing remote server + result = mActivity.createShare( + mFullPath2FileToShare, + ShareType.FEDERATED, + "no_exist@" + remoteDomain, + false, + "", + 31); + assertFalse(result.isSuccess()); + assertEquals( + RemoteOperationResult.ResultCode.SHARE_FORBIDDEN, + result.getCode() + ); + assertTrue( // error message from server as part of the result + result.getData().size() == 1 && + result.getData().get(0) instanceof String + ); + + // remote server doesn't exist + result = mActivity.createShare( + mFullPath2FileToShare, + ShareType.FEDERATED, + "no_exist", + false, + "", + 31); + assertFalse(result.isSuccess()); + assertEquals( + RemoteOperationResult.ResultCode.SHARE_WRONG_PARAMETER, + result.getCode() + ); + assertTrue( // error message from server as part of the result + result.getData().size() == 1 && + result.getData().get(0) instanceof String + ); + + // file doesn't exist + result = mActivity.createShare( + mFullPath2NonExistentFile, + ShareType.FEDERATED, + "admin@" + remoteDomain, + false, + "", + 31); + assertFalse(result.isSuccess()); + assertEquals( + RemoteOperationResult.ResultCode.SHARE_NOT_FOUND, + result.getCode() + ); + assertTrue( // error message from server as part of the result + result.getData().size() == 1 && + result.getData().get(0) instanceof String + ); + + } + @Override protected void tearDown() throws Exception { diff --git a/test_client/tests/src/com/owncloud/android/lib/test_project/test/GetShareesTest.java b/test_client/tests/src/com/owncloud/android/lib/test_project/test/GetShareesTest.java index 6f334079..295b70bb 100644 --- a/test_client/tests/src/com/owncloud/android/lib/test_project/test/GetShareesTest.java +++ b/test_client/tests/src/com/owncloud/android/lib/test_project/test/GetShareesTest.java @@ -69,7 +69,7 @@ public class GetShareesTest extends RemoteTest { private static final String LOG_TAG = GetShareesTest.class.getCanonicalName(); - String mServerUri, mUser, mPass; + String mServerUri, mUser, mPass, mServerUri2; OwnCloudClient mClient = null; public GetShareesTest() { @@ -191,6 +191,59 @@ public class GetShareesTest extends RemoteTest { assertTrue(!result.isSuccess() && result.getHttpCode() == HttpStatus.SC_BAD_REQUEST); } + /** + * Test get federated sharees + * + * Requires OC server 8.2 or later + */ + public void testGetFederatedShareesOperation() { + Log.v(LOG_TAG, "testGetFederatedSharees in"); + + /// successful cases + + // search for sharees including "@" + GetRemoteShareesOperation getShareesOperation = new GetRemoteShareesOperation("@", 1, 50); + RemoteOperationResult result = getShareesOperation.execute(mClient); + JSONObject resultItem; + JSONObject value; + int type; + int fedCount = 0; + assertTrue(result.isSuccess() && result.getData().size() > 0); + try { + for (int i=0; i 0); + } catch (JSONException e) { + AssertionFailedError afe = new AssertionFailedError(e.getLocalizedMessage()); + afe.setStackTrace(e.getStackTrace()); + throw afe; + } + + // search for 'admin' sharee from external server - expecting at least 1 result + String remoteSharee = "admin@" + mServerUri2.split("//")[1]; + getShareesOperation = new GetRemoteShareesOperation(remoteSharee, 1, 50); + result = getShareesOperation.execute(mClient); + assertTrue(result.isSuccess() && result.getData().size() > 0); + + + /// failed cases + + // search for sharees including wrong page values + getShareesOperation = new GetRemoteShareesOperation("@", 0, 50); + result = getShareesOperation.execute(mClient); + assertTrue(!result.isSuccess() && result.getHttpCode() == HttpStatus.SC_BAD_REQUEST); + + getShareesOperation = new GetRemoteShareesOperation("@", 1, 0); + result = getShareesOperation.execute(mClient); + assertTrue(!result.isSuccess() && result.getHttpCode() == HttpStatus.SC_BAD_REQUEST); + } + @Override protected void tearDown() throws Exception { Log.v(LOG_TAG, "Deleting remote fixture..."); @@ -203,6 +256,7 @@ public class GetShareesTest extends RemoteTest { Log.v(LOG_TAG, "Setting up client instance to access OC server..."); mServerUri = context.getString(R.string.server_base_url); + mServerUri2 = context.getString(R.string.server_base_url_2); mUser = context.getString(R.string.username); mPass = context.getString(R.string.password); From 6c90e79c5391044ec90578e18c870f6b66d12bf9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Carlos=20Gonz=C3=A1lez=20Cabrero?= Date: Wed, 9 Mar 2016 13:18:59 +0100 Subject: [PATCH 09/11] Added setup variable for a new QA server path --- test_client/res/values/setup.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/test_client/res/values/setup.xml b/test_client/res/values/setup.xml index f72929ab..289e0889 100644 --- a/test_client/res/values/setup.xml +++ b/test_client/res/values/setup.xml @@ -26,6 +26,7 @@ + Mozilla/5.0 (Android) ownCloud test project From 3fd4e3b898158a72b4b9f5a8028c30701409e0b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Carlos=20Gonz=C3=A1lez=20Cabrero?= Date: Wed, 9 Mar 2016 14:01:41 +0100 Subject: [PATCH 10/11] Added new encrypted variable referencing the new QA server to travis config --- .travis.yml | 1 + test_client/custom_rules.xml | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/.travis.yml b/.travis.yml index 030fa16d..a3be7b76 100644 --- a/.travis.yml +++ b/.travis.yml @@ -35,6 +35,7 @@ env: - secure: gPCBnpGLA2sdSMtfhT+/InThmXNEU8XrrS54uuIP8iXBLvVe0yZrNl76GbMosV0ry3YtDngsmsbHwRjPPb0+3mTTdAqZ60HHzGaNPgEm6b5t0t4bpJ3LW9osLZsuf9jRsI2LD66zxblaMrK2+8hN/dUrj707ijsZHp3SPSQJ6g8= - secure: AnxLVarfwM7IhJ7Sca35USyRlFHFvlcBhWTt2TVDcyQ+ldDyb+U6IWXFK0Yy82QP0ZH/RCLu7FnmHK/rKG0BHNRt1Ymco1VkTQql0MZcHXP+4IKgEvgJyUn1TqYj+hSVmM6lgTA+QUjZYGSfwU8mhUFiU7644ZTdTe6ALdqa+v8= - secure: ezKyZbb3q1Phcv/vJntuJe0C2req+Hp4/C+tFZIWZ3o8wRO9jVI3bnED9TWQyQOOT0SoRYjJ5zqp0UcEOGCzPeWFO6bA7RWp+zA/R9sziLNcVWMVv3WXnuClQjPBHJeXRnP7YmNjxDmSfV97a14dk5d9LgJZYliTDepH4dLsxro= + - secure: HV8REF7bB1i6cBEe4YCZvjgTf6tGiptAPzp9qZXGUH9Lxh6yUjYMXXP8flDaIFcE2JuAakW6P4SPr7/SQ+X4f8/84cNhmU1I+6Y1nG37WvelRHQVslOUDbl1TNUnynYZ+ybkb3BtrQvggCGMdQKvGZXYiggFhN/TWuDo0c7Q2Ro= matrix: - ANDROID_TARGET=android-23 ANDROID_ABI=armeabi-v7a addons: diff --git a/test_client/custom_rules.xml b/test_client/custom_rules.xml index cb014b3a..669f008f 100644 --- a/test_client/custom_rules.xml +++ b/test_client/custom_rules.xml @@ -15,6 +15,20 @@ + + + + + + + + + + From 996660b88c4e2b3cef08604963cf2c29491efa1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Carlos=20Gonz=C3=A1lez=20Cabrero?= Date: Wed, 16 Mar 2016 09:50:18 +0100 Subject: [PATCH 11/11] Fix indentation errors --- .../test_project/test/CreateShareTest.java | 32 +++++++++---------- .../lib/test_project/test/GetShareesTest.java | 4 +-- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/test_client/tests/src/com/owncloud/android/lib/test_project/test/CreateShareTest.java b/test_client/tests/src/com/owncloud/android/lib/test_project/test/CreateShareTest.java index 09b6181b..495bdc78 100644 --- a/test_client/tests/src/com/owncloud/android/lib/test_project/test/CreateShareTest.java +++ b/test_client/tests/src/com/owncloud/android/lib/test_project/test/CreateShareTest.java @@ -259,22 +259,22 @@ public class CreateShareTest extends RemoteTest { ); // remote server doesn't exist - result = mActivity.createShare( - mFullPath2FileToShare, - ShareType.FEDERATED, - "no_exist", - false, - "", - 31); - assertFalse(result.isSuccess()); - assertEquals( - RemoteOperationResult.ResultCode.SHARE_WRONG_PARAMETER, - result.getCode() - ); - assertTrue( // error message from server as part of the result - result.getData().size() == 1 && - result.getData().get(0) instanceof String - ); + result = mActivity.createShare( + mFullPath2FileToShare, + ShareType.FEDERATED, + "no_exist", + false, + "", + 31); + assertFalse(result.isSuccess()); + assertEquals( + RemoteOperationResult.ResultCode.SHARE_WRONG_PARAMETER, + result.getCode() + ); + assertTrue( // error message from server as part of the result + result.getData().size() == 1 && + result.getData().get(0) instanceof String + ); // file doesn't exist result = mActivity.createShare( diff --git a/test_client/tests/src/com/owncloud/android/lib/test_project/test/GetShareesTest.java b/test_client/tests/src/com/owncloud/android/lib/test_project/test/GetShareesTest.java index 295b70bb..cb0ea060 100644 --- a/test_client/tests/src/com/owncloud/android/lib/test_project/test/GetShareesTest.java +++ b/test_client/tests/src/com/owncloud/android/lib/test_project/test/GetShareesTest.java @@ -212,8 +212,8 @@ public class GetShareesTest extends RemoteTest { try { for (int i=0; i