Skip to content

Commit 2778400

Browse files
committed
fix(file-sort): concurrent modification exception
Signed-off-by: alperozturk <[email protected]>
1 parent 14fa644 commit 2778400

File tree

1 file changed

+28
-27
lines changed

1 file changed

+28
-27
lines changed

app/src/androidTest/java/com/nextcloud/utils/FileSortOrderTests.kt

Lines changed: 28 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -42,19 +42,23 @@ class FileSortOrderTests {
4242
size?.let { fileLength = it }
4343
}
4444

45-
private fun <T> runSortTest(
45+
private fun runSortFiles(
4646
name: String,
47-
items: MutableList<T>,
47+
items: MutableList<File>,
4848
sorter: FileSortOrder,
49-
expected: List<T>,
50-
isCloud: Boolean = false
49+
expected: List<File>
5150
) {
52-
val actual = if (isCloud) {
53-
sorter.sortCloudFiles(items as MutableList<OCFile>, false, false)
54-
} else {
55-
sorter.sortLocalFiles(items as MutableList<File>)
56-
}
51+
val actual = sorter.sortLocalFiles(items)
52+
assertEquals(name, expected, actual)
53+
}
5754

55+
private fun runSortCloudFiles(
56+
name: String,
57+
items: MutableList<OCFile>,
58+
sorter: FileSortOrder,
59+
expected: List<OCFile>
60+
) {
61+
val actual = sorter.sortCloudFiles(items, foldersBeforeFiles = false, favoritesFirst = false)
5862
assertEquals(name, expected, actual)
5963
}
6064

@@ -104,14 +108,14 @@ class FileSortOrderTests {
104108
val file2 = tmpFile("file2", 2000)
105109
val file3 = tmpFile("file3", 1500)
106110

107-
runSortTest(
111+
runSortFiles(
108112
"old→new asc",
109113
mutableListOf(file1, file2, file3),
110114
FileSortOrderByDate(SORT_OLD_TO_NEW_ID, true),
111115
listOf(file1, file3, file2)
112116
)
113117

114-
runSortTest(
118+
runSortFiles(
115119
"old→new desc",
116120
mutableListOf(file1, file2, file3),
117121
FileSortOrderByDate(SORT_OLD_TO_NEW_ID, false),
@@ -125,14 +129,14 @@ class FileSortOrderTests {
125129
val file2 = tmpFile("file2", 2000)
126130
val file3 = tmpFile("file3", 1500)
127131

128-
runSortTest(
132+
runSortFiles(
129133
"new→old asc",
130134
mutableListOf(file1, file2, file3),
131135
FileSortOrderByDate(SORT_NEW_TO_OLD_ID, true),
132136
listOf(file1, file3, file2)
133137
)
134138

135-
runSortTest(
139+
runSortFiles(
136140
"new→old desc",
137141
mutableListOf(file1, file2, file3),
138142
FileSortOrderByDate(SORT_NEW_TO_OLD_ID, false),
@@ -146,12 +150,11 @@ class FileSortOrderTests {
146150
val file2 = ocFile("/2", mod = 3000)
147151
val file3 = ocFile("/3", mod = 2000)
148152

149-
runSortTest(
153+
runSortCloudFiles(
150154
"cloud old→new asc",
151155
mutableListOf(file1, file2, file3),
152156
FileSortOrderByDate(SORT_OLD_TO_NEW_ID, true),
153157
listOf(file1, file3, file2),
154-
isCloud = true
155158
)
156159
}
157160

@@ -172,14 +175,14 @@ class FileSortOrderTests {
172175
val file2 = tmpFile("banana")
173176
val file3 = tmpFile("cherry")
174177

175-
runSortTest(
178+
runSortFiles(
176179
"A→Z asc",
177180
mutableListOf(file3, folder, file1, file2),
178181
FileSortOrderByName(SORT_A_TO_Z_ID, true),
179182
listOf(folder, file1, file2, file3)
180183
)
181184

182-
runSortTest(
185+
runSortFiles(
183186
"A→Z desc",
184187
mutableListOf(file3, folder, file1, file2),
185188
FileSortOrderByName(SORT_A_TO_Z_ID, false),
@@ -193,12 +196,11 @@ class FileSortOrderTests {
193196
val file2 = ocFile("/a.txt")
194197
val file3 = ocFile("/c.txt")
195198

196-
runSortTest(
199+
runSortCloudFiles(
197200
"cloud A→Z asc",
198201
mutableListOf(file1, file2, file3),
199202
FileSortOrderByName(SORT_A_TO_Z_ID, true),
200-
listOf(file2, file1, file3),
201-
isCloud = true
203+
listOf(file2, file1, file3)
202204
)
203205
}
204206

@@ -223,28 +225,28 @@ class FileSortOrderTests {
223225
val d1 = tmpFolder("folder1")
224226
val d2 = tmpFolder("folder2")
225227

226-
runSortTest(
228+
runSortFiles(
227229
"small→big asc",
228230
mutableListOf(file1, file2, file3),
229231
FileSortOrderBySize(SORT_SMALL_TO_BIG_ID, true),
230232
listOf(file1, file3, file2)
231233
)
232234

233-
runSortTest(
235+
runSortFiles(
234236
"small→big desc",
235237
mutableListOf(file1, file2, file3),
236238
FileSortOrderBySize(SORT_SMALL_TO_BIG_ID, false),
237239
listOf(file2, file3, file1)
238240
)
239241

240-
runSortTest(
242+
runSortFiles(
241243
"big→small asc (folders first)",
242244
mutableListOf(file1, file2, file3, d1, d2),
243245
FileSortOrderBySize(SORT_BIG_TO_SMALL_ID, true),
244246
listOf(d1, d2, file1, file3, file2)
245247
)
246248

247-
runSortTest(
249+
runSortFiles(
248250
"big→small desc (folders first)",
249251
mutableListOf(file1, file2, file3, d1, d2),
250252
FileSortOrderBySize(SORT_BIG_TO_SMALL_ID, false),
@@ -258,12 +260,11 @@ class FileSortOrderTests {
258260
val file2 = ocFile("/2", size = 300)
259261
val file3 = ocFile("/3", size = 200)
260262

261-
runSortTest(
263+
runSortCloudFiles(
262264
"cloud small→big asc",
263265
mutableListOf(file1, file2, file3),
264266
FileSortOrderBySize(SORT_SMALL_TO_BIG_ID, true),
265-
listOf(file1, file3, file2),
266-
isCloud = true
267+
listOf(file1, file3, file2)
267268
)
268269
}
269270

0 commit comments

Comments
 (0)