// // StartupTest.swift // UI Tests // // Created by Nico Verbruggen on 14/10/2022. // Copyright © 2023 Nico Verbruggen. All rights reserved. // import XCTest final class DomainsListTest: UITestCase { override func setUpWithError() throws { continueAfterFailure = false } override func tearDownWithError() throws {} private func openMenu() -> XCPMApplication { let app = XCPMApplication() app.withConfiguration(TestableConfigurations.working) app.launch() // Note: If this fails here, make sure the menu bar item can be displayed // If you use Bartender or something like this, this item may be hidden and tests will fail app.statusItems.firstMatch.click() return app } final func test_can_always_open_domains_list() throws { let app = openMenu() app.menuItems["mi_domain_list".localized].click() } final func test_can_filter_domains_list() throws { let app = openMenu() app.menuItems["mi_domain_list".localized].click() let window = app.windows.allElementsBoundByIndex.first { element in element.title == "domain_list.title".localized }! let searchField = window.searchFields.firstMatch searchField.click() searchField.typeText("non-existent thing") XCTAssertTrue(window.tables.tableRows.count == 0) searchField.clearText() searchField.click() searchField.typeText("concord") XCTAssertTrue(window.tables.tableRows.count == 1) sleep(2) } final func test_can_tap_add_domain_button() throws { let app = openMenu() app.menuItems["mi_domain_list".localized].click() let window = app.windows.allElementsBoundByIndex.first { element in element.title == "domain_list.title".localized }! window.buttons["Add Link"].click() assertExists(app.staticTexts["selection.title".localized]) assertExists(app.buttons["selection.create_link".localized]) assertExists(app.buttons["selection.create_proxy".localized]) assertExists(app.buttons["selection.cancel".localized]) sleep(2) } }