// // CameraDownloadStorageTests.swift // suixinkanTests // import XCTest @testable import suixinkan /// CameraDownloadStorage 相对路径持久化测试。 final class CameraDownloadStorageTests: XCTestCase { /// 测试相对路径前缀。 func testRelativePathUsesCameraDownloadsPrefix() { let fileURL = CameraDownloadStorage.downloadsDirectory.appendingPathComponent("1730_test.JPG") XCTAssertEqual(CameraDownloadStorage.relativePath(for: fileURL), "CameraDownloads/1730_test.JPG") } /// 测试相对路径解析。 func testResolveLocalURLFromRelativePath() { let stored = "CameraDownloads/1730_test.JPG" let resolved = CameraDownloadStorage.resolveLocalURL(from: stored) let expected = CameraDownloadStorage.documentsDirectory.appendingPathComponent(stored) XCTAssertEqual(resolved, expected) } /// 测试旧版绝对路径迁移。 func testMigrateStoredPathFromLegacyAbsolutePath() throws { let fileURL = CameraDownloadStorage.uniqueLocalURL(for: "legacy.jpg") try Data("jpeg".utf8).write(to: fileURL) defer { try? FileManager.default.removeItem(at: fileURL) } let migrated = CameraDownloadStorage.migrateStoredPath(fileURL.path) XCTAssertEqual(migrated, "CameraDownloads/\(fileURL.lastPathComponent)") XCTAssertEqual(CameraDownloadStorage.resolveLocalURL(from: migrated ?? "")?.path, fileURL.path) } /// 测试预览 URL 字符串生成。 func testPreviewURLStringFromRelativePath() throws { let fileURL = CameraDownloadStorage.uniqueLocalURL(for: "preview.jpg") try Data("jpeg".utf8).write(to: fileURL) defer { try? FileManager.default.removeItem(at: fileURL) } let stored = CameraDownloadStorage.relativePath(for: fileURL) let preview = CameraDownloadStorage.previewURLString(from: stored) XCTAssertFalse(preview.isEmpty) XCTAssertTrue(preview.hasPrefix("file://")) } }