diff --git a/WordPress/JetpackScreenshotGeneration/JetpackScreenshotGeneration.swift b/WordPress/JetpackScreenshotGeneration/JetpackScreenshotGeneration.swift index 1217a5e49d05..226bf4e76b51 100644 --- a/WordPress/JetpackScreenshotGeneration/JetpackScreenshotGeneration.swift +++ b/WordPress/JetpackScreenshotGeneration/JetpackScreenshotGeneration.swift @@ -35,7 +35,7 @@ class JetpackScreenshotGeneration: XCTestCase { func testGenerateScreenshots() throws { // Get My Site screenshot - let mySite = MySiteScreen() + let mySite = try MySiteScreen() .showSiteSwitcher() .switchToSite(withTitle: "yourjetpack.blog") .thenTakeScreenshot(1, named: "MySite") @@ -77,7 +77,7 @@ class JetpackScreenshotGeneration: XCTestCase { } // Get Stats screenshot - let statsScreen = mySite.gotoStatsScreen() + let statsScreen = try mySite.goToStatsScreen() statsScreen .dismissCustomizeInsightsNotice() .switchTo(mode: .months) diff --git a/WordPress/UITestsFoundation/Globals.swift b/WordPress/UITestsFoundation/Globals.swift index 6eff9fcf5f50..52c4177eaddc 100644 --- a/WordPress/UITestsFoundation/Globals.swift +++ b/WordPress/UITestsFoundation/Globals.swift @@ -13,4 +13,27 @@ extension ScreenObject { public func pop() { navBackButton.tap() } + + public func openMagicLink() { + XCTContext.runActivity(named: "Open magic link in Safari") { activity in + let safari = XCUIApplication(bundleIdentifier: "com.apple.mobilesafari") + safari.launch() + + // Select the URL bar when Safari opens + let urlBar = safari.textFields["URL"] + if !urlBar.waitForExistence(timeout: 5) { + safari.buttons["URL"].tap() + } + + // Follow the magic link + var magicLinkComponents = URLComponents(url: WireMock.URL(), resolvingAgainstBaseURL: false)! + magicLinkComponents.path = "/magic-link" + magicLinkComponents.queryItems = [URLQueryItem(name: "scheme", value: "wpdebug")] + + urlBar.typeText("\(magicLinkComponents.url!.absoluteString)\n") + + // Accept the prompt to open the deep link + safari.scrollViews.element(boundBy: 0).buttons.element(boundBy: 1).tap() + } + } } diff --git a/WordPress/UITestsFoundation/Screens/Login/LoginEpilogueScreen.swift b/WordPress/UITestsFoundation/Screens/Login/LoginEpilogueScreen.swift index 4498d81a6829..c95ae2525fd1 100644 --- a/WordPress/UITestsFoundation/Screens/Login/LoginEpilogueScreen.swift +++ b/WordPress/UITestsFoundation/Screens/Login/LoginEpilogueScreen.swift @@ -23,9 +23,9 @@ public class LoginEpilogueScreen: BaseScreen { super.init(element: continueButton) } - public func continueWithSelectedSite() -> MySiteScreen { + public func continueWithSelectedSite() throws -> MySiteScreen { continueButton.tap() - return MySiteScreen() + return try MySiteScreen() } // Used by "Self-Hosted after WordPress.com login" test. When a site is added from the Sites List, the Sites List modal (MySitesScreen) diff --git a/WordPress/UITestsFoundation/Screens/Login/WelcomeScreen.swift b/WordPress/UITestsFoundation/Screens/Login/WelcomeScreen.swift index 1812b900d30a..68c99a48d7f6 100644 --- a/WordPress/UITestsFoundation/Screens/Login/WelcomeScreen.swift +++ b/WordPress/UITestsFoundation/Screens/Login/WelcomeScreen.swift @@ -1,21 +1,23 @@ +import ScreenObject import XCTest // TODO: remove when unifiedAuth is permanent. -private struct ElementStringIDs { - static let loginButton = "Prologue Log In Button" - static let signupButton = "Prologue Signup Button" -} +public class WelcomeScreen: ScreenObject { + + private let logInButtonGetter: (XCUIApplication) -> XCUIElement = { + $0.buttons["Prologue Log In Button"] + } -public class WelcomeScreen: BaseScreen { - let logInButton: XCUIElement - let signupButton: XCUIElement + private let signupButtonGetter: (XCUIApplication) -> XCUIElement = { + $0.buttons["Prologue Signup Button"] + } - public init() { - logInButton = XCUIApplication().buttons[ElementStringIDs.loginButton] - signupButton = XCUIApplication().buttons[ElementStringIDs.signupButton] + var signupButton: XCUIElement { signupButtonGetter(app) } + var logInButton: XCUIElement { logInButtonGetter(app) } - super.init(element: logInButton) + public init(app: XCUIApplication = XCUIApplication()) throws { + try super.init(expectedElementGetters: [logInButtonGetter, signupButtonGetter], app: app) } public func selectSignup() throws -> WelcomeScreenSignupComponent { @@ -31,6 +33,6 @@ public class WelcomeScreen: BaseScreen { } static func isLoaded() -> Bool { - return XCUIApplication().buttons[ElementStringIDs.loginButton].exists + (try? WelcomeScreen().isLoaded) ?? false } } diff --git a/WordPress/UITestsFoundation/Screens/MeTabScreen.swift b/WordPress/UITestsFoundation/Screens/MeTabScreen.swift index d6dc4fdb3dc4..e0381e8f4788 100644 --- a/WordPress/UITestsFoundation/Screens/MeTabScreen.swift +++ b/WordPress/UITestsFoundation/Screens/MeTabScreen.swift @@ -28,7 +28,7 @@ public class MeTabScreen: ScreenObject { return logOutButton.exists } - public func logout() -> WelcomeScreen { + public func logout() throws -> WelcomeScreen { app.cells["logOutFromWPcomButton"].tap() // Some localizations have very long "log out" text, which causes the UIAlertView @@ -40,7 +40,7 @@ public class MeTabScreen: ScreenObject { logOutAlert.buttons.element(boundBy: 1).tap() } - return WelcomeScreen() + return try WelcomeScreen() } public func logoutToPrologue() throws -> PrologueScreen { @@ -64,9 +64,9 @@ public class MeTabScreen: ScreenObject { return try PrologueScreen() } - public func dismiss() -> MySiteScreen { + public func dismiss() throws -> MySiteScreen { app.buttons["Done"].tap() - return MySiteScreen() + return try MySiteScreen() } } diff --git a/WordPress/UITestsFoundation/Screens/MySiteScreen.swift b/WordPress/UITestsFoundation/Screens/MySiteScreen.swift index ed4d36c8c014..ca964cbee4ba 100644 --- a/WordPress/UITestsFoundation/Screens/MySiteScreen.swift +++ b/WordPress/UITestsFoundation/Screens/MySiteScreen.swift @@ -40,9 +40,9 @@ public class MySiteScreen: BaseScreen { return blogTable.exists && blogTable.isHittable } - public init() { + public init() throws { let app = XCUIApplication() - tabBar = TabNavComponent() + tabBar = try TabNavComponent() removeSiteButton = app.cells[ElementStringIDs.removeSiteButton] removeSiteSheet = app.sheets.buttons.element(boundBy: 0) removeSiteAlert = app.alerts.buttons.element(boundBy: 1) @@ -105,14 +105,14 @@ public class MySiteScreen: BaseScreen { return MediaScreen() } - public func gotoStatsScreen() -> StatsScreen { + public func goToStatsScreen() throws -> StatsScreen { statsButton.tap() - return StatsScreen() + return try StatsScreen() } - public func gotoSettingsScreen() -> SiteSettingsScreen { + public func goToSettingsScreen() throws -> SiteSettingsScreen { siteSettingsButton.tap() - return SiteSettingsScreen() + return try SiteSettingsScreen() } func gotoCreateSheet() throws -> ActionSheetComponent { diff --git a/WordPress/UITestsFoundation/Screens/MySitesScreen.swift b/WordPress/UITestsFoundation/Screens/MySitesScreen.swift index 29850c673270..cda3c1496248 100644 --- a/WordPress/UITestsFoundation/Screens/MySitesScreen.swift +++ b/WordPress/UITestsFoundation/Screens/MySitesScreen.swift @@ -30,14 +30,14 @@ public class MySitesScreen: BaseScreen { return LoginSiteAddressScreen() } - public func closeModal() -> MySiteScreen { + public func closeModal() throws -> MySiteScreen { cancelButton.tap() - return MySiteScreen() + return try MySiteScreen() } @discardableResult - public func switchToSite(withTitle title: String) -> MySiteScreen { + public func switchToSite(withTitle title: String) throws -> MySiteScreen { XCUIApplication().cells[title].tap() - return MySiteScreen() + return try MySiteScreen() } } diff --git a/WordPress/UITestsFoundation/Screens/Signup/SignupCheckMagicLinkScreen.swift b/WordPress/UITestsFoundation/Screens/Signup/SignupCheckMagicLinkScreen.swift index d1d072703538..fc8f9e7f79ec 100644 --- a/WordPress/UITestsFoundation/Screens/Signup/SignupCheckMagicLinkScreen.swift +++ b/WordPress/UITestsFoundation/Screens/Signup/SignupCheckMagicLinkScreen.swift @@ -1,17 +1,14 @@ +import ScreenObject import XCTest -private struct ElementStringIDs { - static let mailButton = "Open Mail Button" -} - -public class SignupCheckMagicLinkScreen: BaseScreen { - let mailButton: XCUIElement - - init() { - let app = XCUIApplication() - mailButton = app.buttons[ElementStringIDs.mailButton] +public class SignupCheckMagicLinkScreen: ScreenObject { - super.init(element: mailButton) + init(app: XCUIApplication = XCUIApplication()) throws { + try super.init( + // swiftlint:disable:next opening_brace + expectedElementGetters: [{ $0.buttons["Open Mail Button"] }], + app: app + ) } public func openMagicSignupLink() -> SignupEpilogueScreen { diff --git a/WordPress/UITestsFoundation/Screens/Signup/SignupEmailScreen.swift b/WordPress/UITestsFoundation/Screens/Signup/SignupEmailScreen.swift index d85fb241cd44..0c5de7060b4f 100644 --- a/WordPress/UITestsFoundation/Screens/Signup/SignupEmailScreen.swift +++ b/WordPress/UITestsFoundation/Screens/Signup/SignupEmailScreen.swift @@ -1,29 +1,30 @@ +import ScreenObject import XCTest // TODO: remove when unifiedAuth is permanent. -private struct ElementStringIDs { - static let emailTextField = "Signup Email Address" - static let nextButton = "Signup Email Next Button" -} +public class SignupEmailScreen: ScreenObject { + + private let emailTextFieldGetter: (XCUIApplication) -> XCUIElement = { + $0.textFields["Signup Email Address"] + } -public class SignupEmailScreen: BaseScreen { - let emailTextField: XCUIElement - let nextButton: XCUIElement + private let nextButtonGetter: (XCUIApplication) -> XCUIElement = { + $0.buttons["Signup Email Next Button"] + } - init() { - let app = XCUIApplication() - emailTextField = app.textFields[ElementStringIDs.emailTextField] - nextButton = app.buttons[ElementStringIDs.nextButton] + var emailTextField: XCUIElement { emailTextFieldGetter(app) } + var nextButton: XCUIElement { nextButtonGetter(app) } - super.init(element: emailTextField) + init(app: XCUIApplication = XCUIApplication()) throws { + try super.init(expectedElementGetters: [emailTextFieldGetter, nextButtonGetter], app: app) } - public func proceedWith(email: String) -> SignupCheckMagicLinkScreen { + public func proceedWith(email: String) throws -> SignupCheckMagicLinkScreen { emailTextField.tap() emailTextField.typeText(email) nextButton.tap() - return SignupCheckMagicLinkScreen() + return try SignupCheckMagicLinkScreen() } } diff --git a/WordPress/UITestsFoundation/Screens/Signup/SignupEpilogueScreen.swift b/WordPress/UITestsFoundation/Screens/Signup/SignupEpilogueScreen.swift index 6cf9b0a3210d..5f82d11e337f 100644 --- a/WordPress/UITestsFoundation/Screens/Signup/SignupEpilogueScreen.swift +++ b/WordPress/UITestsFoundation/Screens/Signup/SignupEpilogueScreen.swift @@ -49,9 +49,9 @@ public class SignupEpilogueScreen: BaseScreen { return self } - public func continueWithSignup() -> MySiteScreen { + public func continueWithSignup() throws -> MySiteScreen { continueButton.tap() - return MySiteScreen() + return try MySiteScreen() } } diff --git a/WordPress/UITestsFoundation/Screens/Signup/WelcomeScreenSignupComponent.swift b/WordPress/UITestsFoundation/Screens/Signup/WelcomeScreenSignupComponent.swift index cd4e08becc3f..9e5c2eb0a6cc 100644 --- a/WordPress/UITestsFoundation/Screens/Signup/WelcomeScreenSignupComponent.swift +++ b/WordPress/UITestsFoundation/Screens/Signup/WelcomeScreenSignupComponent.swift @@ -15,9 +15,9 @@ public class WelcomeScreenSignupComponent: ScreenObject { try super.init(expectedElementGetters: [emailSignupButtonGetter], app: app) } - public func selectEmailSignup() -> SignupEmailScreen { + public func selectEmailSignup() throws -> SignupEmailScreen { emailSignupButton.tap() - return SignupEmailScreen() + return try SignupEmailScreen() } } diff --git a/WordPress/UITestsFoundation/Screens/SiteSettingsScreen.swift b/WordPress/UITestsFoundation/Screens/SiteSettingsScreen.swift index 4a5d4d1f64e9..f237bc35a43a 100644 --- a/WordPress/UITestsFoundation/Screens/SiteSettingsScreen.swift +++ b/WordPress/UITestsFoundation/Screens/SiteSettingsScreen.swift @@ -1,22 +1,20 @@ +import ScreenObject import XCTest -public class SiteSettingsScreen: BaseScreen { +public class SiteSettingsScreen: ScreenObject { public enum Toggle { case on case off } - let settingsTable: XCUIElement - let blockEditorToggle: XCUIElement - let tabBar: TabNavComponent - - public init() { - settingsTable = XCUIApplication().tables["siteSettingsTable"] - blockEditorToggle = settingsTable.switches["useBlockEditorSwitch"] - tabBar = TabNavComponent() + private let blockEditorToggleGetter: (XCUIApplication) -> XCUIElement = { + $0.tables["siteSettingsTable"].switches["useBlockEditorSwitch"] + } + var blockEditorToggle: XCUIElement { blockEditorToggleGetter(app) } - super.init(element: settingsTable) + public init(app: XCUIApplication = XCUIApplication()) throws { + try super.init(expectedElementGetters: [blockEditorToggleGetter], app: app) } @discardableResult @@ -34,11 +32,11 @@ public class SiteSettingsScreen: BaseScreen { return self } - public func goBackToMySite() -> MySiteScreen { + public func goBackToMySite() throws -> MySiteScreen { if XCUIDevice.isPhone { navBackButton.tap() } - return MySiteScreen() + return try MySiteScreen() } private func isBlockEditorEnabled() -> Bool { @@ -46,6 +44,6 @@ public class SiteSettingsScreen: BaseScreen { } public static func isLoaded() -> Bool { - return XCUIApplication().navigationBars["Settings"].exists + (try? SiteSettingsScreen().isLoaded) ?? false } } diff --git a/WordPress/UITestsFoundation/Screens/StatsScreen.swift b/WordPress/UITestsFoundation/Screens/StatsScreen.swift index d5fd882b382d..304887b1436e 100644 --- a/WordPress/UITestsFoundation/Screens/StatsScreen.swift +++ b/WordPress/UITestsFoundation/Screens/StatsScreen.swift @@ -1,27 +1,24 @@ +import ScreenObject import XCTest -private struct ElementStringIDs { - static let draftsButton = "drafts" -} - -public class StatsScreen: BaseScreen { +public class StatsScreen: ScreenObject { public enum Mode: String { - case months = "months" - case years = "years" - } - - struct ElementStringIDs { - static let dismissCustomizeInsightsButton = "dismiss-customize-insights-cell" + case months + case years } - public init() { - super.init(element: XCUIApplication().otherElements.firstMatch) + public init(app: XCUIApplication = XCUIApplication()) throws { + try super.init( + // swiftlint:disable:next opening_brace + expectedElementGetters: [{ $0.otherElements.firstMatch }], + app: app + ) } @discardableResult public func dismissCustomizeInsightsNotice() -> StatsScreen { - let button = XCUIApplication().buttons[ElementStringIDs.dismissCustomizeInsightsButton] + let button = app.buttons["dismiss-customize-insights-cell"] if button.exists { button.tap() @@ -32,7 +29,7 @@ public class StatsScreen: BaseScreen { @discardableResult public func switchTo(mode: Mode) -> StatsScreen { - XCUIApplication().buttons[mode.rawValue].tap() + app.buttons[mode.rawValue].tap() return self } } diff --git a/WordPress/UITestsFoundation/Screens/TabNavComponent.swift b/WordPress/UITestsFoundation/Screens/TabNavComponent.swift index 6a2c645ffe70..7f3551240072 100644 --- a/WordPress/UITestsFoundation/Screens/TabNavComponent.swift +++ b/WordPress/UITestsFoundation/Screens/TabNavComponent.swift @@ -1,34 +1,54 @@ +import ScreenObject import XCTest -public class TabNavComponent: BaseScreen { +public class TabNavComponent: ScreenObject { - let mySitesTabButton: XCUIElement - let readerTabButton: XCUIElement - let notificationsTabButton: XCUIElement + private static let tabBarGetter: (XCUIApplication) -> XCUIElement = { + $0.tabBars["Main Navigation"] + } + + private let mySitesTabButtonGetter: (XCUIApplication) -> XCUIElement = { + TabNavComponent.tabBarGetter($0).buttons["mySitesTabButton"] + } + + private let readerTabButtonGetter: (XCUIApplication) -> XCUIElement = { + TabNavComponent.tabBarGetter($0).buttons["readerTabButton"] + } + + private let notificationsTabButtonGetter: (XCUIApplication) -> XCUIElement = { + TabNavComponent.tabBarGetter($0).buttons["notificationsTabButton"] + } + + var mySitesTabButton: XCUIElement { mySitesTabButtonGetter(app) } + var readerTabButton: XCUIElement { readerTabButtonGetter(app) } + var notificationsTabButton: XCUIElement { notificationsTabButtonGetter(app) } - public init() { - let tabBars = XCUIApplication().tabBars["Main Navigation"] - mySitesTabButton = tabBars.buttons["mySitesTabButton"] - readerTabButton = tabBars.buttons["readerTabButton"] - notificationsTabButton = tabBars.buttons["notificationsTabButton"] - super.init(element: mySitesTabButton) + public init(app: XCUIApplication = XCUIApplication()) throws { + try super.init( + expectedElementGetters: [ + mySitesTabButtonGetter, + readerTabButtonGetter, + notificationsTabButtonGetter + ], + app: app + ) } - public func gotoMeScreen() throws -> MeTabScreen { - gotoMySiteScreen() + public func goToMeScreen() throws -> MeTabScreen { + try goToMySiteScreen() let meButton = app.navigationBars.buttons["meBarButton"] meButton.tap() return try MeTabScreen() } @discardableResult - public func gotoMySiteScreen() -> MySiteScreen { + public func goToMySiteScreen() throws -> MySiteScreen { mySitesTabButton.tap() - return MySiteScreen() + return try MySiteScreen() } public func gotoAztecEditorScreen() throws -> AztecEditorScreen { - let mySiteScreen = gotoMySiteScreen() + let mySiteScreen = try goToMySiteScreen() let actionSheet = try mySiteScreen.gotoCreateSheet() actionSheet.goToBlogPost() @@ -36,7 +56,7 @@ public class TabNavComponent: BaseScreen { } public func gotoBlockEditorScreen() throws -> BlockEditorScreen { - let mySite = gotoMySiteScreen() + let mySite = try goToMySiteScreen() let actionSheet = try mySite.gotoCreateSheet() actionSheet.goToBlogPost() @@ -54,10 +74,11 @@ public class TabNavComponent: BaseScreen { } public static func isLoaded() -> Bool { - return XCUIApplication().buttons["mySitesTabButton"].exists + (try? TabNavComponent().isLoaded) ?? false } public static func isVisible() -> Bool { - return XCUIApplication().buttons["mySitesTabButton"].isHittable + guard let screen = try? TabNavComponent() else { return false } + return screen.mySitesTabButton.isHittable } } diff --git a/WordPress/WordPressScreenshotGeneration/WordPressScreenshotGeneration.swift b/WordPress/WordPressScreenshotGeneration/WordPressScreenshotGeneration.swift index 725f41c19b0d..28dcb31c17b4 100644 --- a/WordPress/WordPressScreenshotGeneration/WordPressScreenshotGeneration.swift +++ b/WordPress/WordPressScreenshotGeneration/WordPressScreenshotGeneration.swift @@ -1,3 +1,4 @@ +import ScreenObject import UIKit import UITestsFoundation import XCTest @@ -34,7 +35,7 @@ class WordPressScreenshotGeneration: XCTestCase { func testGenerateScreenshots() throws { // Get post editor screenshot - let postList = MySiteScreen() + let postList = try MySiteScreen() .showSiteSwitcher() .switchToSite(withTitle: "fourpawsdoggrooming.wordpress.com") .gotoPostsScreen() @@ -70,7 +71,7 @@ class WordPressScreenshotGeneration: XCTestCase { } // Get My Site screenshot - let mySite = MySiteScreen() + let mySite = try MySiteScreen() .showSiteSwitcher() .switchToSite(withTitle: "tricountyrealestate.wordpress.com") .thenTakeScreenshot(4, named: "MySite") @@ -85,7 +86,7 @@ class WordPressScreenshotGeneration: XCTestCase { } // Get Stats screenshot - let statsScreen = mySite.gotoStatsScreen() + let statsScreen = try mySite.goToStatsScreen() statsScreen .dismissCustomizeInsightsNotice() .switchTo(mode: .months) @@ -93,7 +94,7 @@ class WordPressScreenshotGeneration: XCTestCase { // Get Discover screenshot // Currently, the view includes the "You Might Like" section - TabNavComponent() + try TabNavComponent() .gotoReaderScreen() .openDiscover() .thenTakeScreenshot(2, named: "Discover") @@ -122,3 +123,16 @@ extension BaseScreen { return self } } + +extension ScreenObject { + + @discardableResult + func thenTakeScreenshot(_ index: Int, named title: String) -> Self { + let mode = XCUIDevice.inDarkMode ? "dark" : "light" + let filename = "\(index)-\(mode)-\(title)" + + snapshot(filename) + + return self + } +} diff --git a/WordPress/WordPressUITests/Flows/EditorFlow.swift b/WordPress/WordPressUITests/Flows/EditorFlow.swift index 473a92667696..30187aa98dcf 100644 --- a/WordPress/WordPressUITests/Flows/EditorFlow.swift +++ b/WordPress/WordPressUITests/Flows/EditorFlow.swift @@ -8,16 +8,16 @@ class EditorFlow { } } - static func gotoMySiteScreen() -> MySiteScreen { - return TabNavComponent().gotoMySiteScreen() + static func goToMySiteScreen() throws -> MySiteScreen { + return try TabNavComponent().goToMySiteScreen() } - static func toggleBlockEditor(to state: SiteSettingsScreen.Toggle) -> SiteSettingsScreen { + static func toggleBlockEditor(to state: SiteSettingsScreen.Toggle) throws -> SiteSettingsScreen { if !SiteSettingsScreen.isLoaded() { - _ = TabNavComponent() - .gotoMySiteScreen() - .gotoSettingsScreen() + _ = try TabNavComponent() + .goToMySiteScreen() + .goToSettingsScreen() } - return SiteSettingsScreen().toggleBlockEditor(to: state) + return try SiteSettingsScreen().toggleBlockEditor(to: state) } } diff --git a/WordPress/WordPressUITests/Flows/LoginFlow.swift b/WordPress/WordPressUITests/Flows/LoginFlow.swift index 0fd7fa4a2f09..7002c63a7bb0 100644 --- a/WordPress/WordPressUITests/Flows/LoginFlow.swift +++ b/WordPress/WordPressUITests/Flows/LoginFlow.swift @@ -53,7 +53,7 @@ class LoginFlow { guard TabNavComponent.isLoaded() else { return try login(siteUrl: siteUrl, username: username, password: password).tabBar } - return TabNavComponent() + return try TabNavComponent() } // Login with WP site via Site Address. @@ -61,18 +61,18 @@ class LoginFlow { guard TabNavComponent.isLoaded() else { return try login(siteUrl: siteUrl, email: email, password: password).tabBar } - return TabNavComponent() + return try TabNavComponent() } static func logoutIfNeeded() throws { try XCTContext.runActivity(named: "Log out of app if currently logged in") { (activity) in if TabNavComponent.isLoaded() { Logger.log(message: "Logging out...", event: .i) - let meScreen = try TabNavComponent().gotoMeScreen() + let meScreen = try TabNavComponent().goToMeScreen() if meScreen.isLoggedInToWpcom() { _ = try meScreen.logoutToPrologue() } else { - meScreen.dismiss().removeSelfHostedSite() + try meScreen.dismiss().removeSelfHostedSite() } return } diff --git a/WordPress/WordPressUITests/Tests/EditorGutenbergTests.swift b/WordPress/WordPressUITests/Tests/EditorGutenbergTests.swift index 5e87498d9e56..46becc1189fe 100644 --- a/WordPress/WordPressUITests/Tests/EditorGutenbergTests.swift +++ b/WordPress/WordPressUITests/Tests/EditorGutenbergTests.swift @@ -9,7 +9,7 @@ class EditorGutenbergTests: XCTestCase { _ = try LoginFlow.loginIfNeeded(siteUrl: WPUITestCredentials.testWPcomSiteAddress, email: WPUITestCredentials.testWPcomUserEmail, password: WPUITestCredentials.testWPcomPassword) editorScreen = try EditorFlow - .gotoMySiteScreen() + .goToMySiteScreen() .tabBar.gotoBlockEditorScreen() } diff --git a/WordPress/WordPressUITests/Tests/LoginTests.swift b/WordPress/WordPressUITests/Tests/LoginTests.swift index d91ed28c129f..de436fd72fc1 100644 --- a/WordPress/WordPressUITests/Tests/LoginTests.swift +++ b/WordPress/WordPressUITests/Tests/LoginTests.swift @@ -24,7 +24,7 @@ class LoginTests: XCTestCase { .verifyEpilogueDisplays(username: WPUITestCredentials.testWPcomUsername, siteUrl: WPUITestCredentials.testWPcomSitePrimaryAddress) .continueWithSelectedSite() .dismissNotificationAlertIfNeeded() - .tabBar.gotoMeScreen() + .tabBar.goToMeScreen() .logoutToPrologue() XCTAssert(prologueScreen.isLoaded) @@ -41,17 +41,17 @@ class LoginTests: XCTestCase { .openMagicLoginLink() .continueWithSelectedSite() .dismissNotificationAlertIfNeeded() - .tabBar.gotoMeScreen() + .tabBar.goToMeScreen() .logout() - XCTAssert(welcomeScreen.isLoaded()) + XCTAssert(welcomeScreen.isLoaded) } // Unified self hosted login/out func testSelfHostedLoginLogout() throws { let prologueScreen = try PrologueScreen() - prologueScreen + try prologueScreen .selectSiteAddress() .proceedWith(siteUrl: WPUITestCredentials.selfHostedSiteAddress) .proceedWith(username: WPUITestCredentials.selfHostedUsername, password: WPUITestCredentials.selfHostedPassword) @@ -97,6 +97,6 @@ class LoginTests: XCTestCase { // So, we remove the self-hosted site before tearDown() starts. .removeSelfHostedSite() - XCTAssert(MySiteScreen().isLoaded()) + XCTAssert(MySiteScreen.isLoaded()) } } diff --git a/WordPress/WordPressUITests/Tests/MainNavigationTests.swift b/WordPress/WordPressUITests/Tests/MainNavigationTests.swift index 13dcac6a9f24..07a54cac8874 100644 --- a/WordPress/WordPressUITests/Tests/MainNavigationTests.swift +++ b/WordPress/WordPressUITests/Tests/MainNavigationTests.swift @@ -8,8 +8,8 @@ class MainNavigationTests: XCTestCase { setUpTestSuite() try LoginFlow.login(siteUrl: WPUITestCredentials.testWPcomSiteAddress, email: WPUITestCredentials.testWPcomUserEmail, password: WPUITestCredentials.testWPcomPassword) - mySiteScreen = TabNavComponent() - .gotoMySiteScreen() + mySiteScreen = try TabNavComponent() + .goToMySiteScreen() } override func tearDownWithError() throws {