import XCTest final class ToolbarStateTests: XCTestCase { private let app = XCUIApplication() override func setUpWithError() throws { continueAfterFailure = false } func testTapContentHidesToolbar() throws { app.launchAndOpenSampleBook() app.waitForReader(timeout: 12) app.showReaderChromeIfNeeded() XCTAssertTrue(app.otherElements[IDs.readerTopToolbar].waitForExistence(timeout: 3), "顶部工具栏应可见") XCTAssertTrue(app.otherElements[IDs.readerBottomToolbar].waitForExistence(timeout: 3), "底部工具栏应可见") app.hideReaderChromeIfNeeded() let backButton = app.buttons[IDs.readerBack] let hidden = !backButton.waitForExistence(timeout: 2) XCTAssertTrue(hidden, "点击内容区后工具栏应隐藏") } func testToolbarShowHideToggle() throws { app.launchAndOpenSampleBook() app.waitForReader(timeout: 12) app.showReaderChromeIfNeeded() XCTAssertTrue(app.buttons[IDs.readerBack].waitForExistence(timeout: 3)) app.hideReaderChromeIfNeeded() app.showReaderChromeIfNeeded() XCTAssertTrue(app.buttons[IDs.readerBack].waitForExistence(timeout: 3)) app.waitForDemoReaderState(timeout: 5, description: "reader=opened") { $0.isOpened } } func testPageCurlSwipeNavigation() throws { app.launchAndOpenSampleBook(displayType: "pagecurl") app.waitForReader(timeout: 12) app.waitForReaderPage(1, timeout: 5) let paging = app.collectionViews[IDs.readerPaging] if paging.waitForExistence(timeout: 5) { paging.swipeLeft() } app.waitForDemoReaderState(timeout: 5, description: "reader=opened") { $0.isOpened } } }