FilesIntegrationTests.swift 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. //
  2. // NextcloudIntegrationTests.swift
  3. // NextcloudIntegrationTests
  4. //
  5. // Created by Milen Pivchev on 5/19/23.
  6. // Copyright © 2023 Marino Faggiana. All rights reserved.
  7. //
  8. import XCTest
  9. import NextcloudKit
  10. @testable import Nextcloud
  11. final class FilesIntegrationTests: BaseIntegrationXCTestCase {
  12. private let appDelegate = (UIApplication.shared.delegate as? AppDelegate)!
  13. override func setUp() {
  14. appDelegate.deleteAllAccounts()
  15. }
  16. func test_createReadDeleteFolder_withProperParams_shouldCreateReadDeleteFolder() throws {
  17. let expectation = expectation(description: "Should finish last callback")
  18. let folderName = "TestFolder\(randomInt)"
  19. let serverUrl = "\(baseUrl)/remote.php/dav/files/\(userId)"
  20. let serverUrlFileName = "\(serverUrl)/\(folderName)"
  21. NextcloudKit.shared.setup(account: account, user: user, userId: userId, password: password, urlBase: baseUrl)
  22. // Test creating folder
  23. NCNetworking.shared.createFolder(fileName: folderName, serverUrl: serverUrl, account: account, urlBase: baseUrl, userId: userId, withPush: true) { error in
  24. XCTAssertEqual(NKError.success.errorCode, error.errorCode)
  25. XCTAssertEqual(NKError.success.errorDescription, error.errorDescription)
  26. Thread.sleep(forTimeInterval: 0.2)
  27. // Test reading folder, should exist
  28. NCNetworking.shared.readFolder(serverUrl: serverUrlFileName, account: self.user) { account, metadataFolder, metadatas, metadatasUpdate, metadatasLocalUpdate, metadatasDelete, error in
  29. XCTAssertEqual(self.account, account)
  30. XCTAssertEqual(NKError.success.errorCode, error.errorCode)
  31. XCTAssertEqual(NKError.success.errorDescription, error.errorDescription)
  32. XCTAssertEqual(metadataFolder?.fileName, folderName)
  33. // Check Realm directory, should exist
  34. let directory = NCManageDatabase.shared.getTableDirectory(predicate: NSPredicate(format: "serverUrl == %@", serverUrlFileName))
  35. XCTAssertNotNil(directory)
  36. Thread.sleep(forTimeInterval: 0.2)
  37. Task {
  38. // Test deleting folder
  39. await _ = NCNetworking.shared.deleteMetadata(metadataFolder!, onlyLocalCache: false)
  40. XCTAssertEqual(NKError.success.errorCode, error.errorCode)
  41. XCTAssertEqual(NKError.success.errorDescription, error.errorDescription)
  42. try await Task.sleep(for: .milliseconds(200))
  43. // Test reading folder, should NOT exist
  44. NCNetworking.shared.readFolder(serverUrl: serverUrlFileName, account: self.user) { account, metadataFolder, metadatas, metadatasUpdate, metadatasLocalUpdate, metadatasDelete, error in
  45. defer { expectation.fulfill() }
  46. XCTAssertEqual(404, error.errorCode)
  47. XCTAssertNil(metadataFolder?.fileName)
  48. // Check Realm directory, should NOT exist
  49. let directory = NCManageDatabase.shared.getTableDirectory(predicate: NSPredicate(format: "serverUrl == %@", serverUrlFileName))
  50. XCTAssertNil(directory)
  51. }
  52. }
  53. }
  54. }
  55. waitForExpectations(timeout: 100)
  56. }
  57. }