ReadViewSDK/ReadViewDemo/ReadViewDemoUITests/ReaderUITests/BookmarkTests.swift

90 lines
3.3 KiB
Swift
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import XCTest
final class BookmarkTests: XCTestCase {
private let app = XCUIApplication()
override func setUpWithError() throws {
continueAfterFailure = false
}
func testBookmarkButtonExistsInToolbar() {
app.launchAndOpenSampleBook()
app.waitForReader()
app.showReaderChromeIfNeeded()
let bookmarkButton = app.buttons[IDs.readerBookmark]
XCTAssertTrue(bookmarkButton.waitForExistence(timeout: 5), "书签按钮未出现")
}
func testToggleBookmark() {
app.launchAndOpenSampleBook()
app.waitForReader()
app.showReaderChromeIfNeeded()
let bookmarkButton = app.buttons[IDs.readerBookmark]
XCTAssertTrue(bookmarkButton.waitForExistence(timeout: 5), "书签按钮未出现")
bookmarkButton.tap()
Thread.sleep(forTimeInterval: 1)
app.showReaderChromeIfNeeded()
XCTAssertTrue(bookmarkButton.waitForExistence(timeout: 5), "书签按钮再次点击后未出现")
bookmarkButton.tap()
}
func testBookmarksButtonVisibleAfterBookmarkAdded() {
app.launchAndOpenSampleBook()
app.waitForReader()
app.showReaderChromeIfNeeded()
let bookmarkButton = app.buttons[IDs.readerBookmark]
XCTAssertTrue(bookmarkButton.waitForExistence(timeout: 5), "书签按钮未出现")
bookmarkButton.tap()
Thread.sleep(forTimeInterval: 1)
app.showReaderChromeIfNeeded()
let bookmarksListButton = app.buttons[IDs.readerBookmarks]
XCTAssertTrue(bookmarksListButton.waitForExistence(timeout: 5), "书签列表按钮未出现")
}
func testBookmarksListButtonExists() {
app.launchAndOpenSampleBook()
app.waitForReader()
app.showReaderChromeIfNeeded()
let bookmarksListButton = app.buttons[IDs.readerBookmarks]
XCTAssertTrue(bookmarksListButton.waitForExistence(timeout: 5), "书签列表按钮未出现")
}
func testBookmarksPanelIsAccessible() {
//
app.launchAndOpenSampleBook(resetsReaderState: false)
app.waitForReader()
app.showReaderChromeIfNeeded()
//
let state = app.currentDemoReaderState()
if state?.bookmarks == 0 || state?.bookmarks == nil {
let bookmarkButton = app.buttons[IDs.readerBookmark]
if bookmarkButton.waitForExistence(timeout: 5) {
bookmarkButton.tap()
RunLoop.current.run(until: Date().addingTimeInterval(1.5))
}
}
app.showReaderChromeIfNeeded()
let bookmarksListButton = app.buttons[IDs.readerBookmarks]
XCTAssertTrue(bookmarksListButton.waitForExistence(timeout: 5), "书签列表按钮未出现")
//
let enabledPredicate = NSPredicate(format: "isEnabled == true")
expectation(for: enabledPredicate, evaluatedWith: bookmarksListButton)
waitForExpectations(timeout: 10)
bookmarksListButton.tap()
let bookmarksPanel = app.tables[IDs.readerBookmarksTable]
XCTAssertTrue(bookmarksPanel.waitForExistence(timeout: 5), "书签面板未出现")
XCTAssertTrue(app.navigationBars[IDs.readerBookmarksNavBar].waitForExistence(timeout: 2), "书签导航栏未暴露")
}
}