Skip to content

Commit 30252d7

Browse files
committed
Add FilesDownloadLimitIT
Signed-off-by: ZetaTom <70907959+ZetaTom@users.noreply.github.com>
1 parent d36ccce commit 30252d7

2 files changed

Lines changed: 98 additions & 0 deletions

File tree

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
/*
2+
* Nextcloud - Android Client
3+
*
4+
* SPDX-FileCopyrightText: 2025 ZetaTom <70907959+zetatom@users.noreply.github.com>
5+
* SPDX-License-Identifier: AGPL-3.0-or-later
6+
*/
7+
8+
package com.owncloud.android.lib.resources.files
9+
10+
import com.nextcloud.android.lib.resources.files.GetFilesDownloadLimitRemoteOperation
11+
import com.nextcloud.android.lib.resources.files.RemoveFilesDownloadLimitRemoteOperation
12+
import com.nextcloud.android.lib.resources.files.SetFilesDownloadLimitRemoteOperation
13+
import com.owncloud.android.AbstractIT
14+
import com.owncloud.android.lib.resources.shares.CreateShareRemoteOperation
15+
import com.owncloud.android.lib.resources.shares.OCShare
16+
import com.owncloud.android.lib.resources.shares.ShareType
17+
import com.owncloud.android.lib.resources.status.GetCapabilitiesRemoteOperation
18+
import com.owncloud.android.lib.resources.status.OCCapability
19+
import com.owncloud.android.lib.resources.status.OwnCloudVersion
20+
import org.junit.Assume.assumeTrue
21+
import org.junit.Before
22+
import org.junit.Test
23+
24+
class FilesDownloadLimitIT : AbstractIT() {
25+
@Before
26+
fun before() {
27+
testOnlyOnServer(OwnCloudVersion.nextcloud_30)
28+
assumeTrue(getCapability().filesDownloadLimit.isTrue)
29+
}
30+
31+
@Test
32+
fun getDefaultLimit() {
33+
val defaultLimit = getCapability().filesDownloadLimitDefault
34+
assert(defaultLimit == 0)
35+
}
36+
37+
@Test
38+
fun downloadLimit() {
39+
val share = createTestShare()
40+
val limit = 5
41+
42+
val resultSet = SetFilesDownloadLimitRemoteOperation(share.token!!, limit).execute(nextcloudClient)
43+
assert(resultSet.isSuccess)
44+
45+
shortSleep()
46+
47+
val resultGet1 = GetFilesDownloadLimitRemoteOperation(REMOTE_PATH, false).execute(client)
48+
assert(resultGet1.isSuccess)
49+
assert(resultGet1.resultData.size == 1)
50+
assert(resultGet1.resultData.first().token == share.token)
51+
assert(resultGet1.resultData.first().limit == limit)
52+
assert(resultGet1.resultData.first().count == 0)
53+
54+
shortSleep()
55+
56+
val resultRemove = RemoveFilesDownloadLimitRemoteOperation(share.token!!).execute(nextcloudClient)
57+
assert(resultRemove.isSuccess)
58+
59+
shortSleep()
60+
61+
val resultGet2 = GetFilesDownloadLimitRemoteOperation(REMOTE_PATH, false).execute(client)
62+
assert(resultGet2.isSuccess)
63+
assert(resultGet2.resultData.isEmpty())
64+
}
65+
66+
private fun getCapability(): OCCapability =
67+
GetCapabilitiesRemoteOperation().execute(nextcloudClient).singleData as OCCapability
68+
69+
private fun createTestShare(): OCShare {
70+
val localPath = createFile("test")
71+
72+
assert(
73+
UploadFileRemoteOperation(localPath, REMOTE_PATH, "text/plain", RANDOM_MTIME)
74+
.execute(client)
75+
.isSuccess
76+
)
77+
78+
val result =
79+
CreateShareRemoteOperation(
80+
REMOTE_PATH,
81+
ShareType.PUBLIC_LINK,
82+
"",
83+
false,
84+
"",
85+
1
86+
).execute(client)
87+
88+
assert(result.isSuccess)
89+
val share = result.resultData.first()
90+
assert(share.token != null)
91+
return share
92+
}
93+
94+
companion object {
95+
private const val REMOTE_PATH = "/downloadLimits.txt"
96+
}
97+
}

library/src/main/java/com/owncloud/android/lib/resources/status/OwnCloudVersion.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ public class OwnCloudVersion implements Comparable<OwnCloudVersion>, Parcelable
2424
public static final OwnCloudVersion nextcloud_18 = new OwnCloudVersion(0x12000000); // 18.0
2525
public static final OwnCloudVersion nextcloud_19 = new OwnCloudVersion(0x13000000); // 19.0
2626
public static final OwnCloudVersion nextcloud_20 = new OwnCloudVersion(0x14000000); // 20.0
27+
public static final OwnCloudVersion nextcloud_30 = new OwnCloudVersion(0x1E000000); // 30.0
2728

2829
private static final int MAX_DOTS = 3;
2930

0 commit comments

Comments
 (0)