From fe0c2fc57f524193f3472e740febd11f1437554a Mon Sep 17 00:00:00 2001 From: Adam Brown Date: Wed, 27 Jul 2022 12:17:59 +0100 Subject: [PATCH] adding UI test support for the ftue onboarding feature flags --- .../im/vector/app/ui/robot/OnboardingRobot.kt | 82 +++++++++++++++---- 1 file changed, 68 insertions(+), 14 deletions(-) diff --git a/vector/src/androidTest/java/im/vector/app/ui/robot/OnboardingRobot.kt b/vector/src/androidTest/java/im/vector/app/ui/robot/OnboardingRobot.kt index 350bbf8ba3..820ec1d353 100644 --- a/vector/src/androidTest/java/im/vector/app/ui/robot/OnboardingRobot.kt +++ b/vector/src/androidTest/java/im/vector/app/ui/robot/OnboardingRobot.kt @@ -34,31 +34,46 @@ import im.vector.app.waitForView class OnboardingRobot { + private val defaultVectorFeatures = DefaultVectorFeatures() + fun crawl() { waitUntilViewVisible(withId(R.id.loginSplashSubmit)) - crawlGetStarted() + crawlCreateAccount() crawlAlreadyHaveAccount() } - private fun crawlGetStarted() { - clickOn(R.id.loginSplashSubmit) - assertDisplayed(R.id.useCaseHeaderTitle, R.string.ftue_auth_use_case_title) - clickOn(R.id.useCaseOptionOne) - OnboardingServersRobot().crawlSignUp() - pressBack() - pressBack() + private fun crawlCreateAccount() { + if (defaultVectorFeatures.isOnboardingCombinedRegisterEnabled()) { + // TODO + } else { + clickOn(R.id.loginSplashSubmit) + assertDisplayed(R.id.useCaseHeaderTitle, R.string.ftue_auth_use_case_title) + clickOn(R.id.useCaseOptionOne) + OnboardingServersRobot().crawlSignUp() + pressBack() + pressBack() + } } private fun crawlAlreadyHaveAccount() { - clickOn(R.id.loginSplashAlreadyHaveAccount) - OnboardingServersRobot().crawlSignIn() - pressBack() + if (defaultVectorFeatures.isOnboardingCombinedLoginEnabled()) { + // TODO + } else { + clickOn(R.id.loginSplashAlreadyHaveAccount) + OnboardingServersRobot().crawlSignIn() + pressBack() + } } fun createAccount(userId: String, password: String = "password", homeServerUrl: String = "http://10.0.2.2:8080") { - initSession(true, userId, password, homeServerUrl) + if (defaultVectorFeatures.isOnboardingCombinedRegisterEnabled()) { + createAccountViaCombinedRegister(homeServerUrl, userId, password) + } else { + initSession(true, userId, password, homeServerUrl) + } + waitUntilViewVisible(withText(R.string.ftue_account_created_congratulations_title)) - if (DefaultVectorFeatures().isOnboardingPersonalizeEnabled()) { + if (defaultVectorFeatures.isOnboardingPersonalizeEnabled()) { clickOn(R.string.ftue_account_created_personalize) waitUntilViewVisible(withText(R.string.ftue_display_name_title)) @@ -75,8 +90,47 @@ class OnboardingRobot { } } + private fun createAccountViaCombinedRegister(homeServerUrl: String, userId: String, password: String) { + waitUntilViewVisible(withId(R.id.loginSplashSubmit)) + assertDisplayed(R.id.loginSplashSubmit, R.string.login_splash_create_account) + clickOn(R.id.loginSplashSubmit) + clickOn(R.id.useCaseOptionOne) + + waitUntilViewVisible(withId(R.id.createAccountRoot)) + clickOn(R.id.editServerButton) + writeTo(R.id.chooseServerInput, homeServerUrl) + closeSoftKeyboard() + clickOn(R.id.chooseServerSubmit) + waitUntilViewVisible(withId(R.id.createAccountRoot)) + + writeTo(R.id.createAccountInput, userId) + writeTo(R.id.createAccountPasswordInput, password) + clickOn(R.id.createAccountSubmit) + } + fun login(userId: String, password: String = "password", homeServerUrl: String = "http://10.0.2.2:8080") { - initSession(false, userId, password, homeServerUrl) + if (defaultVectorFeatures.isOnboardingCombinedLoginEnabled()) { + loginViaCombinedLogin(homeServerUrl, userId, password) + } else { + initSession(false, userId, password, homeServerUrl) + } + } + + private fun loginViaCombinedLogin(homeServerUrl: String, userId: String, password: String) { + waitUntilViewVisible(withId(R.id.loginSplashSubmit)) + assertDisplayed(R.id.loginSplashSubmit, R.string.login_splash_create_account) + clickOn(R.id.loginSplashAlreadyHaveAccount) + + waitUntilViewVisible(withId(R.id.loginRoot)) + clickOn(R.id.editServerButton) + writeTo(R.id.chooseServerInput, homeServerUrl) + closeSoftKeyboard() + clickOn(R.id.chooseServerSubmit) + waitUntilViewVisible(withId(R.id.loginRoot)) + + writeTo(R.id.loginInput, userId) + writeTo(R.id.loginPasswordInput, password) + clickOn(R.id.loginSubmit) } private fun initSession(