还原顶栏、浮动卡片、时间侧栏与底部交互;照片路径改为 CameraDownloads 相对路径并兼容旧数据;格式 Chip 固定 JPG 且不可点击。 Co-authored-by: Cursor <cursoragent@cursor.com>
48 lines
1.9 KiB
Swift
48 lines
1.9 KiB
Swift
//
|
|
// 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://"))
|
|
}
|
|
}
|