adding UI test support for the ftue onboarding feature flags

This commit is contained in:
Adam Brown 2022-07-27 12:17:59 +01:00
parent 746191163a
commit fe0c2fc57f
1 changed files with 68 additions and 14 deletions

View File

@ -34,31 +34,46 @@ import im.vector.app.waitForView
class OnboardingRobot { class OnboardingRobot {
private val defaultVectorFeatures = DefaultVectorFeatures()
fun crawl() { fun crawl() {
waitUntilViewVisible(withId(R.id.loginSplashSubmit)) waitUntilViewVisible(withId(R.id.loginSplashSubmit))
crawlGetStarted() crawlCreateAccount()
crawlAlreadyHaveAccount() crawlAlreadyHaveAccount()
} }
private fun crawlGetStarted() { private fun crawlCreateAccount() {
clickOn(R.id.loginSplashSubmit) if (defaultVectorFeatures.isOnboardingCombinedRegisterEnabled()) {
assertDisplayed(R.id.useCaseHeaderTitle, R.string.ftue_auth_use_case_title) // TODO
clickOn(R.id.useCaseOptionOne) } else {
OnboardingServersRobot().crawlSignUp() clickOn(R.id.loginSplashSubmit)
pressBack() assertDisplayed(R.id.useCaseHeaderTitle, R.string.ftue_auth_use_case_title)
pressBack() clickOn(R.id.useCaseOptionOne)
OnboardingServersRobot().crawlSignUp()
pressBack()
pressBack()
}
} }
private fun crawlAlreadyHaveAccount() { private fun crawlAlreadyHaveAccount() {
clickOn(R.id.loginSplashAlreadyHaveAccount) if (defaultVectorFeatures.isOnboardingCombinedLoginEnabled()) {
OnboardingServersRobot().crawlSignIn() // TODO
pressBack() } else {
clickOn(R.id.loginSplashAlreadyHaveAccount)
OnboardingServersRobot().crawlSignIn()
pressBack()
}
} }
fun createAccount(userId: String, password: String = "password", homeServerUrl: String = "http://10.0.2.2:8080") { 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)) waitUntilViewVisible(withText(R.string.ftue_account_created_congratulations_title))
if (DefaultVectorFeatures().isOnboardingPersonalizeEnabled()) { if (defaultVectorFeatures.isOnboardingPersonalizeEnabled()) {
clickOn(R.string.ftue_account_created_personalize) clickOn(R.string.ftue_account_created_personalize)
waitUntilViewVisible(withText(R.string.ftue_display_name_title)) 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") { 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( private fun initSession(