67 lines
2.4 KiB
Swift
67 lines
2.4 KiB
Swift
import XCTest
|
|
|
|
final class SettingsExtendedTests: XCTestCase {
|
|
private let app = XCUIApplication()
|
|
|
|
override func setUpWithError() throws {
|
|
continueAfterFailure = false
|
|
}
|
|
|
|
private func openSettings() {
|
|
app.launchAndOpenSampleBook()
|
|
app.waitForReader()
|
|
app.showReaderChromeIfNeeded()
|
|
|
|
XCTAssertTrue(app.buttons[IDs.readerSettings].waitForExistence(timeout: 5))
|
|
app.buttons[IDs.readerSettings].tap()
|
|
XCTAssertTrue(app.scrollViews[IDs.settingsScroll].waitForExistence(timeout: 5))
|
|
}
|
|
|
|
func testBrightnessSliderExists() {
|
|
openSettings()
|
|
let slider = app.sliders[IDs.settingsBrightness]
|
|
XCTAssertTrue(slider.waitForExistence(timeout: 3), "亮度滑块未出现")
|
|
}
|
|
|
|
func testLineHeightControl() {
|
|
openSettings()
|
|
let lineHeight = app.segmentedControls[IDs.settingsLineHeight]
|
|
XCTAssertTrue(lineHeight.waitForExistence(timeout: 3), "行距控件未出现")
|
|
|
|
lineHeight.buttons["紧凑"].tap()
|
|
lineHeight.buttons["标准"].tap()
|
|
lineHeight.buttons["宽松"].tap()
|
|
|
|
app.buttons[IDs.settingsDone].tap()
|
|
XCTAssertTrue(app.buttons[IDs.readerBack].waitForExistence(timeout: 5))
|
|
}
|
|
|
|
func testDisplayTypeFromSettings() {
|
|
openSettings()
|
|
let displayType = app.segmentedControls[IDs.settingsDisplayType]
|
|
XCTAssertTrue(displayType.waitForExistence(timeout: 3), "翻页方式控件未出现")
|
|
|
|
displayType.buttons["横滑"].tap()
|
|
app.buttons[IDs.settingsDone].tap()
|
|
app.waitForDemoReaderState(timeout: 5, description: "display=horizontalScroll") { $0.display == "horizontalScroll" }
|
|
}
|
|
|
|
func testAllThemeButtonsExist() {
|
|
openSettings()
|
|
for index in 0...5 {
|
|
let themeButton = app.buttons[IDs.settingsTheme(index)]
|
|
XCTAssertTrue(themeButton.waitForExistence(timeout: 3), "主题按钮 \(index) 未出现")
|
|
}
|
|
}
|
|
|
|
func testScrollSettingsToReachAllControls() {
|
|
openSettings()
|
|
let scroll = app.scrollViews[IDs.settingsScroll]
|
|
XCTAssertTrue(scroll.waitForExistence(timeout: 3))
|
|
|
|
XCTAssertTrue(app.sliders[IDs.settingsBrightness].waitForExistence(timeout: 3))
|
|
XCTAssertTrue(app.segmentedControls[IDs.settingsLineHeight].waitForExistence(timeout: 3))
|
|
XCTAssertTrue(app.segmentedControls[IDs.settingsDisplayType].waitForExistence(timeout: 3))
|
|
}
|
|
}
|