Files
suixinkan_ios_new/suixinkanTests/TravelAlbum/CameraDownloadStorageTests.swift
汉秋 d7fec35715 移除 Core 层 OTG 相机实现,保留旅拍有线传图 UI 与本地照片上传能力。
将本地存储与上传编排下沉到 Features/TravelAlbum,删除 USB/PTP 相关代码与测试。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-06 10:55:40 +08:00

77 lines
3.3 KiB
Swift

//
// CameraDownloadStorageTests.swift
// suixinkanTests
//
import XCTest
@testable import suixinkan
/// CameraDownloadStorage
final class CameraDownloadStorageTests: XCTestCase {
/// scoped
func testRelativePathUsesScopedOriginalsPrefix() {
let scope = CameraDownloadStorage.Scope(accountKey: "user_101", albumID: 6603)
defer { CameraDownloadStorage.removeScopeDirectory(for: scope) }
let fileURL = CameraDownloadStorage.originalsDirectory(for: scope).appendingPathComponent("1730_test.JPG")
XCTAssertEqual(
CameraDownloadStorage.relativePath(for: fileURL),
"CameraDownloads/user_101/6603/originals/1730_test.JPG"
)
}
///
func testResolveLocalURLFromRelativePath() {
let stored = "CameraDownloads/user_101/6603/originals/1730_test.JPG"
let resolved = CameraDownloadStorage.resolveLocalURL(from: stored)
let expected = CameraDownloadStorage.documentsDirectory.appendingPathComponent(stored)
XCTAssertEqual(resolved, expected)
}
/// scoped
func testScopeDirectoryPath() {
let scope = CameraDownloadStorage.Scope(accountKey: "user_101", albumID: 6603)
defer { CameraDownloadStorage.removeScopeDirectory(for: scope) }
let directory = CameraDownloadStorage.scopeDirectory(for: scope)
XCTAssertTrue(directory.path.hasSuffix("CameraDownloads/user_101/6603"))
}
/// URL
func testUniqueLocalURLUsesScopedOriginalsDirectory() {
let scope = CameraDownloadStorage.Scope(accountKey: "user_101", albumID: 6603)
defer { CameraDownloadStorage.removeScopeDirectory(for: scope) }
let url = CameraDownloadStorage.uniqueLocalURL(for: "DSC.JPG", scope: scope)
XCTAssertTrue(url.path.contains("/CameraDownloads/user_101/6603/originals/"))
XCTAssertTrue(url.lastPathComponent.hasSuffix("_DSC.JPG"))
}
/// scoped
func testRemoveScopeDirectory() throws {
let scope = CameraDownloadStorage.Scope(accountKey: "user_101", albumID: 6603)
let fileURL = CameraDownloadStorage.uniqueLocalURL(for: "remove_test.JPG", scope: scope)
try Data(repeating: 0xFF, count: 8).write(to: fileURL)
let directory = CameraDownloadStorage.scopeDirectory(for: scope)
XCTAssertTrue(FileManager.default.fileExists(atPath: directory.path))
CameraDownloadStorage.removeScopeDirectory(for: scope)
XCTAssertFalse(FileManager.default.fileExists(atPath: directory.path))
}
/// URL
func testPreviewURLStringFromExistingFile() throws {
let scope = CameraDownloadStorage.Scope(accountKey: "user_101", albumID: 6603)
defer { CameraDownloadStorage.removeScopeDirectory(for: scope) }
let fileURL = CameraDownloadStorage.uniqueLocalURL(for: "preview.JPG", scope: scope)
try Data(repeating: 0xFF, count: 8).write(to: fileURL)
let stored = CameraDownloadStorage.relativePath(for: fileURL)
let preview = CameraDownloadStorage.previewURLString(from: stored)
XCTAssertFalse(preview.isEmpty)
XCTAssertTrue(preview.hasPrefix("file://"))
}
}