FilesIntegrationTests.swift 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  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: XCTestCase {
  12. private let baseUrl = EnvVars.testServerUrl
  13. private let user = EnvVars.testUser
  14. private let userId = EnvVars.testUser
  15. private let password = EnvVars.testAppPassword
  16. private lazy var account = "\(userId) \(baseUrl)"
  17. private let appDelegate = (UIApplication.shared.delegate as? AppDelegate)!
  18. override func setUp() {
  19. appDelegate.deleteAllAccounts()
  20. }
  21. func test_createReadDeleteFolder_withProperParams_shouldCreateReadDeleteFolder() throws {
  22. let expectation = expectation(description: "Should finish last callback")
  23. let folderName = "TestFolder10"
  24. let serverUrl = "\(baseUrl)/remote.php/dav/files/\(userId)"
  25. let serverUrlFileName = "\(serverUrl)/\(folderName)"
  26. NextcloudKit.shared.setup(account: account, user: user, userId: userId, password: password, urlBase: baseUrl)
  27. // Test creating folder
  28. NCNetworking.shared.createFolder(fileName: folderName, serverUrl: serverUrl, account: account, urlBase: baseUrl, userId: userId, withPush: true) { error in
  29. XCTAssertEqual(NKError.success.errorCode, error.errorCode)
  30. XCTAssertEqual(NKError.success.errorDescription, error.errorDescription)
  31. Thread.sleep(forTimeInterval: 0.2)
  32. // Test reading folder, should exist
  33. NCNetworking.shared.readFolder(serverUrl: serverUrlFileName, account: self.user) { account, metadataFolder, metadatas, metadatasUpdate, metadatasLocalUpdate, metadatasDelete, error in
  34. XCTAssertEqual(self.account, account)
  35. XCTAssertEqual(NKError.success.errorCode, error.errorCode)
  36. XCTAssertEqual(NKError.success.errorDescription, error.errorDescription)
  37. XCTAssertEqual(metadataFolder?.fileName, folderName)
  38. // Check Realm directory, should exist
  39. let directory = NCManageDatabase.shared.getTableDirectory(predicate: NSPredicate(format: "serverUrl == %@", serverUrlFileName))
  40. XCTAssertNotNil(directory)
  41. Thread.sleep(forTimeInterval: 0.2)
  42. Task {
  43. // Test deleting folder
  44. await _ = NCNetworking.shared.deleteMetadata(metadataFolder!, onlyLocalCache: false)
  45. XCTAssertEqual(NKError.success.errorCode, error.errorCode)
  46. XCTAssertEqual(NKError.success.errorDescription, error.errorDescription)
  47. try await Task.sleep(for: .milliseconds(200))
  48. // Test reading folder, should NOT exist
  49. NCNetworking.shared.readFolder(serverUrl: serverUrlFileName, account: self.user) { account, metadataFolder, metadatas, metadatasUpdate, metadatasLocalUpdate, metadatasDelete, error in
  50. defer { expectation.fulfill() }
  51. XCTAssertEqual(404, error.errorCode)
  52. XCTAssertNil(metadataFolder?.fileName)
  53. // Check Realm directory, should NOT exist
  54. let directory = NCManageDatabase.shared.getTableDirectory(predicate: NSPredicate(format: "serverUrl == %@", serverUrlFileName))
  55. XCTAssertNil(directory)
  56. }
  57. }
  58. }
  59. }
  60. waitForExpectations(timeout: 100)
  61. }
  62. }