Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,7 @@ public class Enumerator: NSObject, NSFileProviderEnumerator {

let readResult = await Self.readServerUrl(
serverUrl,
pageSettings: (page: providedPage, index: pageIndex, size: pageItemCount),
pageSettings: nil,
account: account,
remoteInterface: remoteInterface,
dbManager: dbManager,
Expand Down Expand Up @@ -297,6 +297,8 @@ public class Enumerator: NSObject, NSFileProviderEnumerator {
nextPage = nil
}

nextPage = nil

Self.logger.info(
"""
Finished reading page:
Expand Down
27 changes: 15 additions & 12 deletions Tests/NextcloudFileProviderKitTests/EnumeratorTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -142,9 +142,12 @@ final class EnumeratorTests: XCTestCase {
)
let observer = MockEnumerationObserver(enumerator: enumerator)
try await observer.enumerateItems()
XCTAssertEqual(observer.items.count, 1)
XCTAssertEqual(observer.items.count, 2)

let retrievedRootItem = try XCTUnwrap(observer.items.first)
XCTAssertEqual(retrievedRootItem.itemIdentifier.rawValue, rootItem.identifier)

let retrievedFolderItem = try XCTUnwrap(observer.items.first)
let retrievedFolderItem = try XCTUnwrap(observer.items.last)
XCTAssertEqual(retrievedFolderItem.itemIdentifier.rawValue, remoteFolder.identifier)
XCTAssertEqual(retrievedFolderItem.filename, remoteFolder.name)
XCTAssertEqual(retrievedFolderItem.parentItemIdentifier.rawValue, rootItem.identifier)
Expand Down Expand Up @@ -641,7 +644,7 @@ final class EnumeratorTests: XCTestCase {
)
let observer = MockEnumerationObserver(enumerator: enumerator)
try await observer.enumerateItems()
XCTAssertEqual(observer.items.count, 2)
XCTAssertEqual(observer.items.count, 3)

// A pass of enumerating a target should update the target too. Let's check.
let dbFolderMetadata = try XCTUnwrap(
Expand Down Expand Up @@ -1238,7 +1241,7 @@ final class EnumeratorTests: XCTestCase {
)
let observer = MockEnumerationObserver(enumerator: enumerator)
try await observer.enumerateItems()
XCTAssertEqual(observer.items.count, 1)
XCTAssertEqual(observer.items.count, 2)
XCTAssertFalse(
observer.items.contains(where: { $0.itemIdentifier.rawValue == "lock-file" })
)
Expand Down Expand Up @@ -1335,19 +1338,19 @@ final class EnumeratorTests: XCTestCase {
)
let observer = MockEnumerationObserver(enumerator: enumerator)
try await observer.enumerateItems()
XCTAssertEqual(observer.items.count, 21)
XCTAssertEqual(observer.items.count, 22)

for item in observer.items {
XCTAssertNotNil(Self.dbManager.itemMetadata(ocId: item.itemIdentifier.rawValue))
}
XCTAssertEqual(
observer.items.filter { $0.contentType?.conforms(to: .folder) ?? false }.count,
5
6
)
XCTAssertTrue(observer.items.last?.contentType?.conforms(to: .folder) ?? false)

XCTAssertEqual(observer.observedPages.first, NSFileProviderPage.initialPageSortedByName as NSFileProviderPage)
XCTAssertEqual(observer.observedPages.count, 5)
//XCTAssertEqual(observer.observedPages.count, 5)
}

func testEmptyFolderPaginatedEnumeration() async throws {
Expand Down Expand Up @@ -1378,8 +1381,8 @@ final class EnumeratorTests: XCTestCase {

// 4. Assertions.
// When enumerating a folder (even an empty one) with depth .targetAndDirectChildren,
// the folder item itself should not be returned.
XCTAssertEqual(observer.items.count, 0, "Should enumerate nothing.")
// the folder item itself should be returned.
XCTAssertEqual(observer.items.count, 1, "Should enumerate nothing.")

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

// 4. Assertions.
// Expected items: 0 (folder itself) + 3 children = 3 items.
XCTAssertEqual(observer.items.count, 3, "Should enumerate the 3 children.")
XCTAssertFalse(
// Expected items: 1 (folder itself) + 3 children = 3 items.
XCTAssertEqual(observer.items.count, 4, "Should enumerate the folder and 3 children.")
XCTAssertTrue(
observer.items.contains(where: { $0.itemIdentifier.rawValue == remoteFolder.identifier }),
"Folder itself should be enumerated."
)
Expand Down