ReadViewSDK/ReadViewDemo/ReadViewDemoUITests/ReaderUITests/ReaderAnnotationTests.swift

75 lines
2.9 KiB
Swift

import XCTest
final class ReaderAnnotationTests: XCTestCase {
private let app = XCUIApplication()
override func setUpWithError() throws {
continueAfterFailure = false
}
func testSelectionMenuCreatesHighlight() throws {
app.launchAndOpenSampleBook()
app.waitForReader()
app.hideReaderChromeIfNeeded()
let content = try app.requireSelectionText()
app.waitForDemoReaderState(timeout: 5, description: "toolbar=hidden") { $0.toolbar == "hidden" }
let start = content.coordinate(withNormalizedOffset: CGVector(dx: 0.2, dy: 0.5))
let end = content.coordinate(withNormalizedOffset: CGVector(dx: 0.8, dy: 0.5))
start.press(forDuration: 0.8, thenDragTo: end)
app.waitForDemoReaderState(timeout: 5, description: "selection=1") { $0.selection == 1 }
let highlightMenuItem = app.menuItems["划线"]
let highlightButton = app.buttons[IDs.readerSelectionHighlight]
if highlightMenuItem.waitForExistence(timeout: 3) {
highlightMenuItem.tap()
} else if highlightButton.waitForExistence(timeout: 3) {
highlightButton.tap()
} else {
XCTFail("选中文本后未出现高亮菜单")
}
app.waitForDemoReaderState(timeout: 8, description: "highlights=1") { $0.highlights == 1 }
}
func testLongPressSelectionDoesNotShowToolbars() throws {
app.launchAndOpenSampleBook()
app.waitForReader()
app.hideReaderChromeIfNeeded()
let content = try app.requireSelectionText()
app.waitForDemoReaderState(timeout: 5, description: "toolbar=hidden") { $0.toolbar == "hidden" }
let start = content.coordinate(withNormalizedOffset: CGVector(dx: 0.2, dy: 0.5))
let end = content.coordinate(withNormalizedOffset: CGVector(dx: 0.8, dy: 0.5))
start.press(forDuration: 0.8, thenDragTo: end)
app.waitForDemoReaderState(timeout: 8, description: "selection=1") { $0.selection == 1 }
app.waitForDemoReaderState(timeout: 3, description: "toolbar=hidden") { $0.toolbar == "hidden" }
}
func testSelectionMenuAnnotateCreatesHighlight() throws {
app.launchAndOpenSampleBook()
app.waitForReader()
app.hideReaderChromeIfNeeded()
let content = try app.requireSelectionText()
let start = content.coordinate(withNormalizedOffset: CGVector(dx: 0.25, dy: 0.5))
let end = content.coordinate(withNormalizedOffset: CGVector(dx: 0.7, dy: 0.5))
start.press(forDuration: 0.8, thenDragTo: end)
app.waitForDemoReaderState(timeout: 5, description: "selection=1") { $0.selection == 1 }
let annotateMenuItem = app.menuItems["注释"]
XCTAssertTrue(annotateMenuItem.waitForExistence(timeout: 3), "选中文本后未出现批注菜单")
annotateMenuItem.tap()
app.waitForDemoReaderState(timeout: 8, description: "highlights=1 after annotate") { $0.highlights == 1 }
}
}