field_ios

In-the-field app for Radroots on iOS
git clone https://radroots.dev/git/field_ios.git
Log | Files | Refs | README | LICENSE

TeraEditingProtectionUITests.swift (2085B)


      1 import XCTest
      2 
      3 final class TeraEditingProtectionUITests: XCTestCase {
      4   @MainActor
      5   func testCancelDiscardConfirmationKeepsEditingAndExplicitDiscardAppliesOnce() {
      6     let app = XCUIApplication()
      7     app.launchArguments = ["-UIPreferredContentSizeCategoryName", "UICTContentSizeCategoryL"]
      8     app.launchEnvironment["TERA_IOS_UI_TEST_SHELL"] = "1"
      9     app.launchEnvironment["TERA_IOS_UI_TEST_EDITING_PROTECTION"] = "1"
     10     app.launch()
     11     let tabBar = app.tabBars.firstMatch
     12     XCTAssertTrue(tabBar.waitForExistence(timeout: 5))
     13     tabBar.buttons["Add"].tap()
     14     let editing = app.textFields["tera.test.editing.value"]
     15     XCTAssertTrue(editing.waitForExistence(timeout: 5))
     16     app.buttons["tera.test.editing.replace"].tap()
     17     let discard = app.buttons["tera.add.protection.discard"]
     18     XCTAssertTrue(discard.waitForExistence(timeout: 5))
     19     discard.tap()
     20     let confirmation = app.sheets.firstMatch
     21     XCTAssertTrue(confirmation.waitForExistence(timeout: 5))
     22     let keep = confirmation.buttons["Keep editing"]
     23     if keep.exists {
     24       keep.tap()
     25     } else {
     26       app.otherElements["PopoverDismissRegion"].coordinate(withNormalizedOffset: CGVector(dx: 0.1, dy: 0.75)).tap()
     27     }
     28     XCTAssertTrue(confirmation.waitForNonExistence(timeout: 5))
     29     XCTAssertEqual(editing.value as? String, "Keep this unfinished text")
     30     XCTAssertEqual(app.staticTexts["tera.test.editing.replacements"].label, "0")
     31     XCTAssertTrue(discard.waitForNonExistence(timeout: 5))
     32     app.buttons["tera.test.editing.replace"].tap()
     33     XCTAssertTrue(discard.waitForExistence(timeout: 5))
     34     discard.tap()
     35     XCTAssertTrue(confirmation.waitForExistence(timeout: 5))
     36     confirmation.buttons["Discard and continue"].tap()
     37     let count = app.staticTexts["tera.test.editing.replacements"]
     38     let applied = XCTNSPredicateExpectation(predicate: NSPredicate(format: "label == '1'"), object: count)
     39     XCTAssertEqual(XCTWaiter.wait(for: [applied], timeout: 5), .completed)
     40     XCTAssertEqual(editing.value as? String, "Editing")
     41     XCTAssertTrue(discard.waitForNonExistence(timeout: 5))
     42   }
     43 }