引入进程级 CameraTetheringSession 与共享 USB Browser;离开传图页仅取消 UI 回调,App 终止时再完整 shutdown 释放 PTP 与 Browser 资源。 Co-authored-by: Cursor <cursoragent@cursor.com>
25 lines
725 B
Swift
25 lines
725 B
Swift
//
|
|
// CameraTetheringSessionTests.swift
|
|
// suixinkanTests
|
|
//
|
|
|
|
import XCTest
|
|
@testable import suixinkan
|
|
|
|
/// CameraTetheringSession 与 detach/shutdown 语义测试。
|
|
@MainActor
|
|
final class CameraTetheringSessionTests: XCTestCase {
|
|
func testSharedServiceIsAutoDetectInstance() {
|
|
XCTAssertTrue(CameraTetheringSession.sharedService is AutoDetectCameraService)
|
|
}
|
|
|
|
func testDetachFromUIClearsCallbacksWithoutChangingConnectionState() {
|
|
let service = AutoDetectCameraService()
|
|
service.onConnectionStateChange = { _ in }
|
|
service.onNewAsset = { _ in }
|
|
service.detachFromUI()
|
|
XCTAssertNil(service.onConnectionStateChange)
|
|
XCTAssertNil(service.onNewAsset)
|
|
}
|
|
}
|