diff options
author | tobiasKaminsky <tobias@kaminsky.me> | 2022-07-12 09:34:51 +0300 |
---|---|---|
committer | Tobias Kaminsky (Rebase PR Action) <tobias@nextcloud.com> | 2022-11-01 16:40:01 +0300 |
commit | ac5c4df2caa75941223487425a56014cb44b7301 (patch) | |
tree | 174a340ccec5488946d62e16c4b0dd67623f484c | |
parent | 12982fe8a02b99cc6e681b454466ae15bc538b71 (diff) |
test on NC16
Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
20 files changed, 216 insertions, 83 deletions
@@ -97,7 +97,7 @@ trigger: --- kind: pipeline type: docker -name: test-stable +name: test-stable24 steps: - name: test @@ -189,3 +189,98 @@ trigger: event: - push - pull_request +--- +kind: pipeline +type: docker +name: test-stable-16 + +steps: + - name: test + image: ghcr.io/nextcloud/continuous-integration-android8:2 + privileged: true + environment: + LOG_USERNAME: + from_secret: LOG_USERNAME + LOG_PASSWORD: + from_secret: LOG_PASSWORD + GIT_USERNAME: + from_secret: GIT_USERNAME + GIT_TOKEN: + from_secret: GIT_TOKEN + commands: + - emulator -avd android -no-snapshot -gpu swiftshader_indirect -no-window -no-audio -skin 500x833 & + - sed -i s"#https://server#http://server-oldest-stable#" gradle.properties + - sed -i s"#1#5#" ./library/src/androidTest/java/com/owncloud/android/RetryTestRule.kt + - ./gradlew assembleDebug + - ./scripts/wait_for_emulator.sh + - ./scripts/wait_for_server.sh server-oldest-stable + - scripts/deleteOutdatedComments.sh "stable" "Unit" $DRONE_PULL_REQUEST $GIT_USERNAME $GIT_TOKEN + - scripts/deleteOutdatedComments.sh "stable" "IT" $DRONE_PULL_REQUEST $GIT_USERNAME $GIT_TOKEN + - ./gradlew jacocoTestDebugUnitTestReport || scripts/uploadReport.sh $LOG_USERNAME $LOG_PASSWORD $DRONE_BUILD_NUMBER "stable" "Unit" $DRONE_PULL_REQUEST $GIT_USERNAME $GIT_TOKEN + - ./gradlew installDebugAndroidTest + - ./gradlew createDebugCoverageReport || scripts/uploadReport.sh $LOG_USERNAME $LOG_PASSWORD $DRONE_BUILD_NUMBER "stable" "IT" $DRONE_PULL_REQUEST $GIT_USERNAME $GIT_TOKEN + - ./gradlew combinedTestReport + - curl -Os https://uploader.codecov.io/latest/linux/codecov + - chmod +x codecov + - ./codecov -t 2eec98c3-ff20-4cad-9e08-463471a33431 + + - name: notify + image: drillster/drone-email + settings: + port: 587 + from: nextcloud-drone@kaminsky.me + recipients_only: true + username: + from_secret: EMAIL_USERNAME + password: + from_secret: EMAIL_PASSWORD + recipients: + from_secret: EMAIL_RECIPIENTS + host: + from_secret: EMAIL_HOST + when: + event: + - push + status: + - failure + branch: + - master + - stable-* + +services: + - name: server-oldest-stable + image: nextcloudci/server:server-13 + environment: + SERVER_VERSION: stable16 + BRANCH: stable16 + commands: + - /initnc.sh + - su www-data -c "php /var/www/html/occ log:manage --level warning" + - 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 "OC_PASS=test php /var/www/html/occ user:add --password-from-env --display-name='Test Spaces' '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" + - su www-data -c "php /var/www/html/occ group:adduser users user2" + - su www-data -c "git clone -b $SERVER_VERSION https://github.com/nextcloud/activity.git /var/www/html/apps/activity/" + - su www-data -c "php /var/www/html/occ app:enable activity" + - su www-data -c "git clone -b $SERVER_VERSION https://github.com/nextcloud/text.git /var/www/html/apps/text/" + - su www-data -c "php /var/www/html/occ app:enable text" + - su www-data -c "git clone -b $SERVER_VERSION https://github.com/nextcloud/end_to_end_encryption.git /var/www/html/apps/end_to_end_encryption/" + - su www-data -c "php /var/www/html/occ app:enable end_to_end_encryption" + - su www-data -c "git clone -b $SERVER_VERSION https://github.com/nextcloud/password_policy.git /var/www/html/apps/password_policy/" + - su www-data -c "php /var/www/html/occ app:enable password_policy" + - su www-data -c "git clone -b $SERVER_VERSION https://github.com/nextcloud/external.git /var/www/html/apps/external/" + - su www-data -c 'php /var/www/html/occ config:app:set external sites --value="{\"1\":{\"id\":1,\"name\":\"Nextcloud\",\"url\":\"https:\/\/www.nextcloud.com\",\"lang\":\"\",\"type\":\"link\",\"device\":\"\",\"icon\":\"external.svg\",\"groups\":[],\"redirect\":false},\"2\":{\"id\":2,\"name\":\"Forum\",\"url\":\"https:\/\/help.nextcloud.com\",\"lang\":\"\",\"type\":\"link\",\"device\":\"\",\"icon\":\"external.svg\",\"groups\":[],\"redirect\":false}}"' + - su www-data -c "php /var/www/html/occ app:enable external" + - /run.sh + +trigger: + branch: + - master + event: + - push + - pull_request diff --git a/library/src/androidTest/java/com/nextcloud/android/lib/resources/directediting/DirectEditingCreateFileRemoteOperationIT.java b/library/src/androidTest/java/com/nextcloud/android/lib/resources/directediting/DirectEditingCreateFileRemoteOperationIT.java index 79a0e9c1..0c1a4f8a 100644 --- a/library/src/androidTest/java/com/nextcloud/android/lib/resources/directediting/DirectEditingCreateFileRemoteOperationIT.java +++ b/library/src/androidTest/java/com/nextcloud/android/lib/resources/directediting/DirectEditingCreateFileRemoteOperationIT.java @@ -32,10 +32,17 @@ import static org.junit.Assert.assertTrue; import com.owncloud.android.AbstractIT; import com.owncloud.android.lib.common.operations.RemoteOperationResult; +import com.owncloud.android.lib.resources.status.OwnCloudVersion; +import org.junit.BeforeClass; import org.junit.Test; public class DirectEditingCreateFileRemoteOperationIT extends AbstractIT { + @BeforeClass + public static void beforeClass() { + onlyOnMin(OwnCloudVersion.nextcloud_18); + } + @Test public void createEmptyFile() { RemoteOperationResult<String> result = new DirectEditingCreateFileRemoteOperation("/test.md", @@ -52,9 +59,9 @@ public class DirectEditingCreateFileRemoteOperationIT extends AbstractIT { @Test public void createFileFromTemplate() { RemoteOperationResult<String> result = new DirectEditingCreateFileRemoteOperation("/test.md", - "text", - "textdocument", - "1") + "text", + "textdocument", + "1") .execute(client); assertTrue(result.isSuccess()); @@ -66,9 +73,9 @@ public class DirectEditingCreateFileRemoteOperationIT extends AbstractIT { @Test public void createFileWithSpecialCharacterFromTemplate() { RemoteOperationResult<String> result = new DirectEditingCreateFileRemoteOperation("/あ.md", - "text", - "textdocument", - "1") + "text", + "textdocument", + "1") .execute(client); assertTrue(result.isSuccess()); diff --git a/library/src/androidTest/java/com/nextcloud/android/lib/resources/directediting/DirectEditingObtainListOfTemplatesRemoteOperationIT.java b/library/src/androidTest/java/com/nextcloud/android/lib/resources/directediting/DirectEditingObtainListOfTemplatesRemoteOperationIT.java index 5bc21ab9..f82d8b64 100644 --- a/library/src/androidTest/java/com/nextcloud/android/lib/resources/directediting/DirectEditingObtainListOfTemplatesRemoteOperationIT.java +++ b/library/src/androidTest/java/com/nextcloud/android/lib/resources/directediting/DirectEditingObtainListOfTemplatesRemoteOperationIT.java @@ -33,10 +33,16 @@ import static org.junit.Assert.assertTrue; import com.owncloud.android.AbstractIT; import com.owncloud.android.lib.common.TemplateList; import com.owncloud.android.lib.common.operations.RemoteOperationResult; +import com.owncloud.android.lib.resources.status.OwnCloudVersion; +import org.junit.BeforeClass; import org.junit.Test; public class DirectEditingObtainListOfTemplatesRemoteOperationIT extends AbstractIT { + @BeforeClass + public static void beforeClass() { + onlyOnMin(OwnCloudVersion.nextcloud_18); + } @Test public void testGetAll() { diff --git a/library/src/androidTest/java/com/nextcloud/android/lib/resources/directediting/DirectEditingObtainRemoteOperationIT.kt b/library/src/androidTest/java/com/nextcloud/android/lib/resources/directediting/DirectEditingObtainRemoteOperationIT.kt index 06cb9fb7..99efb30a 100644 --- a/library/src/androidTest/java/com/nextcloud/android/lib/resources/directediting/DirectEditingObtainRemoteOperationIT.kt +++ b/library/src/androidTest/java/com/nextcloud/android/lib/resources/directediting/DirectEditingObtainRemoteOperationIT.kt @@ -27,13 +27,20 @@ package com.nextcloud.android.lib.resources.directediting import com.owncloud.android.AbstractIT +import com.owncloud.android.lib.resources.status.OwnCloudVersion import junit.framework.Assert.assertEquals import junit.framework.Assert.assertFalse import junit.framework.Assert.assertNotNull import junit.framework.Assert.assertTrue +import org.junit.Before import org.junit.Test class DirectEditingObtainRemoteOperationIT : AbstractIT() { + @Before + fun before() { + onlyOnMin(OwnCloudVersion.nextcloud_18) + } + @Test fun testGetAll() { val result = DirectEditingObtainRemoteOperation().execute(client) diff --git a/library/src/androidTest/java/com/nextcloud/android/lib/resources/directediting/DirectEditingOpenFileRemoteOperationIT.java b/library/src/androidTest/java/com/nextcloud/android/lib/resources/directediting/DirectEditingOpenFileRemoteOperationIT.java index 0f350510..a8f336c2 100644 --- a/library/src/androidTest/java/com/nextcloud/android/lib/resources/directediting/DirectEditingOpenFileRemoteOperationIT.java +++ b/library/src/androidTest/java/com/nextcloud/android/lib/resources/directediting/DirectEditingOpenFileRemoteOperationIT.java @@ -34,14 +34,21 @@ import com.owncloud.android.AbstractIT; import com.owncloud.android.lib.common.operations.RemoteOperationResult; import com.owncloud.android.lib.resources.files.ReadFileRemoteOperation; import com.owncloud.android.lib.resources.files.UploadFileRemoteOperation; +import com.owncloud.android.lib.resources.status.OwnCloudVersion; import junit.framework.TestCase; +import org.junit.BeforeClass; import org.junit.Test; import java.io.IOException; public class DirectEditingOpenFileRemoteOperationIT extends AbstractIT { + @BeforeClass + public static void beforeClass() { + onlyOnMin(OwnCloudVersion.nextcloud_18); + } + @Test public void openFile() throws IOException { // create file diff --git a/library/src/androidTest/java/com/nextcloud/android/lib/resources/files/ToggleFileLockRemoteOperationIT.kt b/library/src/androidTest/java/com/nextcloud/android/lib/resources/files/ToggleFileLockRemoteOperationIT.kt index d8b45ef1..981dd661 100644 --- a/library/src/androidTest/java/com/nextcloud/android/lib/resources/files/ToggleFileLockRemoteOperationIT.kt +++ b/library/src/androidTest/java/com/nextcloud/android/lib/resources/files/ToggleFileLockRemoteOperationIT.kt @@ -32,25 +32,17 @@ import com.owncloud.android.lib.resources.files.ReadFileRemoteOperation import com.owncloud.android.lib.resources.files.UploadFileRemoteOperation import com.owncloud.android.lib.resources.files.model.FileLockType import com.owncloud.android.lib.resources.files.model.RemoteFile -import com.owncloud.android.lib.resources.status.GetCapabilitiesRemoteOperation import com.owncloud.android.lib.resources.status.NextcloudVersion.Companion.nextcloud_24 -import com.owncloud.android.lib.resources.status.OCCapability import org.junit.Assert.assertEquals import org.junit.Assert.assertFalse import org.junit.Assert.assertTrue -import org.junit.Assume import org.junit.Test class ToggleFileLockRemoteOperationIT : AbstractIT() { @Test fun lockUnlockFile() { - // only on >= NC24 - val ocCapability = GetCapabilitiesRemoteOperation() - .execute(nextcloudClient).singleData as OCCapability - Assume.assumeTrue( - ocCapability.version.isNewerOrEqual(nextcloud_24) - ) + onlyOnMin(nextcloud_24) // create file val filePath: String = createFile("text") diff --git a/library/src/androidTest/java/com/nextcloud/android/lib/resources/profile/GetHoverCardRemoteOperationIT.kt b/library/src/androidTest/java/com/nextcloud/android/lib/resources/profile/GetHoverCardRemoteOperationIT.kt index 5dd95fc2..3f541ca0 100644 --- a/library/src/androidTest/java/com/nextcloud/android/lib/resources/profile/GetHoverCardRemoteOperationIT.kt +++ b/library/src/androidTest/java/com/nextcloud/android/lib/resources/profile/GetHoverCardRemoteOperationIT.kt @@ -27,23 +27,15 @@ package com.nextcloud.android.lib.resources.profile import com.owncloud.android.AbstractIT -import com.owncloud.android.lib.resources.status.GetStatusRemoteOperation import com.owncloud.android.lib.resources.status.NextcloudVersion.Companion.nextcloud_23 -import com.owncloud.android.lib.resources.status.OwnCloudVersion import org.junit.Assert -import org.junit.Assume import org.junit.Before import org.junit.Test -import java.util.ArrayList class GetHoverCardRemoteOperationIT : AbstractIT() { @Before fun before() { - val result = GetStatusRemoteOperation(context).execute(client) - Assert.assertTrue(result.isSuccess) - val data = result.data as ArrayList<Any> - val ownCloudVersion = data[0] as OwnCloudVersion - Assume.assumeTrue(ownCloudVersion.isNewerOrEqual(nextcloud_23)) + onlyOnMin(nextcloud_23) } @Test diff --git a/library/src/androidTest/java/com/nextcloud/android/lib/resources/search/SearchProvidersRemoteOperationIT.kt b/library/src/androidTest/java/com/nextcloud/android/lib/resources/search/SearchProvidersRemoteOperationIT.kt index f3c4fd2d..efb974ef 100644 --- a/library/src/androidTest/java/com/nextcloud/android/lib/resources/search/SearchProvidersRemoteOperationIT.kt +++ b/library/src/androidTest/java/com/nextcloud/android/lib/resources/search/SearchProvidersRemoteOperationIT.kt @@ -23,23 +23,20 @@ package com.nextcloud.android.lib.resources.search import com.owncloud.android.AbstractIT -import com.owncloud.android.lib.resources.status.GetCapabilitiesRemoteOperation -import com.owncloud.android.lib.resources.status.OCCapability -import com.owncloud.android.lib.resources.status.OwnCloudVersion +import com.owncloud.android.lib.resources.status.OwnCloudVersion.nextcloud_20 import org.junit.Assert -import org.junit.Assert.assertFalse import org.junit.Assert.assertTrue -import org.junit.Assume.assumeTrue +import org.junit.Before import org.junit.Test class SearchProvidersRemoteOperationIT : AbstractIT() { + @Before + fun before() { + onlyOnMin(nextcloud_20) + } + @Test fun getSearchProviders() { - // only on NC20+ - val ocCapability = GetCapabilitiesRemoteOperation() - .execute(nextcloudClient).singleData as OCCapability - assumeTrue(ocCapability.version.isNewerOrEqual(OwnCloudVersion.nextcloud_20)) - val result = nextcloudClient.execute(UnifiedSearchProvidersRemoteOperation()) assertTrue(result.isSuccess) @@ -50,17 +47,4 @@ class SearchProvidersRemoteOperationIT : AbstractIT() { Assert.assertNotNull(providers.providers.find { it.name == "Files" }) Assert.assertNull(providers.providers.find { it.name == "RandomSearchProvider" }) } - - @Test - fun getSearchProvidersOnOldServer() { - // only on < NC20 - val ocCapability = GetCapabilitiesRemoteOperation() - .execute(nextcloudClient).singleData as OCCapability - assumeTrue( - ocCapability.version.isOlderThan(OwnCloudVersion.nextcloud_20) - ) - - val result = nextcloudClient.execute(UnifiedSearchProvidersRemoteOperation()) - assertFalse(result.isSuccess) - } } diff --git a/library/src/androidTest/java/com/nextcloud/android/lib/resources/search/UnifiedSearchRemoteOperationIT.kt b/library/src/androidTest/java/com/nextcloud/android/lib/resources/search/UnifiedSearchRemoteOperationIT.kt index ebd6bf32..020887cc 100644 --- a/library/src/androidTest/java/com/nextcloud/android/lib/resources/search/UnifiedSearchRemoteOperationIT.kt +++ b/library/src/androidTest/java/com/nextcloud/android/lib/resources/search/UnifiedSearchRemoteOperationIT.kt @@ -26,13 +26,20 @@ import com.owncloud.android.AbstractIT import com.owncloud.android.lib.resources.files.CreateFolderRemoteOperation import com.owncloud.android.lib.resources.files.ReadFileRemoteOperation import com.owncloud.android.lib.resources.files.model.RemoteFile +import com.owncloud.android.lib.resources.status.OwnCloudVersion import org.junit.Assert.assertEquals import org.junit.Assert.assertFalse import org.junit.Assert.assertNotNull import org.junit.Assert.assertTrue +import org.junit.Before import org.junit.Test class UnifiedSearchRemoteOperationIT : AbstractIT() { + @Before + fun before() { + onlyOnMin(OwnCloudVersion.nextcloud_20) + } + @Test fun filesSearchEmptySearch() { val result = UnifiedSearchRemoteOperation("files", "").execute(nextcloudClient) diff --git a/library/src/androidTest/java/com/nextcloud/android/lib/richWorkspace/RichWorkspaceDirectEditingRemoteOperationIT.java b/library/src/androidTest/java/com/nextcloud/android/lib/richWorkspace/RichWorkspaceDirectEditingRemoteOperationIT.java index a844ed44..23cba6aa 100644 --- a/library/src/androidTest/java/com/nextcloud/android/lib/richWorkspace/RichWorkspaceDirectEditingRemoteOperationIT.java +++ b/library/src/androidTest/java/com/nextcloud/android/lib/richWorkspace/RichWorkspaceDirectEditingRemoteOperationIT.java @@ -30,13 +30,19 @@ import com.owncloud.android.AbstractIT; import com.owncloud.android.lib.common.operations.RemoteOperationResult; import com.owncloud.android.lib.resources.files.CreateFolderRemoteOperation; import com.owncloud.android.lib.resources.files.UploadFileRemoteOperation; +import com.owncloud.android.lib.resources.status.OwnCloudVersion; +import org.junit.BeforeClass; import org.junit.Test; import java.io.File; import java.io.IOException; public class RichWorkspaceDirectEditingRemoteOperationIT extends AbstractIT { + @BeforeClass + public static void beforeClass() { + onlyOnMin(OwnCloudVersion.nextcloud_18); + } @Test public void getEditLinkForRoot() { diff --git a/library/src/androidTest/java/com/owncloud/android/AbstractIT.java b/library/src/androidTest/java/com/owncloud/android/AbstractIT.java index fe42dbde..bf3d0339 100644 --- a/library/src/androidTest/java/com/owncloud/android/AbstractIT.java +++ b/library/src/androidTest/java/com/owncloud/android/AbstractIT.java @@ -27,6 +27,7 @@ package com.owncloud.android; import static junit.framework.TestCase.assertTrue; +import static org.junit.Assume.assumeTrue; import android.content.Context; import android.net.Uri; @@ -47,7 +48,10 @@ import com.owncloud.android.lib.resources.e2ee.ToggleEncryptionRemoteOperation; import com.owncloud.android.lib.resources.files.ReadFolderRemoteOperation; import com.owncloud.android.lib.resources.files.RemoveFileRemoteOperation; import com.owncloud.android.lib.resources.files.model.RemoteFile; +import com.owncloud.android.lib.resources.status.GetCapabilitiesRemoteOperation; import com.owncloud.android.lib.resources.status.GetStatusRemoteOperation; +import com.owncloud.android.lib.resources.status.OCCapability; +import com.owncloud.android.lib.resources.status.OwnCloudVersion; import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.methods.GetMethod; @@ -277,4 +281,10 @@ public abstract class AbstractIT { return temp; } + + public static void onlyOnMin(OwnCloudVersion version) { + OCCapability ocCapability = (OCCapability) new GetCapabilitiesRemoteOperation() + .execute(nextcloudClient).getSingleData(); + assumeTrue(ocCapability.getVersion().isNewerOrEqual(version)); + } } diff --git a/library/src/androidTest/java/com/owncloud/android/FileIT.java b/library/src/androidTest/java/com/owncloud/android/FileIT.java index 0aaf32e6..cc208099 100644 --- a/library/src/androidTest/java/com/owncloud/android/FileIT.java +++ b/library/src/androidTest/java/com/owncloud/android/FileIT.java @@ -37,6 +37,7 @@ import com.owncloud.android.lib.resources.shares.CreateShareRemoteOperation; import com.owncloud.android.lib.resources.shares.OCShare; import com.owncloud.android.lib.resources.shares.ShareType; import com.owncloud.android.lib.resources.shares.ShareeUser; +import com.owncloud.android.lib.resources.status.OwnCloudVersion; import org.junit.Test; @@ -162,6 +163,8 @@ public class FileIT extends AbstractIT { @Test public void testShareToGroupSharees() { + onlyOnMin(OwnCloudVersion.nextcloud_17); + // create & verify folder String path = "/testFolder/"; assertTrue(new CreateFolderRemoteOperation(path, true).execute(client).isSuccess()); @@ -171,7 +174,7 @@ public class FileIT extends AbstractIT { // share folder assertTrue(new CreateShareRemoteOperation(path, - ShareType.GROUP, + ShareType.GROUP, "users", false, "", @@ -197,6 +200,8 @@ public class FileIT extends AbstractIT { @Test public void testOneSharees() { + onlyOnMin(OwnCloudVersion.nextcloud_17); + // create & verify folder String path = "/testFolder/"; assertTrue(new CreateFolderRemoteOperation(path, true).execute(client).isSuccess()); @@ -206,7 +211,7 @@ public class FileIT extends AbstractIT { // share folder assertTrue(new CreateShareRemoteOperation(path, - ShareType.USER, + ShareType.USER, "user1", false, "", @@ -232,6 +237,8 @@ public class FileIT extends AbstractIT { @Test public void testTwoShareesOnParent() { + onlyOnMin(OwnCloudVersion.nextcloud_17); + // create & verify folder String path = "/testFolder/"; assertTrue(new CreateFolderRemoteOperation(path, true).execute(client).isSuccess()); @@ -280,6 +287,8 @@ public class FileIT extends AbstractIT { @Test public void testTwoSharees() { + onlyOnMin(OwnCloudVersion.nextcloud_17); + // create & verify folder String path = "/testFolder/"; assertTrue(new CreateFolderRemoteOperation(path, true).execute(client).isSuccess()); diff --git a/library/src/androidTest/java/com/owncloud/android/GetCapabilitiesIT.java b/library/src/androidTest/java/com/owncloud/android/GetCapabilitiesIT.java index 919c7645..75565047 100644 --- a/library/src/androidTest/java/com/owncloud/android/GetCapabilitiesIT.java +++ b/library/src/androidTest/java/com/owncloud/android/GetCapabilitiesIT.java @@ -26,6 +26,12 @@ */ package com.owncloud.android; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertSame; +import static org.junit.Assert.assertTrue; + import com.owncloud.android.lib.common.operations.RemoteOperationResult; import com.owncloud.android.lib.resources.status.CapabilityBooleanType; import com.owncloud.android.lib.resources.status.GetCapabilitiesRemoteOperation; @@ -35,12 +41,6 @@ import com.owncloud.android.lib.resources.status.OwnCloudVersion; import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertSame; -import static org.junit.Assert.assertTrue; - /** * Class to test GetRemoteCapabilitiesOperation */ @@ -127,9 +127,11 @@ public class GetCapabilitiesIT extends AbstractIT { assertTrue(capability.getFilesVersioning().isTrue()); assertTrue(capability.getFilesUndelete().isTrue()); assertNotNull(capability.getVersion()); - assertFalse(capability.getEtag().isEmpty()); + if (capability.getVersion().isNewerOrEqual(OwnCloudVersion.nextcloud_17)) { + assertFalse(capability.getEtag().isEmpty()); + assertFalse(capability.getDirectEditingEtag().isEmpty()); + } assertSame(CapabilityBooleanType.FALSE, capability.getRichDocuments()); - assertFalse(capability.getDirectEditingEtag().isEmpty()); // user status if (capability.getVersion().isNewerOrEqual(OwnCloudVersion.nextcloud_20)) { diff --git a/library/src/androidTest/java/com/owncloud/android/lib/resources/e2ee/UpdateMetadataRemoteOperationIT.java b/library/src/androidTest/java/com/owncloud/android/lib/resources/e2ee/UpdateMetadataRemoteOperationIT.java index 73943aa6..4ac1e70e 100644 --- a/library/src/androidTest/java/com/owncloud/android/lib/resources/e2ee/UpdateMetadataRemoteOperationIT.java +++ b/library/src/androidTest/java/com/owncloud/android/lib/resources/e2ee/UpdateMetadataRemoteOperationIT.java @@ -45,12 +45,7 @@ import org.junit.Test; public class UpdateMetadataRemoteOperationIT extends AbstractIT { @Test public void uploadAndModify() { - // tests only for NC19+ - OCCapability capability = (OCCapability) new GetCapabilitiesRemoteOperation(null) - .execute(client) - .getSingleData(); - - assumeTrue(capability.getVersion().isNewerOrEqual(OwnCloudVersion.nextcloud_20)); + onlyOnMin(OwnCloudVersion.nextcloud_19); // E2E server app checks for official NC client with >=3.13.0, // and blocks all other clients, e.g. 3rd party apps using this lib diff --git a/library/src/androidTest/java/com/owncloud/android/lib/resources/files/SearchRemoteOperationIT.java b/library/src/androidTest/java/com/owncloud/android/lib/resources/files/SearchRemoteOperationIT.java index 8b718002..faa360e8 100644 --- a/library/src/androidTest/java/com/owncloud/android/lib/resources/files/SearchRemoteOperationIT.java +++ b/library/src/androidTest/java/com/owncloud/android/lib/resources/files/SearchRemoteOperationIT.java @@ -44,6 +44,7 @@ import com.owncloud.android.lib.resources.shares.CreateShareRemoteOperation; import com.owncloud.android.lib.resources.shares.ShareType; import com.owncloud.android.lib.resources.status.GetCapabilitiesRemoteOperation; import com.owncloud.android.lib.resources.status.OCCapability; +import com.owncloud.android.lib.resources.status.OwnCloudVersion; import org.junit.BeforeClass; import org.junit.Test; @@ -416,6 +417,8 @@ public class SearchRemoteOperationIT extends AbstractIT { @Test public void testGallerySearch() throws IOException { + onlyOnMin(OwnCloudVersion.nextcloud_18); + for (int i = 0; i < 10; i++) { String filePath = createFile("image" + i); String remotePath = "/image" + i + ".jpg"; diff --git a/library/src/androidTest/java/com/owncloud/android/lib/resources/files/UploadFileRemoteOperationIT.kt b/library/src/androidTest/java/com/owncloud/android/lib/resources/files/UploadFileRemoteOperationIT.kt index 5ecad4de..1bc10594 100644 --- a/library/src/androidTest/java/com/owncloud/android/lib/resources/files/UploadFileRemoteOperationIT.kt +++ b/library/src/androidTest/java/com/owncloud/android/lib/resources/files/UploadFileRemoteOperationIT.kt @@ -25,6 +25,9 @@ import android.os.Build import com.owncloud.android.AbstractIT import com.owncloud.android.lib.common.utils.Log_OC import com.owncloud.android.lib.resources.files.model.RemoteFile +import com.owncloud.android.lib.resources.status.GetCapabilitiesRemoteOperation +import com.owncloud.android.lib.resources.status.OCCapability +import com.owncloud.android.lib.resources.status.OwnCloudVersion import junit.framework.TestCase.assertEquals import org.junit.Assert.assertNotNull import org.junit.Assert.assertTrue @@ -47,6 +50,9 @@ class UploadFileRemoteOperationIT : AbstractIT() { @Test fun upload() { + val ocCapability = GetCapabilitiesRemoteOperation() + .execute(nextcloudClient).singleData as OCCapability + // create file val filePath = createFile("text") val remotePath = "/test.md" @@ -73,12 +79,15 @@ class UploadFileRemoteOperationIT : AbstractIT() { var remoteFile = result.data[0] as RemoteFile assertEquals(remotePath, remoteFile.remotePath) - assertEquals(creationTimestamp, remoteFile.creationTimestamp) assertEquals(uploadResult.resultData, remoteFile.etag) - assertTrue( - uploadTimestamp - TIME_OFFSET < remoteFile.uploadTimestamp || - uploadTimestamp + TIME_OFFSET > remoteFile.uploadTimestamp - ) + + if (ocCapability.version.isNewerOrEqual(OwnCloudVersion.nextcloud_18)) { + assertEquals(creationTimestamp, remoteFile.creationTimestamp) + assertTrue( + uploadTimestamp - TIME_OFFSET < remoteFile.uploadTimestamp || + uploadTimestamp + TIME_OFFSET > remoteFile.uploadTimestamp + ) + } // ReadFolderRemoteOperation result = ReadFolderRemoteOperation(remotePath).execute(client) @@ -87,11 +96,14 @@ class UploadFileRemoteOperationIT : AbstractIT() { remoteFile = result.data[0] as RemoteFile assertEquals(remotePath, remoteFile.remotePath) - assertEquals(creationTimestamp, remoteFile.creationTimestamp) - assertTrue( - uploadTimestamp - TIME_OFFSET < remoteFile.uploadTimestamp || - uploadTimestamp + TIME_OFFSET > remoteFile.uploadTimestamp - ) + + if (ocCapability.version.isNewerOrEqual(OwnCloudVersion.nextcloud_18)) { + assertEquals(creationTimestamp, remoteFile.creationTimestamp) + assertTrue( + uploadTimestamp - TIME_OFFSET < remoteFile.uploadTimestamp || + uploadTimestamp + TIME_OFFSET > remoteFile.uploadTimestamp + ) + } } private fun getCreationTimestamp(file: File): Long? { diff --git a/library/src/androidTest/java/com/owncloud/android/lib/resources/shares/GetSharesRemoteOperationIT.java b/library/src/androidTest/java/com/owncloud/android/lib/resources/shares/GetSharesRemoteOperationIT.java index 977388c5..bf593d11 100644 --- a/library/src/androidTest/java/com/owncloud/android/lib/resources/shares/GetSharesRemoteOperationIT.java +++ b/library/src/androidTest/java/com/owncloud/android/lib/resources/shares/GetSharesRemoteOperationIT.java @@ -42,6 +42,7 @@ 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.CreateFolderRemoteOperation; +import com.owncloud.android.lib.resources.status.OwnCloudVersion; import org.junit.Test; @@ -167,6 +168,8 @@ public class GetSharesRemoteOperationIT extends AbstractIT { @Test public void sharedWithMe() { + onlyOnMin(OwnCloudVersion.nextcloud_19); + GetSharesRemoteOperation sut = new GetSharesRemoteOperation(); GetSharesRemoteOperation sutSharedWithMe = new GetSharesRemoteOperation(true); diff --git a/library/src/androidTest/java/com/owncloud/android/lib/resources/users/AppTokenRemoteOperationIT.kt b/library/src/androidTest/java/com/owncloud/android/lib/resources/users/AppTokenRemoteOperationIT.kt index 6675c3e1..ebbde909 100644 --- a/library/src/androidTest/java/com/owncloud/android/lib/resources/users/AppTokenRemoteOperationIT.kt +++ b/library/src/androidTest/java/com/owncloud/android/lib/resources/users/AppTokenRemoteOperationIT.kt @@ -28,6 +28,7 @@ package com.owncloud.android.lib.resources.users import androidx.test.platform.app.InstrumentationRegistry import com.owncloud.android.AbstractIT +import com.owncloud.android.lib.resources.status.OwnCloudVersion import junit.framework.Assert.assertFalse import junit.framework.Assert.assertTrue import okhttp3.Credentials.basic @@ -76,6 +77,8 @@ class AppTokenRemoteOperationIT : AbstractIT() { @Test fun deleteAppPassword() { + onlyOnMin(OwnCloudVersion.nextcloud_17) + val arguments = InstrumentationRegistry.getArguments() val username: String = arguments.getString("TEST_SERVER_USERNAME", "") val password: String = arguments.getString("TEST_SERVER_PASSWORD", "") diff --git a/library/src/androidTest/java/com/owncloud/android/lib/resources/users/StatusIT.kt b/library/src/androidTest/java/com/owncloud/android/lib/resources/users/StatusIT.kt index 576878f2..5f4146b6 100644 --- a/library/src/androidTest/java/com/owncloud/android/lib/resources/users/StatusIT.kt +++ b/library/src/androidTest/java/com/owncloud/android/lib/resources/users/StatusIT.kt @@ -22,12 +22,9 @@ package com.owncloud.android.lib.resources.users import com.owncloud.android.AbstractIT -import com.owncloud.android.lib.resources.status.GetCapabilitiesRemoteOperation -import com.owncloud.android.lib.resources.status.OCCapability import com.owncloud.android.lib.resources.status.OwnCloudVersion import org.junit.Assert.assertEquals import org.junit.Assert.assertTrue -import org.junit.Assume.assumeTrue import org.junit.Before import org.junit.Test @@ -39,11 +36,7 @@ class StatusIT : AbstractIT() { @Before fun before() { - val result = GetCapabilitiesRemoteOperation().execute(nextcloudClient) - assertTrue(result.isSuccess) - val ocCapability = result.singleData as OCCapability - - assumeTrue(ocCapability.version.isNewerOrEqual(OwnCloudVersion.nextcloud_20)) + onlyOnMin(OwnCloudVersion.nextcloud_20) } @Test diff --git a/scripts/wait_for_server.sh b/scripts/wait_for_server.sh index 5e1eb1bb..5365d61f 100755 --- a/scripts/wait_for_server.sh +++ b/scripts/wait_for_server.sh @@ -10,7 +10,7 @@ until [[ $status = "false" ]]; do if [[ "$status" =~ "false" || "$status" = "" ]]; then let "counter += 1" - if [[ $counter -gt 10 ]]; then + if [[ $counter -gt 20 ]]; then echo "Failed to wait for server" exit 1 fi |