Add TravelAlbum, ProfileSpace, and wired camera transfer modules.
Introduce travel album entry with Sony PTP tethering pipeline, profile space settings page, home routing updates, Launch Screen storyboard, and related tests/docs. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
63
suixinkanTests/CameraTransfer/SonyPTPCommandsTests.swift
Normal file
63
suixinkanTests/CameraTransfer/SonyPTPCommandsTests.swift
Normal file
@ -0,0 +1,63 @@
|
||||
//
|
||||
// SonyPTPCommandsTests.swift
|
||||
// suixinkanTests
|
||||
//
|
||||
// Created by Codex on 2026/6/29.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
@testable import suixinkan
|
||||
|
||||
/// Sony PTP 命令构建与解析测试。
|
||||
final class SonyPTPCommandsTests: XCTestCase {
|
||||
/// 测试 OpenSession 命令包长度与 opcode。
|
||||
func testBuildOpenSessionCommand() {
|
||||
let data = SonyPTPHelper.buildCommand(
|
||||
code: SonyPTPCommand.openSession,
|
||||
transactionID: 1,
|
||||
parameters: [1]
|
||||
)
|
||||
|
||||
XCTAssertEqual(data.count, 16)
|
||||
XCTAssertEqual(data[6], 0x02)
|
||||
XCTAssertEqual(data[7], 0x10)
|
||||
}
|
||||
|
||||
/// 测试 SDIO Connect 命令 opcode。
|
||||
func testBuildSonyConnectCommand() {
|
||||
let data = SonyPTPHelper.buildCommand(
|
||||
code: SonyPTPCommand.sdioConnect,
|
||||
transactionID: 42,
|
||||
parameters: [1, 0, 0]
|
||||
)
|
||||
|
||||
XCTAssertEqual(data.count, 24)
|
||||
XCTAssertEqual(data[6], 0x01)
|
||||
XCTAssertEqual(data[7], 0x92)
|
||||
}
|
||||
|
||||
/// 测试 GetObject 压缩大小解析。
|
||||
func testParseObjectCompressedSize() {
|
||||
var data = Data(repeating: 0, count: 52)
|
||||
data[8] = 0x00
|
||||
data[9] = 0x10
|
||||
data[10] = 0x00
|
||||
data[11] = 0x00
|
||||
|
||||
XCTAssertEqual(SonyPTPHelper.parseObjectCompressedSize(data), 0x1000)
|
||||
}
|
||||
|
||||
/// 测试 SDIE ObjectAdded 事件解析。
|
||||
func testParseObjectAddedEvent() throws {
|
||||
var event = Data()
|
||||
event.append(contentsOf: [0x10, 0x00, 0x00, 0x00])
|
||||
event.append(contentsOf: [0x04, 0x00])
|
||||
event.append(contentsOf: [0x01, 0xC2])
|
||||
event.append(contentsOf: [0xFF, 0xFF, 0xFF, 0xFF])
|
||||
event.append(contentsOf: [0x01, 0xC0, 0xFF, 0xFF])
|
||||
|
||||
let container = try SonyPTPHelper.parseContainer(event)
|
||||
XCTAssertEqual(container.code, SonyPTPCommand.sdieObjectAdded)
|
||||
XCTAssertEqual(container.params.first, SonyPTPCommand.shotObjectHandle)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user