Skip to content

Commit a35f77c

Browse files
test on NC16
Signed-off-by: tobiasKaminsky <[email protected]>
1 parent e265959 commit a35f77c

20 files changed

+215
-72
lines changed

.drone.yml

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,3 +229,98 @@ trigger:
229229
event:
230230
- push
231231
- pull_request
232+
---
233+
kind: pipeline
234+
type: docker
235+
name: test-oldest-stable
236+
237+
steps:
238+
- name: test
239+
image: ghcr.io/nextcloud/continuous-integration-android8:2
240+
privileged: true
241+
environment:
242+
LOG_USERNAME:
243+
from_secret: LOG_USERNAME
244+
LOG_PASSWORD:
245+
from_secret: LOG_PASSWORD
246+
GIT_USERNAME:
247+
from_secret: GIT_USERNAME
248+
GIT_TOKEN:
249+
from_secret: GIT_TOKEN
250+
commands:
251+
- emulator -avd android -no-snapshot -gpu swiftshader_indirect -no-window -no-audio -skin 500x833 &
252+
- sed -i s"#https://server#http://server-oldest-stable#" gradle.properties
253+
- sed -i s"#1#5#" ./library/src/androidTest/java/com/owncloud/android/RetryTestRule.kt
254+
- ./gradlew assembleDebug
255+
- ./scripts/wait_for_emulator.sh
256+
- ./scripts/wait_for_server.sh server-oldest-stable
257+
- scripts/deleteOutdatedComments.sh "stable" "Unit" $DRONE_PULL_REQUEST $GIT_USERNAME $GIT_TOKEN
258+
- scripts/deleteOutdatedComments.sh "stable" "IT" $DRONE_PULL_REQUEST $GIT_USERNAME $GIT_TOKEN
259+
- ./gradlew jacocoTestDebugUnitTestReport || scripts/uploadReport.sh $LOG_USERNAME $LOG_PASSWORD $DRONE_BUILD_NUMBER "stable" "Unit" $DRONE_PULL_REQUEST $GIT_USERNAME $GIT_TOKEN
260+
- ./gradlew installDebugAndroidTest
261+
- ./gradlew createDebugCoverageReport || scripts/uploadReport.sh $LOG_USERNAME $LOG_PASSWORD $DRONE_BUILD_NUMBER "stable" "IT" $DRONE_PULL_REQUEST $GIT_USERNAME $GIT_TOKEN
262+
- ./gradlew combinedTestReport
263+
- curl -Os https://uploader.codecov.io/latest/linux/codecov
264+
- chmod +x codecov
265+
- ./codecov -t 2eec98c3-ff20-4cad-9e08-463471a33431
266+
267+
- name: notify
268+
image: drillster/drone-email
269+
settings:
270+
port: 587
271+
272+
recipients_only: true
273+
username:
274+
from_secret: EMAIL_USERNAME
275+
password:
276+
from_secret: EMAIL_PASSWORD
277+
recipients:
278+
from_secret: EMAIL_RECIPIENTS
279+
host:
280+
from_secret: EMAIL_HOST
281+
when:
282+
event:
283+
- push
284+
status:
285+
- failure
286+
branch:
287+
- master
288+
- stable-*
289+
290+
services:
291+
- name: server-oldest-stable
292+
image: nextcloudci/server:server-13
293+
environment:
294+
SERVER_VERSION: stable16
295+
BRANCH: stable16
296+
commands:
297+
- /initnc.sh
298+
- su www-data -c "php /var/www/html/occ log:manage --level warning"
299+
- su www-data -c "OC_PASS=user1 php /var/www/html/occ user:add --password-from-env --display-name='User One' user1"
300+
- su www-data -c "OC_PASS=user2 php /var/www/html/occ user:add --password-from-env --display-name='User Two' user2"
301+
- su www-data -c "OC_PASS=user3 php /var/www/html/occ user:add --password-from-env --display-name='User Three' user3"
302+
- su www-data -c "OC_PASS=test php /var/www/html/occ user:add --password-from-env --display-name='Test@Test' test@test"
303+
- su www-data -c "OC_PASS=test php /var/www/html/occ user:add --password-from-env --display-name='Test Spaces' 'test test'"
304+
- su www-data -c "php /var/www/html/occ user:setting user2 files quota 1G"
305+
- su www-data -c "php /var/www/html/occ group:add users"
306+
- su www-data -c "php /var/www/html/occ group:adduser users user1"
307+
- su www-data -c "php /var/www/html/occ group:adduser users user2"
308+
- su www-data -c "git clone -b $SERVER_VERSION https://github.com/nextcloud/activity.git /var/www/html/apps/activity/"
309+
- su www-data -c "php /var/www/html/occ app:enable activity"
310+
- su www-data -c "git clone -b $SERVER_VERSION https://github.com/nextcloud/text.git /var/www/html/apps/text/"
311+
- su www-data -c "php /var/www/html/occ app:enable text"
312+
- 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/"
313+
- su www-data -c "php /var/www/html/occ app:enable end_to_end_encryption"
314+
- su www-data -c "git clone -b $SERVER_VERSION https://github.com/nextcloud/password_policy.git /var/www/html/apps/password_policy/"
315+
- su www-data -c "php /var/www/html/occ app:enable password_policy"
316+
- su www-data -c "git clone -b $SERVER_VERSION https://github.com/nextcloud/external.git /var/www/html/apps/external/"
317+
- 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}}"'
318+
- su www-data -c "php /var/www/html/occ app:enable external"
319+
- /run.sh
320+
321+
trigger:
322+
branch:
323+
- master
324+
event:
325+
- push
326+
- pull_request

library/src/androidTest/java/com/nextcloud/android/lib/resources/directediting/DirectEditingCreateFileRemoteOperationIT.java

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,17 @@
3232

3333
import com.owncloud.android.AbstractIT;
3434
import com.owncloud.android.lib.common.operations.RemoteOperationResult;
35+
import com.owncloud.android.lib.resources.status.OwnCloudVersion;
3536

37+
import org.junit.BeforeClass;
3638
import org.junit.Test;
3739

3840
public class DirectEditingCreateFileRemoteOperationIT extends AbstractIT {
41+
@BeforeClass
42+
public static void beforeClass() {
43+
onlyOnMin(OwnCloudVersion.nextcloud_18);
44+
}
45+
3946
@Test
4047
public void createEmptyFile() {
4148
RemoteOperationResult<String> result = new DirectEditingCreateFileRemoteOperation("/test.md",
@@ -52,9 +59,9 @@ public void createEmptyFile() {
5259
@Test
5360
public void createFileFromTemplate() {
5461
RemoteOperationResult<String> result = new DirectEditingCreateFileRemoteOperation("/test.md",
55-
"text",
56-
"textdocument",
57-
"1")
62+
"text",
63+
"textdocument",
64+
"1")
5865
.execute(client);
5966
assertTrue(result.isSuccess());
6067

@@ -66,9 +73,9 @@ public void createFileFromTemplate() {
6673
@Test
6774
public void createFileWithSpecialCharacterFromTemplate() {
6875
RemoteOperationResult<String> result = new DirectEditingCreateFileRemoteOperation("/あ.md",
69-
"text",
70-
"textdocument",
71-
"1")
76+
"text",
77+
"textdocument",
78+
"1")
7279
.execute(client);
7380
assertTrue(result.isSuccess());
7481

library/src/androidTest/java/com/nextcloud/android/lib/resources/directediting/DirectEditingObtainListOfTemplatesRemoteOperationIT.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,16 @@
3333
import com.owncloud.android.AbstractIT;
3434
import com.owncloud.android.lib.common.TemplateList;
3535
import com.owncloud.android.lib.common.operations.RemoteOperationResult;
36+
import com.owncloud.android.lib.resources.status.OwnCloudVersion;
3637

38+
import org.junit.BeforeClass;
3739
import org.junit.Test;
3840

3941
public class DirectEditingObtainListOfTemplatesRemoteOperationIT extends AbstractIT {
42+
@BeforeClass
43+
public static void beforeClass() {
44+
onlyOnMin(OwnCloudVersion.nextcloud_18);
45+
}
4046

4147
@Test
4248
public void testGetAll() {

library/src/androidTest/java/com/nextcloud/android/lib/resources/directediting/DirectEditingObtainRemoteOperationIT.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,20 @@
2727
package com.nextcloud.android.lib.resources.directediting
2828

2929
import com.owncloud.android.AbstractIT
30+
import com.owncloud.android.lib.resources.status.OwnCloudVersion
3031
import junit.framework.Assert.assertEquals
3132
import junit.framework.Assert.assertFalse
3233
import junit.framework.Assert.assertNotNull
3334
import junit.framework.Assert.assertTrue
35+
import org.junit.Before
3436
import org.junit.Test
3537

3638
class DirectEditingObtainRemoteOperationIT : AbstractIT() {
39+
@Before
40+
fun before() {
41+
onlyOnMin(OwnCloudVersion.nextcloud_18)
42+
}
43+
3744
@Test
3845
fun testGetAll() {
3946
val result = DirectEditingObtainRemoteOperation().execute(client)

library/src/androidTest/java/com/nextcloud/android/lib/resources/directediting/DirectEditingOpenFileRemoteOperationIT.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,21 @@
3434
import com.owncloud.android.lib.common.operations.RemoteOperationResult;
3535
import com.owncloud.android.lib.resources.files.ReadFileRemoteOperation;
3636
import com.owncloud.android.lib.resources.files.UploadFileRemoteOperation;
37+
import com.owncloud.android.lib.resources.status.OwnCloudVersion;
3738

3839
import junit.framework.TestCase;
3940

41+
import org.junit.BeforeClass;
4042
import org.junit.Test;
4143

4244
import java.io.IOException;
4345

4446
public class DirectEditingOpenFileRemoteOperationIT extends AbstractIT {
47+
@BeforeClass
48+
public static void beforeClass() {
49+
onlyOnMin(OwnCloudVersion.nextcloud_18);
50+
}
51+
4552
@Test
4653
public void openFile() throws IOException {
4754
// create file

library/src/androidTest/java/com/nextcloud/android/lib/resources/files/ToggleFileLockRemoteOperationIT.kt

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,25 +32,17 @@ import com.owncloud.android.lib.resources.files.ReadFileRemoteOperation
3232
import com.owncloud.android.lib.resources.files.UploadFileRemoteOperation
3333
import com.owncloud.android.lib.resources.files.model.FileLockType
3434
import com.owncloud.android.lib.resources.files.model.RemoteFile
35-
import com.owncloud.android.lib.resources.status.GetCapabilitiesRemoteOperation
3635
import com.owncloud.android.lib.resources.status.NextcloudVersion.Companion.nextcloud_24
37-
import com.owncloud.android.lib.resources.status.OCCapability
3836
import org.junit.Assert.assertEquals
3937
import org.junit.Assert.assertFalse
4038
import org.junit.Assert.assertTrue
41-
import org.junit.Assume
4239
import org.junit.Test
4340

4441
class ToggleFileLockRemoteOperationIT : AbstractIT() {
4542

4643
@Test
4744
fun lockUnlockFile() {
48-
// only on >= NC24
49-
val ocCapability = GetCapabilitiesRemoteOperation()
50-
.execute(nextcloudClient).singleData as OCCapability
51-
Assume.assumeTrue(
52-
ocCapability.version.isNewerOrEqual(nextcloud_24)
53-
)
45+
onlyOnMin(nextcloud_24)
5446

5547
// create file
5648
val filePath: String = createFile("text")

library/src/androidTest/java/com/nextcloud/android/lib/resources/profile/GetHoverCardRemoteOperationIT.kt

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,23 +27,15 @@
2727
package com.nextcloud.android.lib.resources.profile
2828

2929
import com.owncloud.android.AbstractIT
30-
import com.owncloud.android.lib.resources.status.GetStatusRemoteOperation
3130
import com.owncloud.android.lib.resources.status.NextcloudVersion.Companion.nextcloud_23
32-
import com.owncloud.android.lib.resources.status.OwnCloudVersion
3331
import org.junit.Assert
34-
import org.junit.Assume
3532
import org.junit.Before
3633
import org.junit.Test
37-
import java.util.ArrayList
3834

3935
class GetHoverCardRemoteOperationIT : AbstractIT() {
4036
@Before
4137
fun before() {
42-
val result = GetStatusRemoteOperation(context).execute(client)
43-
Assert.assertTrue(result.isSuccess)
44-
val data = result.data as ArrayList<Any>
45-
val ownCloudVersion = data[0] as OwnCloudVersion
46-
Assume.assumeTrue(ownCloudVersion.isNewerOrEqual(nextcloud_23))
38+
onlyOnMin(nextcloud_23)
4739
}
4840

4941
@Test

library/src/androidTest/java/com/nextcloud/android/lib/resources/search/SearchProvidersRemoteOperationIT.kt

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -23,23 +23,21 @@
2323
package com.nextcloud.android.lib.resources.search
2424

2525
import com.owncloud.android.AbstractIT
26-
import com.owncloud.android.lib.resources.status.GetCapabilitiesRemoteOperation
27-
import com.owncloud.android.lib.resources.status.OCCapability
28-
import com.owncloud.android.lib.resources.status.OwnCloudVersion
26+
import com.owncloud.android.lib.resources.status.OwnCloudVersion.nextcloud_20
2927
import org.junit.Assert
3028
import org.junit.Assert.assertFalse
3129
import org.junit.Assert.assertTrue
32-
import org.junit.Assume.assumeTrue
30+
import org.junit.Before
3331
import org.junit.Test
3432

3533
class SearchProvidersRemoteOperationIT : AbstractIT() {
34+
@Before
35+
fun before() {
36+
onlyOnMin(nextcloud_20)
37+
}
38+
3639
@Test
3740
fun getSearchProviders() {
38-
// only on NC20+
39-
val ocCapability = GetCapabilitiesRemoteOperation()
40-
.execute(nextcloudClient).singleData as OCCapability
41-
assumeTrue(ocCapability.version.isNewerOrEqual(OwnCloudVersion.nextcloud_20))
42-
4341
val result = nextcloudClient.execute(UnifiedSearchProvidersRemoteOperation())
4442
assertTrue(result.isSuccess)
4543

@@ -53,13 +51,6 @@ class SearchProvidersRemoteOperationIT : AbstractIT() {
5351

5452
@Test
5553
fun getSearchProvidersOnOldServer() {
56-
// only on < NC20
57-
val ocCapability = GetCapabilitiesRemoteOperation()
58-
.execute(nextcloudClient).singleData as OCCapability
59-
assumeTrue(
60-
ocCapability.version.isOlderThan(OwnCloudVersion.nextcloud_20)
61-
)
62-
6354
val result = nextcloudClient.execute(UnifiedSearchProvidersRemoteOperation())
6455
assertFalse(result.isSuccess)
6556
}

library/src/androidTest/java/com/nextcloud/android/lib/resources/search/UnifiedSearchRemoteOperationIT.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,20 @@ import com.owncloud.android.AbstractIT
2626
import com.owncloud.android.lib.resources.files.CreateFolderRemoteOperation
2727
import com.owncloud.android.lib.resources.files.ReadFileRemoteOperation
2828
import com.owncloud.android.lib.resources.files.model.RemoteFile
29+
import com.owncloud.android.lib.resources.status.OwnCloudVersion
2930
import org.junit.Assert.assertEquals
3031
import org.junit.Assert.assertFalse
3132
import org.junit.Assert.assertNotNull
3233
import org.junit.Assert.assertTrue
34+
import org.junit.Before
3335
import org.junit.Test
3436

3537
class UnifiedSearchRemoteOperationIT : AbstractIT() {
38+
@Before
39+
fun before() {
40+
onlyOnMin(OwnCloudVersion.nextcloud_20)
41+
}
42+
3643
@Test
3744
fun filesSearchEmptySearch() {
3845
val result = UnifiedSearchRemoteOperation("files", "").execute(nextcloudClient)

library/src/androidTest/java/com/nextcloud/android/lib/richWorkspace/RichWorkspaceDirectEditingRemoteOperationIT.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,19 @@
3030
import com.owncloud.android.lib.common.operations.RemoteOperationResult;
3131
import com.owncloud.android.lib.resources.files.CreateFolderRemoteOperation;
3232
import com.owncloud.android.lib.resources.files.UploadFileRemoteOperation;
33+
import com.owncloud.android.lib.resources.status.OwnCloudVersion;
3334

35+
import org.junit.BeforeClass;
3436
import org.junit.Test;
3537

3638
import java.io.File;
3739
import java.io.IOException;
3840

3941
public class RichWorkspaceDirectEditingRemoteOperationIT extends AbstractIT {
42+
@BeforeClass
43+
public static void beforeClass() {
44+
onlyOnMin(OwnCloudVersion.nextcloud_18);
45+
}
4046

4147
@Test
4248
public void getEditLinkForRoot() {

library/src/androidTest/java/com/owncloud/android/AbstractIT.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
package com.owncloud.android;
2828

2929
import static junit.framework.TestCase.assertTrue;
30+
import static org.junit.Assume.assumeTrue;
3031

3132
import android.content.Context;
3233
import android.net.Uri;
@@ -47,7 +48,10 @@
4748
import com.owncloud.android.lib.resources.files.ReadFolderRemoteOperation;
4849
import com.owncloud.android.lib.resources.files.RemoveFileRemoteOperation;
4950
import com.owncloud.android.lib.resources.files.model.RemoteFile;
51+
import com.owncloud.android.lib.resources.status.GetCapabilitiesRemoteOperation;
5052
import com.owncloud.android.lib.resources.status.GetStatusRemoteOperation;
53+
import com.owncloud.android.lib.resources.status.OCCapability;
54+
import com.owncloud.android.lib.resources.status.OwnCloudVersion;
5155

5256
import org.apache.commons.httpclient.HttpStatus;
5357
import org.apache.commons.httpclient.methods.GetMethod;
@@ -262,4 +266,10 @@ public static File getFile(String filename) throws IOException {
262266

263267
return temp;
264268
}
269+
270+
public static void onlyOnMin(OwnCloudVersion version) {
271+
OCCapability ocCapability = (OCCapability) new GetCapabilitiesRemoteOperation()
272+
.execute(nextcloudClient).getSingleData();
273+
assumeTrue(ocCapability.getVersion().isNewerOrEqual(version));
274+
}
265275
}

0 commit comments

Comments
 (0)