Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/android-library.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Kaminsky <tobias@kaminsky.me>2020-09-03 16:43:00 +0300
committerGitHub <noreply@github.com>2020-09-03 16:43:00 +0300
commit48e6277ee4ecbf73591504f82260f6b50a2d35dc (patch)
tree3ca17988c39362f06f3eab2f038bd506f1bd10ff
parent54b44af08fdeedf975066d65a03014a3b519bc0d (diff)
parent5619d595edf7d3c9790440eb284fb5f47770bda7 (diff)
Merge pull request #499 from nextcloud/backport/497/stable-2.3rc-2.3.1-012.3.1stable-2.3
[stable-2.3] use plain userId for search
-rw-r--r--.drone.yml2
-rw-r--r--scripts/analysis/lint-results.txt2
-rw-r--r--src/androidTest/java/com/owncloud/android/lib/resources/files/SearchRemoteOperationTest.java26
-rw-r--r--src/main/java/com/owncloud/android/lib/common/OwnCloudClient.java4
-rw-r--r--src/main/java/com/owncloud/android/lib/common/utils/WebDavFileUtils.java8
-rw-r--r--src/main/java/com/owncloud/android/lib/resources/files/SearchRemoteOperation.java9
6 files changed, 43 insertions, 8 deletions
diff --git a/.drone.yml b/.drone.yml
index d46167b5..a679455b 100644
--- a/.drone.yml
+++ b/.drone.yml
@@ -98,6 +98,7 @@ services:
- su www-data -c "OC_PASS=user1 php /var/www/html/occ user:add --password-from-env --display-name='User One' user1"
- su www-data -c "OC_PASS=user2 php /var/www/html/occ user:add --password-from-env --display-name='User Two' user2"
- su www-data -c "OC_PASS=user3 php /var/www/html/occ user:add --password-from-env --display-name='User Three' user3"
+ - su www-data -c "OC_PASS=test php /var/www/html/occ user:add --password-from-env --display-name='Test@Test' test@test"
- su www-data -c "php /var/www/html/occ user:setting user2 files quota 1G"
- su www-data -c "php /var/www/html/occ group:add users"
- su www-data -c "php /var/www/html/occ group:adduser users user1"
@@ -177,6 +178,7 @@ services:
- su www-data -c "OC_PASS=user1 php /var/www/html/occ user:add --password-from-env --display-name='User One' user1"
- su www-data -c "OC_PASS=user2 php /var/www/html/occ user:add --password-from-env --display-name='User Two' user2"
- su www-data -c "OC_PASS=user3 php /var/www/html/occ user:add --password-from-env --display-name='User Three' user3"
+ - su www-data -c "OC_PASS=test php /var/www/html/occ user:add --password-from-env --display-name='Test@Test' test@test"
- su www-data -c "php /var/www/html/occ user:setting user2 files quota 1G"
- su www-data -c "php /var/www/html/occ group:add users"
- su www-data -c "php /var/www/html/occ group:adduser users user1"
diff --git a/scripts/analysis/lint-results.txt b/scripts/analysis/lint-results.txt
index 68af22cd..4088c4cd 100644
--- a/scripts/analysis/lint-results.txt
+++ b/scripts/analysis/lint-results.txt
@@ -1,2 +1,2 @@
DO NOT TOUCH; GENERATED BY DRONE
- <span class="mdl-layout-title">Lint Report: 1 warning</span>
+ <span class="mdl-layout-title">Lint Report: 6 warning</span>
diff --git a/src/androidTest/java/com/owncloud/android/lib/resources/files/SearchRemoteOperationTest.java b/src/androidTest/java/com/owncloud/android/lib/resources/files/SearchRemoteOperationTest.java
index dd655a22..a50ac1fc 100644
--- a/src/androidTest/java/com/owncloud/android/lib/resources/files/SearchRemoteOperationTest.java
+++ b/src/androidTest/java/com/owncloud/android/lib/resources/files/SearchRemoteOperationTest.java
@@ -26,7 +26,13 @@
*/
package com.owncloud.android.lib.resources.files;
+import android.net.Uri;
+import android.os.Bundle;
+
import com.owncloud.android.AbstractIT;
+import com.owncloud.android.lib.common.OwnCloudBasicCredentials;
+import com.owncloud.android.lib.common.OwnCloudClient;
+import com.owncloud.android.lib.common.OwnCloudClientFactory;
import com.owncloud.android.lib.common.operations.RemoteOperationResult;
import com.owncloud.android.lib.resources.files.model.RemoteFile;
@@ -34,6 +40,8 @@ import org.junit.Test;
import java.io.IOException;
+import androidx.test.platform.app.InstrumentationRegistry;
+
import static junit.framework.TestCase.assertEquals;
import static junit.framework.TestCase.assertTrue;
@@ -343,4 +351,22 @@ public class SearchRemoteOperationTest extends AbstractIT {
assertEquals(1, result.getData().size());
assertEquals("/folder/", ((RemoteFile) result.getData().get(0)).getRemotePath());
}
+
+ @Test
+ public void testSearchWithAtInUsername() {
+ Bundle arguments = InstrumentationRegistry.getArguments();
+ Uri url = Uri.parse(arguments.getString("TEST_SERVER_URL"));
+
+ OwnCloudClient client = OwnCloudClientFactory.createOwnCloudClient(url, context, true);
+ client.setCredentials(new OwnCloudBasicCredentials("test@test", "test"));
+ client.setUserId("test@test"); // for test same as userId
+
+ SearchRemoteOperation sut = new SearchRemoteOperation("",
+ SearchRemoteOperation.SearchType.FILE_SEARCH,
+ true);
+
+ RemoteOperationResult result = sut.execute(client);
+ assertTrue(result.isSuccess());
+ assertEquals(0, result.getData().size());
+ }
}
diff --git a/src/main/java/com/owncloud/android/lib/common/OwnCloudClient.java b/src/main/java/com/owncloud/android/lib/common/OwnCloudClient.java
index 0a6a21c6..8b5732d1 100644
--- a/src/main/java/com/owncloud/android/lib/common/OwnCloudClient.java
+++ b/src/main/java/com/owncloud/android/lib/common/OwnCloudClient.java
@@ -432,4 +432,8 @@ public class OwnCloudClient extends HttpClient {
public String getUserId() {
return Uri.encode(userId);
}
+
+ public String getUserIdPlain() {
+ return userId;
+ }
}
diff --git a/src/main/java/com/owncloud/android/lib/common/utils/WebDavFileUtils.java b/src/main/java/com/owncloud/android/lib/common/utils/WebDavFileUtils.java
index 43b39752..75168fb3 100644
--- a/src/main/java/com/owncloud/android/lib/common/utils/WebDavFileUtils.java
+++ b/src/main/java/com/owncloud/android/lib/common/utils/WebDavFileUtils.java
@@ -54,7 +54,7 @@ public class WebDavFileUtils {
OwnCloudClient client,
boolean isReadFolderOperation,
boolean isSearchOperation,
- String userId) {
+ String userIdPlain) {
ArrayList<Object> mFolderAndFiles = new ArrayList<>();
WebdavEntry we;
@@ -62,15 +62,15 @@ public class WebDavFileUtils {
if (isReadFolderOperation) {
we = new WebdavEntry(remoteData.getResponses()[0],
- client.getWebdavUri().getPath());
+ client.getWebdavUri().getPath());
mFolderAndFiles.add(fillOCFile(we));
} else {
start = 0;
}
String stripString = client.getWebdavUri().getPath();
- if (isSearchOperation && userId != null) {
- stripString = stripString.substring(0, stripString.lastIndexOf("/")) + "/dav/files/" + userId;
+ if (isSearchOperation && userIdPlain != null) {
+ stripString = stripString.substring(0, stripString.lastIndexOf("/")) + "/dav/files/" + userIdPlain;
stripString = stripString.replaceAll(" ", "%20");
}
diff --git a/src/main/java/com/owncloud/android/lib/resources/files/SearchRemoteOperation.java b/src/main/java/com/owncloud/android/lib/resources/files/SearchRemoteOperation.java
index 343ba587..cf3d047f 100644
--- a/src/main/java/com/owncloud/android/lib/resources/files/SearchRemoteOperation.java
+++ b/src/main/java/com/owncloud/android/lib/resources/files/SearchRemoteOperation.java
@@ -98,7 +98,7 @@ public class SearchRemoteOperation extends RemoteOperation {
Namespace.XMLNS_NAMESPACE,
searchQuery),
searchType,
- getClient().getUserId(),
+ getClient().getUserIdPlain(),
timestamp,
limit,
filterOutFiles);
@@ -112,8 +112,11 @@ public class SearchRemoteOperation extends RemoteOperation {
// get data from remote folder
MultiStatus dataInServer = searchMethod.getResponseBodyAsMultiStatus();
WebDavFileUtils webDavFileUtils = new WebDavFileUtils();
- ArrayList<Object> mFolderAndFiles = webDavFileUtils.readData(dataInServer, client, false, true,
- client.getUserId());
+ ArrayList<Object> mFolderAndFiles = webDavFileUtils.readData(dataInServer,
+ client,
+ false,
+ true,
+ client.getUserIdPlain());
// Result of the operation
result = new RemoteOperationResult(true, status, searchMethod.getResponseHeaders());