对齐有线传图页 Android UI,并改用相对路径持久化本地照片。

还原顶栏、浮动卡片、时间侧栏与底部交互;照片路径改为 CameraDownloads 相对路径并兼容旧数据;格式 Chip 固定 JPG 且不可点击。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-30 11:16:28 +08:00
parent e91a46c315
commit c71b45bdfd
29 changed files with 2097 additions and 256 deletions

View File

@ -0,0 +1,47 @@
//
// 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://"))
}
}