Skip to content

Commit

Permalink
Merge branch 'add-OpenPortSelectorMenu-accessibility-identifier'
Browse files Browse the repository at this point in the history
  • Loading branch information
buggmagnet committed Dec 6, 2024
2 parents 1ad908b + ccaf4ed commit 4baba02
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 2 deletions.
1 change: 1 addition & 0 deletions ios/MullvadVPN/Classes/AccessbilityIdentifier.swift
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ public enum AccessibilityIdentifier: String {
case listCustomListDoneButton
case selectLocationFilterButton
case relayFilterChipCloseButton
case openPortSelectorMenuButton

// Cells
case deviceCell
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ class SelectableSettingsDetailsCell: SelectableSettingsCell {
.withRenderingMode(.alwaysOriginal)
.withTintColor(.white)
actionButton.configuration = actionButtonConfiguration
actionButton.accessibilityIdentifier = .openPortSelectorMenuButton

actionButton.addTarget(
self,
Expand Down
31 changes: 29 additions & 2 deletions ios/MullvadVPNUITests/Pages/VPNSettingsPage.swift
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,26 @@ class VPNSettingsPage: Page {
super.init(app)
}

private func cellExpandButton(_ cellAccessiblityIdentifier: AccessibilityIdentifier) -> XCUIElement {
private func cellSubButton(
_ cellAccessiblityIdentifier: AccessibilityIdentifier,
_ subButtonAccessibilityIdentifier: AccessibilityIdentifier
) -> XCUIElement {
let tableView = app.tables[AccessibilityIdentifier.vpnSettingsTableView]
let matchingCells = tableView.otherElements[cellAccessiblityIdentifier.rawValue]
let expandButton = matchingCells.buttons[AccessibilityIdentifier.expandButton]
let expandButton = matchingCells.buttons[subButtonAccessibilityIdentifier]
let lastCell = tableView.cells.allElementsBoundByIndex.last!
tableView.scrollDownToElement(element: lastCell)
return expandButton
}

private func cellExpandButton(_ cellAccessiblityIdentifier: AccessibilityIdentifier) -> XCUIElement {
return cellSubButton(cellAccessiblityIdentifier, .expandButton)
}

private func cellPortSelectorButton(_ cellAccessiblityIdentifier: AccessibilityIdentifier) -> XCUIElement {
return cellSubButton(cellAccessiblityIdentifier, .openPortSelectorMenuButton)
}

@discardableResult func tapBackButton() -> Self {
// Workaround for setting accessibility identifier on navigation bar button being non-trivial
app.buttons.matching(identifier: "Settings").allElementsBoundByIndex.last?.tap()
Expand All @@ -48,24 +59,40 @@ class VPNSettingsPage: Page {
return self
}

@discardableResult func tapUDPOverTCPPortSelectorButton() -> Self {
cellPortSelectorButton(AccessibilityIdentifier.wireGuardObfuscationUdpOverTcp).tap()

return self
}

@discardableResult func tapShadowsocksPortSelectorButton() -> Self {
cellPortSelectorButton(AccessibilityIdentifier.wireGuardObfuscationShadowsocks).tap()

return self
}

// this button no longer exists
@discardableResult func tapUDPOverTCPPortExpandButton() -> Self {
cellExpandButton(AccessibilityIdentifier.udpOverTCPPortCell).tap()

return self
}

// this button no longer exists
@discardableResult func tapUDPOverTCPPortAutomaticCell() -> Self {
app.cells["\(AccessibilityIdentifier.wireGuardObfuscationPort)Automatic"]
.tap()
return self
}

// this button no longer exists
@discardableResult func tapUDPOverTCPPort80Cell() -> Self {
app.cells["\(AccessibilityIdentifier.wireGuardObfuscationPort)80"]
.tap()
return self
}

// this button no longer exists
@discardableResult func tapUDPOverTCPPort5001Cell() -> Self {
app.cells["\(AccessibilityIdentifier.wireGuardObfuscationPort)5001"]
.tap()
Expand Down

0 comments on commit 4baba02

Please sign in to comment.