mirror of
https://github.com/element-hq/element-x-ios.git
synced 2025-03-10 13:37:11 +00:00
63 lines
2.1 KiB
Swift
63 lines
2.1 KiB
Swift
//
|
|
// Copyright 2022-2024 New Vector Ltd.
|
|
//
|
|
// SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
|
// Please see LICENSE files in the repository root for full details.
|
|
//
|
|
|
|
import XCTest
|
|
|
|
@MainActor
|
|
class PollFormScreenUITests: XCTestCase {
|
|
func testEmptyScreen() async throws {
|
|
let app = Application.launch(.createPoll)
|
|
try await app.assertScreenshot()
|
|
}
|
|
|
|
func testFilledPoll() async throws {
|
|
let app = Application.launch(.createPoll)
|
|
let questionTextField = app.textFields[A11yIdentifiers.pollFormScreen.question]
|
|
questionTextField.tapCenter()
|
|
questionTextField.typeText("Do you like polls?")
|
|
|
|
let option1TextField = app.textFields[A11yIdentifiers.pollFormScreen.optionID(0)]
|
|
option1TextField.tapCenter()
|
|
option1TextField.typeText("Yes")
|
|
|
|
let option2TextField = app.textFields[A11yIdentifiers.pollFormScreen.optionID(1)]
|
|
option2TextField.tapCenter()
|
|
option2TextField.typeText("No")
|
|
|
|
// Dismiss the keyboard
|
|
app.swipeDown()
|
|
|
|
let createButton = app.buttons[A11yIdentifiers.pollFormScreen.submit]
|
|
XCTAssertTrue(createButton.isEnabled)
|
|
|
|
try await app.assertScreenshot()
|
|
}
|
|
|
|
func testMaxOptions() async throws {
|
|
let app = Application.launch(.createPoll)
|
|
let createButton = app.buttons[A11yIdentifiers.pollFormScreen.submit]
|
|
let addOption = app.buttons[A11yIdentifiers.pollFormScreen.addOption]
|
|
|
|
for _ in 1...18 {
|
|
// Use the frame as a fallback to fix the button being obscured by the home indicator.
|
|
if !addOption.isHittable || addOption.frame.maxY > (app.frame.maxY - 20) {
|
|
app.swipeUp()
|
|
}
|
|
addOption.tap()
|
|
}
|
|
|
|
app.swipeDown() // Dismiss the keyboard so the Add button is always visible.
|
|
|
|
app.swipeUp() // Ensures that the bottom is shown.
|
|
|
|
XCTAssertFalse(addOption.exists)
|
|
XCTAssertFalse(createButton.isEnabled)
|
|
|
|
try await app.assertScreenshot()
|
|
}
|
|
}
|