Merge branch 'test/login-helper' into 'master'
Updated tests to use Login helper See merge request proton/mobile/android/proton-libs!485
This commit is contained in:
commit
8105336ee6
|
@ -18,16 +18,22 @@
|
|||
|
||||
package me.proton.core.test.android.uitests.tests
|
||||
|
||||
import android.app.Application
|
||||
import android.util.Log
|
||||
import androidx.test.core.app.ApplicationProvider
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import me.proton.android.core.coreexample.BuildConfig
|
||||
import me.proton.android.core.coreexample.MainActivity
|
||||
import me.proton.android.core.coreexample.di.AppDatabaseModule
|
||||
import me.proton.core.auth.presentation.testing.ProtonTestEntryPoint
|
||||
import me.proton.core.test.android.instrumented.ProtonTest
|
||||
import me.proton.core.test.android.instrumented.utils.Shell.setupDevice
|
||||
import me.proton.core.test.android.plugins.Quark
|
||||
import me.proton.core.test.android.plugins.data.Plan
|
||||
import me.proton.core.test.android.plugins.data.User
|
||||
import me.proton.core.test.android.plugins.data.User.Users
|
||||
import me.proton.core.test.android.robots.auth.AddAccountRobot
|
||||
import me.proton.core.test.android.uitests.CoreexampleRobot
|
||||
import org.junit.After
|
||||
import org.junit.BeforeClass
|
||||
|
||||
|
@ -47,9 +53,15 @@ open class BaseTest(
|
|||
Log.d(testTag, "Clearing AccountManager database tables")
|
||||
}
|
||||
|
||||
fun login(user: User) {
|
||||
authHelper.login(user.name, user.password)
|
||||
AddAccountRobot().back<CoreexampleRobot>()
|
||||
}
|
||||
|
||||
companion object {
|
||||
val users = Users("sensitive/users.json")
|
||||
val quark = Quark(BuildConfig.HOST, BuildConfig.PROXY_TOKEN, "sensitive/internal_apis.json")
|
||||
val authHelper = ProtonTestEntryPoint.provide(ApplicationProvider.getApplicationContext<Application>())
|
||||
val appDatabase = AppDatabaseModule.provideAppDatabase(getTargetContext())
|
||||
|
||||
@JvmStatic
|
||||
|
|
|
@ -31,9 +31,10 @@ class PasswordManagementTest : BaseTest() {
|
|||
@Test
|
||||
fun changePasswordAndLogin() {
|
||||
val newPassword = "newPassword"
|
||||
AddAccountRobot()
|
||||
.signIn()
|
||||
.loginUser<CoreexampleRobot>(user)
|
||||
|
||||
login(user)
|
||||
|
||||
CoreexampleRobot()
|
||||
.settingsPasswordManagement()
|
||||
.changePassword<CoreexampleRobot>(user.password, newPassword)
|
||||
.accountSwitcher()
|
||||
|
|
|
@ -18,14 +18,13 @@
|
|||
|
||||
package me.proton.core.test.android.uitests.tests.medium.auth.login
|
||||
|
||||
import me.proton.core.test.android.uitests.tests.SmokeTest
|
||||
import me.proton.core.test.android.robots.auth.AccountSwitcherRobot
|
||||
import me.proton.core.test.android.robots.auth.AccountSwitcherRobot.UserAction
|
||||
import me.proton.core.test.android.robots.auth.AddAccountRobot
|
||||
import me.proton.core.test.android.robots.auth.login.LoginRobot
|
||||
import me.proton.core.test.android.robots.auth.login.MailboxPasswordRobot
|
||||
import me.proton.core.test.android.uitests.CoreexampleRobot
|
||||
import me.proton.core.test.android.uitests.tests.BaseTest
|
||||
import me.proton.core.test.android.uitests.tests.SmokeTest
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
|
@ -39,10 +38,7 @@ class AccountSwitcherTests : BaseTest() {
|
|||
@Before
|
||||
fun loginOnePass() {
|
||||
quark.jailUnban()
|
||||
AddAccountRobot()
|
||||
.signIn()
|
||||
.loginUser<CoreexampleRobot>(firstUser)
|
||||
.verify { accountSwitcherDisplayed() }
|
||||
login(firstUser)
|
||||
|
||||
CoreexampleRobot()
|
||||
.accountSwitcher()
|
||||
|
|
|
@ -20,11 +20,10 @@ package me.proton.core.test.android.uitests.tests.medium.humanverification
|
|||
|
||||
import me.proton.core.account.domain.entity.AccountState.Ready
|
||||
import me.proton.core.account.domain.entity.SessionState.Authenticated
|
||||
import me.proton.core.test.android.uitests.tests.SmokeTest
|
||||
import me.proton.core.test.android.robots.auth.AddAccountRobot
|
||||
import me.proton.core.test.android.robots.humanverification.HumanVerificationRobot
|
||||
import me.proton.core.test.android.uitests.CoreexampleRobot
|
||||
import me.proton.core.test.android.uitests.tests.BaseTest
|
||||
import me.proton.core.test.android.uitests.tests.SmokeTest
|
||||
import org.junit.Before
|
||||
import org.junit.Ignore
|
||||
import org.junit.Test
|
||||
|
@ -38,9 +37,10 @@ class HumanVerificationTests : BaseTest() {
|
|||
@Before
|
||||
fun triggerHumanVerification() {
|
||||
quark.jailUnban()
|
||||
AddAccountRobot()
|
||||
.signIn()
|
||||
.loginUser<CoreexampleRobot>(user)
|
||||
|
||||
login(user)
|
||||
|
||||
CoreexampleRobot()
|
||||
.humanVerification()
|
||||
.verify { hvElementsDisplayed() }
|
||||
}
|
||||
|
|
|
@ -18,53 +18,45 @@
|
|||
|
||||
package me.proton.core.test.android.uitests.tests.medium.payments
|
||||
|
||||
import me.proton.core.test.android.uitests.tests.SmokeTest
|
||||
import me.proton.core.test.android.plugins.data.Card
|
||||
import me.proton.core.test.android.plugins.data.User
|
||||
import me.proton.core.test.android.plugins.data.Plan
|
||||
import me.proton.core.test.android.robots.auth.AddAccountRobot
|
||||
import me.proton.core.test.android.robots.auth.login.LoginRobot
|
||||
import me.proton.core.test.android.plugins.data.User
|
||||
import me.proton.core.test.android.robots.payments.ExistingPaymentMethodsRobot
|
||||
import me.proton.core.test.android.robots.payments.ExistingPaymentMethodsRobot.PaymentMethodElement.paymentMethod
|
||||
import me.proton.core.test.android.uitests.CoreexampleRobot
|
||||
import me.proton.core.test.android.uitests.tests.BaseTest
|
||||
import org.junit.Before
|
||||
import me.proton.core.test.android.uitests.tests.SmokeTest
|
||||
import org.junit.Ignore
|
||||
import org.junit.Test
|
||||
|
||||
class ExistingPaymentMethodTests : BaseTest() {
|
||||
|
||||
private val loginRobot = LoginRobot()
|
||||
|
||||
companion object {
|
||||
val userWithCard: User = quark.seedUserWithCreditCard()
|
||||
}
|
||||
|
||||
@Before
|
||||
fun goToLogin() {
|
||||
quark.jailUnban()
|
||||
AddAccountRobot().signIn()
|
||||
}
|
||||
|
||||
private fun upgradeUserToPlan(user: User, plan: Plan = Plan.Dev): ExistingPaymentMethodsRobot =
|
||||
loginRobot
|
||||
.loginUser<CoreexampleRobot>(user)
|
||||
.plansUpgrade()
|
||||
.upgradeToPlan(plan)
|
||||
|
||||
@Test
|
||||
@Ignore("Requires user with paypal account linked")
|
||||
fun existingPaypalMethodDisplayed() {
|
||||
val user = users.getUser { it.paypal.isNotEmpty() }
|
||||
val userWithPaypal = users.getUser { it.paypal.isNotEmpty() }
|
||||
|
||||
upgradeUserToPlan(user)
|
||||
.verify { paymentMethodDisplayed("PayPal", user.paypal) }
|
||||
login(userWithPaypal)
|
||||
|
||||
CoreexampleRobot()
|
||||
.plansUpgrade()
|
||||
.upgradeToPlan<ExistingPaymentMethodsRobot>(Plan.Dev)
|
||||
.verify { paymentMethodDisplayed("PayPal", userWithPaypal.paypal) }
|
||||
}
|
||||
|
||||
@Test
|
||||
@SmokeTest
|
||||
fun existingCreditCardMethodDisplayed() {
|
||||
upgradeUserToPlan(userWithCard)
|
||||
|
||||
login(userWithCard)
|
||||
|
||||
CoreexampleRobot()
|
||||
.plansUpgrade()
|
||||
.upgradeToPlan<ExistingPaymentMethodsRobot>(Plan.Dev)
|
||||
.verify { paymentMethodDisplayed(Card.default.details, Card.default.name) }
|
||||
}
|
||||
|
||||
|
@ -74,7 +66,11 @@ class ExistingPaymentMethodTests : BaseTest() {
|
|||
val user = users.getUser { it.paypal.isNotEmpty() && it.cards.isNotEmpty() && !it.isPaid }
|
||||
val card = user.cards[0]
|
||||
|
||||
upgradeUserToPlan(user)
|
||||
login(user)
|
||||
|
||||
CoreexampleRobot()
|
||||
.plansUpgrade()
|
||||
.upgradeToPlan<ExistingPaymentMethodsRobot>(Plan.Dev)
|
||||
.verify {
|
||||
paymentMethodDisplayed(card.details, card.name)
|
||||
paymentMethodDisplayed("PayPal", user.paypal)
|
||||
|
@ -86,8 +82,9 @@ class ExistingPaymentMethodTests : BaseTest() {
|
|||
fun switchPaymentMethod() {
|
||||
val user = users.getUser { it.paypal.isNotEmpty() && it.cards.isNotEmpty() && !it.isPaid }
|
||||
|
||||
upgradeUserToPlan(user)
|
||||
.selectPaymentMethod(user.cards[0].details)
|
||||
CoreexampleRobot()
|
||||
.plansUpgrade()
|
||||
.upgradeToPlan<ExistingPaymentMethodsRobot>(Plan.Dev)
|
||||
.verify {
|
||||
paymentMethod(user.paypal).checkIsNotChecked()
|
||||
paymentMethod(user.cards[0].details).checkIsChecked()
|
||||
|
|
|
@ -23,7 +23,6 @@ import me.proton.core.test.android.plugins.data.BillingCycle
|
|||
import me.proton.core.test.android.plugins.data.Currency
|
||||
import me.proton.core.test.android.plugins.data.Plan
|
||||
import me.proton.core.test.android.plugins.data.User
|
||||
import me.proton.core.test.android.robots.auth.AddAccountRobot
|
||||
import me.proton.core.test.android.robots.payments.AddCreditCardRobot
|
||||
import me.proton.core.test.android.robots.plans.SelectPlanRobot
|
||||
import me.proton.core.test.android.uitests.CoreexampleRobot
|
||||
|
@ -39,10 +38,11 @@ class NewCreditCardTests : BaseTest() {
|
|||
}
|
||||
|
||||
@Before
|
||||
fun login() {
|
||||
AddAccountRobot()
|
||||
.signIn()
|
||||
.loginUser<CoreexampleRobot>(userWithoutCard)
|
||||
fun goToPlanUpgrade() {
|
||||
|
||||
login(userWithoutCard)
|
||||
|
||||
CoreexampleRobot()
|
||||
.plansUpgrade()
|
||||
.changeCurrency(Currency.CHF)
|
||||
.upgradeToPlan<AddCreditCardRobot>(Plan.Dev)
|
||||
|
|
|
@ -37,9 +37,8 @@ class CurrentPlanTests : BaseTest() {
|
|||
}
|
||||
|
||||
private fun navigateUserToCurrentPlans(user: User): SelectPlanRobot {
|
||||
LoginRobot()
|
||||
.loginUser<CoreexampleRobot>(user)
|
||||
.verify { primaryUserIs(user) }
|
||||
|
||||
login(user)
|
||||
|
||||
return CoreexampleRobot()
|
||||
.plansCurrent()
|
||||
|
|
|
@ -18,45 +18,30 @@
|
|||
|
||||
package me.proton.core.test.android.uitests.tests.medium.plans
|
||||
|
||||
import me.proton.core.test.android.uitests.tests.SmokeTest
|
||||
import me.proton.core.test.android.plugins.data.BillingCycle
|
||||
import me.proton.core.test.android.plugins.data.Currency
|
||||
import me.proton.core.test.android.plugins.data.Plan
|
||||
import me.proton.core.test.android.plugins.data.User
|
||||
import me.proton.core.test.android.robots.auth.AddAccountRobot
|
||||
import me.proton.core.test.android.robots.auth.login.LoginRobot
|
||||
import me.proton.core.test.android.robots.plans.SelectPlanRobot
|
||||
import me.proton.core.test.android.uitests.CoreexampleRobot
|
||||
import me.proton.core.test.android.uitests.tests.BaseTest
|
||||
import org.junit.Before
|
||||
import me.proton.core.test.android.uitests.tests.SmokeTest
|
||||
import org.junit.Test
|
||||
|
||||
class UpgradePlanTests : BaseTest() {
|
||||
|
||||
private val selectPlanRobot = SelectPlanRobot()
|
||||
private val coreExampleRobot = CoreexampleRobot()
|
||||
private val freeUser = users.getUser { !it.isPaid }
|
||||
private val paidUser = users.getUser { it.isPaid }
|
||||
|
||||
@Before
|
||||
fun login() {
|
||||
AddAccountRobot()
|
||||
.signIn()
|
||||
}
|
||||
|
||||
private fun navigateUserToCurrentPlans(user: User): SelectPlanRobot {
|
||||
LoginRobot()
|
||||
.loginUser<CoreexampleRobot>(user)
|
||||
.verify { primaryUserIs(user) }
|
||||
|
||||
CoreexampleRobot()
|
||||
.plansUpgrade()
|
||||
return SelectPlanRobot()
|
||||
}
|
||||
|
||||
@Test
|
||||
@SmokeTest
|
||||
fun userWithFreePlan() {
|
||||
navigateUserToCurrentPlans(freeUser)
|
||||
|
||||
login(freeUser)
|
||||
|
||||
coreExampleRobot
|
||||
.plansUpgrade()
|
||||
.scrollToPlan(Plan.Dev)
|
||||
.verify {
|
||||
canUpgradeToPlan(Plan.Dev)
|
||||
|
@ -70,13 +55,22 @@ class UpgradePlanTests : BaseTest() {
|
|||
|
||||
@Test
|
||||
fun userWithPaidPlan() {
|
||||
navigateUserToCurrentPlans(paidUser)
|
||||
|
||||
login(paidUser)
|
||||
|
||||
coreExampleRobot
|
||||
.plansUpgrade()
|
||||
.verify { planDetailsDisplayed(paidUser.plan) }
|
||||
}
|
||||
|
||||
@Test
|
||||
fun changeBillingCycleAndCurrency() {
|
||||
navigateUserToCurrentPlans(freeUser)
|
||||
|
||||
login(freeUser)
|
||||
|
||||
coreExampleRobot
|
||||
.plansUpgrade()
|
||||
.scrollToPlan(Plan.Dev)
|
||||
|
||||
BillingCycle.values().forEach { cycle ->
|
||||
selectPlanRobot.changeBillingCycle(cycle)
|
||||
|
|
|
@ -21,13 +21,12 @@ package me.proton.core.test.android.uitests.tests.medium.usersettings
|
|||
import me.proton.core.account.domain.entity.AccountState
|
||||
import me.proton.core.account.domain.entity.SessionState
|
||||
import me.proton.core.auth.R
|
||||
import me.proton.core.test.android.uitests.tests.SmokeTest
|
||||
import me.proton.core.test.android.instrumented.utils.StringUtils.randomString
|
||||
import me.proton.core.test.android.plugins.data.User
|
||||
import me.proton.core.test.android.robots.auth.AddAccountRobot
|
||||
import me.proton.core.test.android.robots.settings.PasswordManagementRobot
|
||||
import me.proton.core.test.android.uitests.CoreexampleRobot
|
||||
import me.proton.core.test.android.uitests.tests.BaseTest
|
||||
import me.proton.core.test.android.uitests.tests.SmokeTest
|
||||
import org.junit.Test
|
||||
|
||||
class PasswordManagementTests : BaseTest() {
|
||||
|
@ -41,9 +40,9 @@ class PasswordManagementTests : BaseTest() {
|
|||
|
||||
private fun navigateToPasswordManagement(user: User) {
|
||||
quark.jailUnban()
|
||||
AddAccountRobot()
|
||||
.signIn()
|
||||
.loginUser<CoreexampleRobot>(user)
|
||||
login(user)
|
||||
|
||||
CoreexampleRobot()
|
||||
.settingsPasswordManagement()
|
||||
.verify { passwordManagementElementsDisplayed() }
|
||||
}
|
||||
|
|
|
@ -20,13 +20,12 @@ package me.proton.core.test.android.uitests.tests.medium.usersettings
|
|||
|
||||
import me.proton.core.account.domain.entity.AccountState
|
||||
import me.proton.core.account.domain.entity.SessionState
|
||||
import me.proton.core.test.android.uitests.tests.SmokeTest
|
||||
import me.proton.core.test.android.plugins.data.User
|
||||
import me.proton.core.test.android.robots.auth.AddAccountRobot
|
||||
import me.proton.core.test.android.robots.settings.RecoveryEmailRobot
|
||||
import me.proton.core.test.android.robots.settings.RecoveryEmailRobot.AuthenticationRobot
|
||||
import me.proton.core.test.android.uitests.CoreexampleRobot
|
||||
import me.proton.core.test.android.uitests.tests.BaseTest
|
||||
import me.proton.core.test.android.uitests.tests.SmokeTest
|
||||
import me.proton.core.usersettings.R
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
@ -41,9 +40,10 @@ class RecoveryEmailTests : BaseTest() {
|
|||
|
||||
@Before
|
||||
fun navigateToPasswordManagement() {
|
||||
AddAccountRobot()
|
||||
.signIn()
|
||||
.loginUser<CoreexampleRobot>(user)
|
||||
|
||||
login(user)
|
||||
|
||||
CoreexampleRobot()
|
||||
.settingsRecoveryEmail()
|
||||
.verify {
|
||||
recoveryEmailElementsDisplayed()
|
||||
|
|
Loading…
Reference in New Issue