Skip to content

Commit 18f674a

Browse files
authored
Merge pull request #108 from nextcloud/bugfix/disable-pagination
Disable pagination
2 parents 9015a53 + 6bb20a4 commit 18f674a

2 files changed

Lines changed: 18 additions & 13 deletions

File tree

Sources/NextcloudFileProviderKit/Enumeration/Enumerator.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ public class Enumerator: NSObject, NSFileProviderEnumerator {
248248

249249
let readResult = await Self.readServerUrl(
250250
serverUrl,
251-
pageSettings: (page: providedPage, index: pageIndex, size: pageItemCount),
251+
pageSettings: nil,
252252
account: account,
253253
remoteInterface: remoteInterface,
254254
dbManager: dbManager,
@@ -297,6 +297,8 @@ public class Enumerator: NSObject, NSFileProviderEnumerator {
297297
nextPage = nil
298298
}
299299

300+
nextPage = nil
301+
300302
Self.logger.info(
301303
"""
302304
Finished reading page:

Tests/NextcloudFileProviderKitTests/EnumeratorTests.swift

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -142,9 +142,12 @@ final class EnumeratorTests: XCTestCase {
142142
)
143143
let observer = MockEnumerationObserver(enumerator: enumerator)
144144
try await observer.enumerateItems()
145-
XCTAssertEqual(observer.items.count, 1)
145+
XCTAssertEqual(observer.items.count, 2)
146+
147+
let retrievedRootItem = try XCTUnwrap(observer.items.first)
148+
XCTAssertEqual(retrievedRootItem.itemIdentifier.rawValue, rootItem.identifier)
146149

147-
let retrievedFolderItem = try XCTUnwrap(observer.items.first)
150+
let retrievedFolderItem = try XCTUnwrap(observer.items.last)
148151
XCTAssertEqual(retrievedFolderItem.itemIdentifier.rawValue, remoteFolder.identifier)
149152
XCTAssertEqual(retrievedFolderItem.filename, remoteFolder.name)
150153
XCTAssertEqual(retrievedFolderItem.parentItemIdentifier.rawValue, rootItem.identifier)
@@ -641,7 +644,7 @@ final class EnumeratorTests: XCTestCase {
641644
)
642645
let observer = MockEnumerationObserver(enumerator: enumerator)
643646
try await observer.enumerateItems()
644-
XCTAssertEqual(observer.items.count, 2)
647+
XCTAssertEqual(observer.items.count, 3)
645648

646649
// A pass of enumerating a target should update the target too. Let's check.
647650
let dbFolderMetadata = try XCTUnwrap(
@@ -1238,7 +1241,7 @@ final class EnumeratorTests: XCTestCase {
12381241
)
12391242
let observer = MockEnumerationObserver(enumerator: enumerator)
12401243
try await observer.enumerateItems()
1241-
XCTAssertEqual(observer.items.count, 1)
1244+
XCTAssertEqual(observer.items.count, 2)
12421245
XCTAssertFalse(
12431246
observer.items.contains(where: { $0.itemIdentifier.rawValue == "lock-file" })
12441247
)
@@ -1335,19 +1338,19 @@ final class EnumeratorTests: XCTestCase {
13351338
)
13361339
let observer = MockEnumerationObserver(enumerator: enumerator)
13371340
try await observer.enumerateItems()
1338-
XCTAssertEqual(observer.items.count, 21)
1341+
XCTAssertEqual(observer.items.count, 22)
13391342

13401343
for item in observer.items {
13411344
XCTAssertNotNil(Self.dbManager.itemMetadata(ocId: item.itemIdentifier.rawValue))
13421345
}
13431346
XCTAssertEqual(
13441347
observer.items.filter { $0.contentType?.conforms(to: .folder) ?? false }.count,
1345-
5
1348+
6
13461349
)
13471350
XCTAssertTrue(observer.items.last?.contentType?.conforms(to: .folder) ?? false)
13481351

13491352
XCTAssertEqual(observer.observedPages.first, NSFileProviderPage.initialPageSortedByName as NSFileProviderPage)
1350-
XCTAssertEqual(observer.observedPages.count, 5)
1353+
//XCTAssertEqual(observer.observedPages.count, 5)
13511354
}
13521355

13531356
func testEmptyFolderPaginatedEnumeration() async throws {
@@ -1378,8 +1381,8 @@ final class EnumeratorTests: XCTestCase {
13781381

13791382
// 4. Assertions.
13801383
// When enumerating a folder (even an empty one) with depth .targetAndDirectChildren,
1381-
// the folder item itself should not be returned.
1382-
XCTAssertEqual(observer.items.count, 0, "Should enumerate nothing.")
1384+
// the folder item itself should be returned.
1385+
XCTAssertEqual(observer.items.count, 1, "Should enumerate nothing.")
13831386

13841387
// For an empty folder, there's only one "page" of results (the folder itself).
13851388
XCTAssertEqual(observer.observedPages.count, 1, "Should be one page call for an empty folder.")
@@ -1443,9 +1446,9 @@ final class EnumeratorTests: XCTestCase {
14431446
try await observer.enumerateItems()
14441447

14451448
// 4. Assertions.
1446-
// Expected items: 0 (folder itself) + 3 children = 3 items.
1447-
XCTAssertEqual(observer.items.count, 3, "Should enumerate the 3 children.")
1448-
XCTAssertFalse(
1449+
// Expected items: 1 (folder itself) + 3 children = 3 items.
1450+
XCTAssertEqual(observer.items.count, 4, "Should enumerate the folder and 3 children.")
1451+
XCTAssertTrue(
14491452
observer.items.contains(where: { $0.itemIdentifier.rawValue == remoteFolder.identifier }),
14501453
"Folder itself should be enumerated."
14511454
)

0 commit comments

Comments
 (0)