- 新增字体选择(系统/宋体/圆体/等宽)与暗色图片柔化配置 - 文本选择改为自定义手势+操作栏(拷贝/高亮/批注) - 添加 accessibilityIdentifier 支持自动化 UI 测试 - 新增 UITests 覆盖阅读器打开/关闭、工具栏、设置面板、批注等 - 添加 Demo 测试用 EPUB 书源(宝山辽墓材料与释读) - 新增文档:UI 自动化测试、功能开发计划、阅读器规划
38 lines
1.4 KiB
Swift
38 lines
1.4 KiB
Swift
import XCTest
|
|
|
|
final class ReaderAnnotationTests: XCTestCase {
|
|
private let app = XCUIApplication()
|
|
|
|
override func setUpWithError() throws {
|
|
continueAfterFailure = false
|
|
}
|
|
|
|
func testSelectionMenuCreatesHighlight() {
|
|
app.launchAndOpenSampleBook(pageNumber: 2)
|
|
app.waitForReader()
|
|
|
|
let content = app.textViews[IDs.readerSelectionText].firstMatch
|
|
XCTAssertTrue(content.waitForExistence(timeout: 5), "阅读内容区域未出现")
|
|
|
|
let start = content.coordinate(withNormalizedOffset: CGVector(dx: 0.35, dy: 0.42))
|
|
let end = content.coordinate(withNormalizedOffset: CGVector(dx: 0.68, dy: 0.42))
|
|
start.press(forDuration: 0.6, thenDragTo: end)
|
|
|
|
app.waitForReaderState(containing: "selection=1", timeout: 5)
|
|
|
|
let highlightMenuItem = app.menuItems["高亮"]
|
|
let highlightButton = app.buttons["高亮"]
|
|
let highlightActionButton = app.buttons[IDs.readerSelectionHighlight]
|
|
if highlightMenuItem.waitForExistence(timeout: 3) {
|
|
highlightMenuItem.tap()
|
|
} else if highlightActionButton.waitForExistence(timeout: 3) {
|
|
highlightActionButton.tap()
|
|
} else {
|
|
XCTAssertTrue(highlightButton.waitForExistence(timeout: 3), "选中文本后未出现高亮菜单")
|
|
highlightButton.tap()
|
|
}
|
|
|
|
app.waitForReaderState(containing: "highlights=1", timeout: 8)
|
|
}
|
|
}
|