feat: 更新素材管理和举报风险地图
This commit is contained in:
55
suixinkanTests/MediaPreviewModelsTests.swift
Normal file
55
suixinkanTests/MediaPreviewModelsTests.swift
Normal file
@ -0,0 +1,55 @@
|
||||
//
|
||||
// MediaPreviewModelsTests.swift
|
||||
// suixinkanTests
|
||||
//
|
||||
|
||||
import UIKit
|
||||
import XCTest
|
||||
@testable import suixinkan
|
||||
|
||||
/// 通用媒体预览模型测试。
|
||||
final class MediaPreviewModelsTests: XCTestCase {
|
||||
|
||||
func testClampedStartIndexKeepsIndexInBounds() {
|
||||
XCTAssertEqual(MediaPreviewItem.clampedStartIndex(-3, itemCount: 4), 0)
|
||||
XCTAssertEqual(MediaPreviewItem.clampedStartIndex(2, itemCount: 4), 2)
|
||||
XCTAssertEqual(MediaPreviewItem.clampedStartIndex(8, itemCount: 4), 3)
|
||||
XCTAssertEqual(MediaPreviewItem.clampedStartIndex(8, itemCount: 0), 0)
|
||||
}
|
||||
|
||||
func testRemoteImageAndVideoURLConstructionFiltersInvalidText() {
|
||||
let image = MediaPreviewItem.remoteImage(" https://cdn.example.com/a.jpg ")
|
||||
let video = MediaPreviewItem.remoteVideo("https://cdn.example.com/a.mp4")
|
||||
|
||||
XCTAssertEqual(image?.mediaType, .image)
|
||||
XCTAssertEqual(video?.mediaType, .video)
|
||||
XCTAssertNil(MediaPreviewItem.remoteImage(""))
|
||||
XCTAssertNil(MediaPreviewItem.remoteImage(" "))
|
||||
XCTAssertNil(MediaPreviewItem.remoteVideo("file:///tmp/a.mp4"))
|
||||
XCTAssertNil(MediaPreviewItem.remoteVideo("not a url"))
|
||||
}
|
||||
|
||||
func testLocalImageAndVideoTypeRecognition() {
|
||||
let localImage = MediaPreviewItem.localImage(url: URL(fileURLWithPath: "/tmp/a.jpg"))
|
||||
let memoryImage = MediaPreviewItem.image(UIImage())
|
||||
let localVideo = MediaPreviewItem.localVideo(url: URL(fileURLWithPath: "/tmp/a.mp4"))
|
||||
|
||||
XCTAssertTrue(localImage.isImage)
|
||||
XCTAssertTrue(memoryImage.isImage)
|
||||
XCTAssertTrue(localVideo.isVideo)
|
||||
XCTAssertEqual(localVideo.mediaType, .video)
|
||||
}
|
||||
|
||||
func testCurrentItemReadsClampedItemFromMixedMedia() {
|
||||
let items = [
|
||||
MediaPreviewItem.localImage(url: URL(fileURLWithPath: "/tmp/a.jpg")),
|
||||
MediaPreviewItem.localVideo(url: URL(fileURLWithPath: "/tmp/a.mp4")),
|
||||
MediaPreviewItem.remoteImage("https://cdn.example.com/b.jpg")!,
|
||||
]
|
||||
|
||||
XCTAssertEqual(MediaPreviewItem.currentItem(in: items, startIndex: -1)?.mediaType, .image)
|
||||
XCTAssertEqual(MediaPreviewItem.currentItem(in: items, startIndex: 1)?.mediaType, .video)
|
||||
XCTAssertEqual(MediaPreviewItem.currentItem(in: items, startIndex: 99)?.mediaType, .image)
|
||||
XCTAssertNil(MediaPreviewItem.currentItem(in: [], startIndex: 0))
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user