mirror of
https://github.com/ProtonMail/android-mail.git
synced 2026-06-14 09:54:47 +00:00
Introduce multiple accounts support in UI tests
ALlow using different accounts in test suites depending on account type, scope, status. MAILANDR-640
This commit is contained in:
@@ -20,18 +20,15 @@ package ch.protonmail.android.uitest
|
||||
|
||||
import androidx.compose.ui.test.junit4.ComposeTestRule
|
||||
import ch.protonmail.android.uitest.helpers.core.TestIdWatcher
|
||||
import ch.protonmail.android.uitest.helpers.login.LoginStrategy
|
||||
import ch.protonmail.android.uitest.helpers.login.LoginTestUserTypes
|
||||
import ch.protonmail.android.uitest.helpers.login.LoginType
|
||||
import ch.protonmail.android.uitest.helpers.network.authenticationDispatcher
|
||||
import ch.protonmail.android.uitest.rule.MainInitializerRule
|
||||
import ch.protonmail.android.uitest.rule.MockTimeRule
|
||||
import ch.protonmail.android.uitest.util.ComposeTestRuleHolder
|
||||
import dagger.hilt.android.testing.HiltAndroidRule
|
||||
import dagger.hilt.android.testing.HiltAndroidTest
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import me.proton.core.accountmanager.domain.AccountManager
|
||||
import me.proton.core.user.domain.UserManager
|
||||
import okhttp3.mockwebserver.MockWebServer
|
||||
import org.junit.After
|
||||
import org.junit.Before
|
||||
import org.junit.Rule
|
||||
import org.junit.rules.RuleChain
|
||||
@@ -40,23 +37,17 @@ import javax.inject.Inject
|
||||
/**
|
||||
* A base test class used in UI tests that require complete network isolation.
|
||||
*
|
||||
* @param loginStrategy the login strategy to follow for a given test suite.
|
||||
* @param loginType the login type to use for a given test suite.
|
||||
*/
|
||||
@HiltAndroidTest
|
||||
internal open class MockedNetworkTest(
|
||||
private val loginStrategy: LoginStrategy = LoginStrategy.LoggedIn.PrimaryUser
|
||||
private val loginType: LoginType = LoginTestUserTypes.Deprecated.GrumpyCat
|
||||
) {
|
||||
|
||||
private val hiltAndroidRule = HiltAndroidRule(this)
|
||||
|
||||
private val composeTestRule: ComposeTestRule = ComposeTestRuleHolder.createAndGetComposeRule()
|
||||
|
||||
@Inject
|
||||
lateinit var accountManager: AccountManager
|
||||
|
||||
@Inject
|
||||
lateinit var userManager: UserManager
|
||||
|
||||
@Inject
|
||||
lateinit var mockWebServer: MockWebServer
|
||||
|
||||
@@ -76,37 +67,6 @@ internal open class MockedNetworkTest(
|
||||
@Before
|
||||
fun setup() {
|
||||
hiltAndroidRule.inject()
|
||||
|
||||
handleLogin()
|
||||
}
|
||||
|
||||
@After
|
||||
fun tearDown() {
|
||||
handleLogout()
|
||||
}
|
||||
|
||||
private fun handleLogin() {
|
||||
when (loginStrategy) {
|
||||
is LoginStrategy.LoggedIn.PrimaryUser -> {
|
||||
runBlocking(Dispatchers.IO) {
|
||||
accountManager.addAccount(loginStrategy.account, loginStrategy.session)
|
||||
userManager.addUser(loginStrategy.user, emptyList())
|
||||
}
|
||||
}
|
||||
|
||||
else -> Unit
|
||||
}
|
||||
}
|
||||
|
||||
private fun handleLogout() {
|
||||
when (loginStrategy) {
|
||||
is LoginStrategy.LoggedIn.PrimaryUser -> {
|
||||
runBlocking(Dispatchers.IO) {
|
||||
accountManager.removeAccount(loginStrategy.account.userId)
|
||||
}
|
||||
}
|
||||
|
||||
else -> Unit
|
||||
}
|
||||
mockWebServer.dispatcher = authenticationDispatcher(loginType)
|
||||
}
|
||||
}
|
||||
|
||||
+9
-9
@@ -19,6 +19,7 @@
|
||||
package ch.protonmail.android.uitest.e2e.composer
|
||||
|
||||
import ch.protonmail.android.di.ServerProofModule
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.combineWith
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.MockPriority
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.ignoreQueryParams
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.respondWith
|
||||
@@ -30,7 +31,6 @@ import ch.protonmail.android.uitest.MockedNetworkTest
|
||||
import ch.protonmail.android.uitest.helpers.core.TestId
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.Destination
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.navigator
|
||||
import ch.protonmail.android.uitest.helpers.login.LoginStrategy
|
||||
import ch.protonmail.android.uitest.helpers.network.mockNetworkDispatcher
|
||||
import ch.protonmail.android.uitest.models.snackbar.SnackbarTextEntry
|
||||
import ch.protonmail.android.uitest.robot.common.section.keyboardSection
|
||||
@@ -61,7 +61,7 @@ import org.junit.Test
|
||||
@SmokeExtendedTest
|
||||
@HiltAndroidTest
|
||||
@UninstallModules(ServerProofModule::class)
|
||||
internal class ComposerMainTests : MockedNetworkTest(loginStrategy = LoginStrategy.LoggedOut), ComposerTests {
|
||||
internal class ComposerMainTests : MockedNetworkTest(), ComposerTests {
|
||||
|
||||
@JvmField
|
||||
@BindValue
|
||||
@@ -71,7 +71,7 @@ internal class ComposerMainTests : MockedNetworkTest(loginStrategy = LoginStrate
|
||||
@Test
|
||||
@TestId("79034")
|
||||
fun checkNavigationToComposerIsDisabledWhenFeatureToggleIsEnabled() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher {
|
||||
addMockRequests(
|
||||
"/mail/v4/messages"
|
||||
respondWith "/mail/v4/messages/messages_empty.json"
|
||||
@@ -99,7 +99,7 @@ internal class ComposerMainTests : MockedNetworkTest(loginStrategy = LoginStrate
|
||||
@Test
|
||||
@TestId("79035")
|
||||
fun checkNavigationToComposerIsEnabledWhenFeatureToggleIsDisabled() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher {
|
||||
addMockRequests(
|
||||
"/mail/v4/messages"
|
||||
respondWith "/mail/v4/messages/messages_empty.json"
|
||||
@@ -128,7 +128,7 @@ internal class ComposerMainTests : MockedNetworkTest(loginStrategy = LoginStrate
|
||||
@Test
|
||||
@TestId("79036")
|
||||
fun checkComposerMainFieldsAndInteractions() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher {
|
||||
addMockRequests(
|
||||
"/mail/v4/messages"
|
||||
respondWith "/mail/v4/messages/messages_empty.json"
|
||||
@@ -188,7 +188,7 @@ internal class ComposerMainTests : MockedNetworkTest(loginStrategy = LoginStrate
|
||||
@Test
|
||||
@TestId("79037")
|
||||
fun checkComposerCloseNavigation() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher {
|
||||
addMockRequests(
|
||||
"/mail/v4/messages"
|
||||
respondWith "/mail/v4/messages/messages_empty.json"
|
||||
@@ -219,7 +219,7 @@ internal class ComposerMainTests : MockedNetworkTest(loginStrategy = LoginStrate
|
||||
@Test
|
||||
@TestId("79038")
|
||||
fun checkComposerBackButtonNavigation() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher {
|
||||
addMockRequests(
|
||||
"/mail/v4/messages"
|
||||
respondWith "/mail/v4/messages/messages_empty.json"
|
||||
@@ -252,7 +252,7 @@ internal class ComposerMainTests : MockedNetworkTest(loginStrategy = LoginStrate
|
||||
@Test
|
||||
@TestId("79039")
|
||||
fun checkComposerKeyboardDismissalWithBackButton() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher {
|
||||
addMockRequests(
|
||||
"/mail/v4/messages"
|
||||
respondWith "/mail/v4/messages/messages_empty.json"
|
||||
@@ -283,7 +283,7 @@ internal class ComposerMainTests : MockedNetworkTest(loginStrategy = LoginStrate
|
||||
@Test
|
||||
@TestId("190226 - 190227")
|
||||
fun testCollapseExpandChevron() {
|
||||
mockWebServer.dispatcher = composerMockNetworkDispatcher()
|
||||
mockWebServer.dispatcher combineWith composerMockNetworkDispatcher()
|
||||
|
||||
navigator {
|
||||
navigateTo(Destination.Composer)
|
||||
|
||||
+3
-5
@@ -19,13 +19,13 @@
|
||||
package ch.protonmail.android.uitest.e2e.composer.chips
|
||||
|
||||
import ch.protonmail.android.di.ServerProofModule
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.combineWith
|
||||
import ch.protonmail.android.test.annotations.suite.RegressionTest
|
||||
import ch.protonmail.android.test.annotations.suite.SmokeTest
|
||||
import ch.protonmail.android.uitest.MockedNetworkTest
|
||||
import ch.protonmail.android.uitest.helpers.core.TestId
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.Destination
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.navigator
|
||||
import ch.protonmail.android.uitest.helpers.login.LoginStrategy
|
||||
import ch.protonmail.android.uitest.robot.composer.composerRobot
|
||||
import ch.protonmail.android.uitest.robot.composer.model.chips.ChipsCreationTrigger
|
||||
import ch.protonmail.android.uitest.robot.composer.model.chips.RecipientChipEntry
|
||||
@@ -44,9 +44,7 @@ import org.junit.Test
|
||||
@RegressionTest
|
||||
@HiltAndroidTest
|
||||
@UninstallModules(ServerProofModule::class)
|
||||
internal class ComposerRecipientsChipsDeletionTests :
|
||||
MockedNetworkTest(loginStrategy = LoginStrategy.LoggedOut),
|
||||
ComposerChipsTests {
|
||||
internal class ComposerRecipientsChipsDeletionTests : MockedNetworkTest(), ComposerChipsTests {
|
||||
|
||||
@JvmField
|
||||
@BindValue
|
||||
@@ -54,7 +52,7 @@ internal class ComposerRecipientsChipsDeletionTests :
|
||||
|
||||
@Before
|
||||
fun navigateToComposer() {
|
||||
mockWebServer.dispatcher = composerMockNetworkDispatcher()
|
||||
mockWebServer.dispatcher combineWith composerMockNetworkDispatcher()
|
||||
navigator { navigateTo(Destination.Composer) }
|
||||
}
|
||||
|
||||
|
||||
+3
-5
@@ -19,13 +19,13 @@
|
||||
package ch.protonmail.android.uitest.e2e.composer.chips
|
||||
|
||||
import ch.protonmail.android.di.ServerProofModule
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.combineWith
|
||||
import ch.protonmail.android.test.annotations.suite.RegressionTest
|
||||
import ch.protonmail.android.test.annotations.suite.SmokeTest
|
||||
import ch.protonmail.android.uitest.MockedNetworkTest
|
||||
import ch.protonmail.android.uitest.helpers.core.TestId
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.Destination
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.navigator
|
||||
import ch.protonmail.android.uitest.helpers.login.LoginStrategy
|
||||
import ch.protonmail.android.uitest.robot.composer.composerRobot
|
||||
import ch.protonmail.android.uitest.robot.composer.model.chips.RecipientChipEntry
|
||||
import ch.protonmail.android.uitest.robot.composer.model.chips.RecipientChipValidationState
|
||||
@@ -45,9 +45,7 @@ import org.junit.Test
|
||||
@RegressionTest
|
||||
@HiltAndroidTest
|
||||
@UninstallModules(ServerProofModule::class)
|
||||
internal class ComposerRecipientsCollapsedChipsTests :
|
||||
MockedNetworkTest(loginStrategy = LoginStrategy.LoggedOut),
|
||||
ComposerChipsTests {
|
||||
internal class ComposerRecipientsCollapsedChipsTests : MockedNetworkTest(), ComposerChipsTests {
|
||||
|
||||
@JvmField
|
||||
@BindValue
|
||||
@@ -83,7 +81,7 @@ internal class ComposerRecipientsCollapsedChipsTests :
|
||||
|
||||
@Before
|
||||
fun navigateToComposer() {
|
||||
mockWebServer.dispatcher = composerMockNetworkDispatcher()
|
||||
mockWebServer.dispatcher combineWith composerMockNetworkDispatcher()
|
||||
navigator { navigateTo(Destination.Composer) }
|
||||
}
|
||||
|
||||
|
||||
+3
-5
@@ -19,12 +19,12 @@
|
||||
package ch.protonmail.android.uitest.e2e.composer.chips
|
||||
|
||||
import ch.protonmail.android.di.ServerProofModule
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.combineWith
|
||||
import ch.protonmail.android.test.annotations.suite.RegressionTest
|
||||
import ch.protonmail.android.uitest.MockedNetworkTest
|
||||
import ch.protonmail.android.uitest.helpers.core.TestId
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.Destination
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.navigator
|
||||
import ch.protonmail.android.uitest.helpers.login.LoginStrategy
|
||||
import ch.protonmail.android.uitest.models.snackbar.SnackbarTextEntry
|
||||
import ch.protonmail.android.uitest.robot.common.section.snackbarSection
|
||||
import ch.protonmail.android.uitest.robot.common.section.verify
|
||||
@@ -47,9 +47,7 @@ import org.junit.Test
|
||||
@RegressionTest
|
||||
@HiltAndroidTest
|
||||
@UninstallModules(ServerProofModule::class)
|
||||
internal class ComposerRecipientsDuplicatedChipsTests :
|
||||
MockedNetworkTest(loginStrategy = LoginStrategy.LoggedOut),
|
||||
ComposerChipsTests {
|
||||
internal class ComposerRecipientsDuplicatedChipsTests : MockedNetworkTest(), ComposerChipsTests {
|
||||
|
||||
@JvmField
|
||||
@BindValue
|
||||
@@ -63,7 +61,7 @@ internal class ComposerRecipientsDuplicatedChipsTests :
|
||||
|
||||
@Before
|
||||
fun navigateToComposer() {
|
||||
mockWebServer.dispatcher = composerMockNetworkDispatcher()
|
||||
mockWebServer.dispatcher combineWith composerMockNetworkDispatcher()
|
||||
navigator { navigateTo(Destination.Composer) }
|
||||
}
|
||||
|
||||
|
||||
+3
-5
@@ -19,13 +19,13 @@
|
||||
package ch.protonmail.android.uitest.e2e.composer.chips
|
||||
|
||||
import ch.protonmail.android.di.ServerProofModule
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.combineWith
|
||||
import ch.protonmail.android.test.annotations.suite.SmokeExtendedTest
|
||||
import ch.protonmail.android.test.annotations.suite.SmokeTest
|
||||
import ch.protonmail.android.uitest.MockedNetworkTest
|
||||
import ch.protonmail.android.uitest.helpers.core.TestId
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.Destination
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.navigator
|
||||
import ch.protonmail.android.uitest.helpers.login.LoginStrategy
|
||||
import ch.protonmail.android.uitest.models.snackbar.SnackbarTextEntry
|
||||
import ch.protonmail.android.uitest.robot.common.section.snackbarSection
|
||||
import ch.protonmail.android.uitest.robot.common.section.verify
|
||||
@@ -49,9 +49,7 @@ import org.junit.Test
|
||||
@SmokeExtendedTest
|
||||
@HiltAndroidTest
|
||||
@UninstallModules(ServerProofModule::class)
|
||||
internal class ComposerRecipientsInvalidChipsTests :
|
||||
MockedNetworkTest(loginStrategy = LoginStrategy.LoggedOut),
|
||||
ComposerChipsTests {
|
||||
internal class ComposerRecipientsInvalidChipsTests : MockedNetworkTest(), ComposerChipsTests {
|
||||
|
||||
@JvmField
|
||||
@BindValue
|
||||
@@ -65,7 +63,7 @@ internal class ComposerRecipientsInvalidChipsTests :
|
||||
|
||||
@Before
|
||||
fun navigateToComposer() {
|
||||
mockWebServer.dispatcher = composerMockNetworkDispatcher()
|
||||
mockWebServer.dispatcher combineWith composerMockNetworkDispatcher()
|
||||
navigator { navigateTo(Destination.Composer) }
|
||||
}
|
||||
|
||||
|
||||
+3
-5
@@ -19,13 +19,13 @@
|
||||
package ch.protonmail.android.uitest.e2e.composer.chips
|
||||
|
||||
import ch.protonmail.android.di.ServerProofModule
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.combineWith
|
||||
import ch.protonmail.android.test.annotations.suite.SmokeExtendedTest
|
||||
import ch.protonmail.android.test.annotations.suite.SmokeTest
|
||||
import ch.protonmail.android.uitest.MockedNetworkTest
|
||||
import ch.protonmail.android.uitest.helpers.core.TestId
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.Destination
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.navigator
|
||||
import ch.protonmail.android.uitest.helpers.login.LoginStrategy
|
||||
import ch.protonmail.android.uitest.robot.composer.composerRobot
|
||||
import ch.protonmail.android.uitest.robot.composer.model.chips.ChipsCreationTrigger
|
||||
import ch.protonmail.android.uitest.robot.composer.model.chips.RecipientChipEntry
|
||||
@@ -46,9 +46,7 @@ import org.junit.Test
|
||||
@SmokeExtendedTest
|
||||
@HiltAndroidTest
|
||||
@UninstallModules(ServerProofModule::class)
|
||||
internal class ComposerRecipientsValidChipsTests :
|
||||
MockedNetworkTest(loginStrategy = LoginStrategy.LoggedOut),
|
||||
ComposerChipsTests {
|
||||
internal class ComposerRecipientsValidChipsTests : MockedNetworkTest(), ComposerChipsTests {
|
||||
|
||||
@JvmField
|
||||
@BindValue
|
||||
@@ -62,7 +60,7 @@ internal class ComposerRecipientsValidChipsTests :
|
||||
|
||||
@Before
|
||||
fun navigateToComposer() {
|
||||
mockWebServer.dispatcher = composerMockNetworkDispatcher()
|
||||
mockWebServer.dispatcher combineWith composerMockNetworkDispatcher()
|
||||
navigator { navigateTo(Destination.Composer) }
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -19,6 +19,7 @@
|
||||
package ch.protonmail.android.uitest.e2e.composer.drafts
|
||||
|
||||
import ch.protonmail.android.di.ServerProofModule
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.combineWith
|
||||
import ch.protonmail.android.test.annotations.suite.SmokeTest
|
||||
import ch.protonmail.android.test.annotations.suite.TemporaryTest
|
||||
import ch.protonmail.android.uitest.MockedNetworkTest
|
||||
@@ -26,7 +27,6 @@ import ch.protonmail.android.uitest.e2e.composer.ComposerTests
|
||||
import ch.protonmail.android.uitest.helpers.core.TestId
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.Destination
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.navigator
|
||||
import ch.protonmail.android.uitest.helpers.login.LoginStrategy
|
||||
import ch.protonmail.android.uitest.models.avatar.AvatarInitial
|
||||
import ch.protonmail.android.uitest.models.mailbox.MailboxListItemEntry
|
||||
import ch.protonmail.android.uitest.models.mailbox.MailboxType
|
||||
@@ -55,7 +55,7 @@ import org.junit.Test
|
||||
@SmokeTest
|
||||
@HiltAndroidTest
|
||||
@UninstallModules(ServerProofModule::class)
|
||||
internal class ComposerDraftsMainTests : MockedNetworkTest(loginStrategy = LoginStrategy.LoggedOut), ComposerTests {
|
||||
internal class ComposerDraftsMainTests : MockedNetworkTest(), ComposerTests {
|
||||
|
||||
@JvmField
|
||||
@BindValue
|
||||
@@ -63,7 +63,7 @@ internal class ComposerDraftsMainTests : MockedNetworkTest(loginStrategy = Login
|
||||
|
||||
@Before
|
||||
fun navigateToComposer() {
|
||||
mockWebServer.dispatcher = composerMockNetworkDispatcher()
|
||||
mockWebServer.dispatcher combineWith composerMockNetworkDispatcher()
|
||||
navigator { navigateTo(Destination.Composer) }
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -20,6 +20,7 @@ package ch.protonmail.android.uitest.e2e.mailbox
|
||||
|
||||
import ch.protonmail.android.di.ServerProofModule
|
||||
import ch.protonmail.android.mailsettings.domain.model.Theme
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.combineWith
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.ignoreQueryParams
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.matchWildcards
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.respondWith
|
||||
@@ -31,7 +32,6 @@ import ch.protonmail.android.uitest.helpers.core.AppThemeHelper
|
||||
import ch.protonmail.android.uitest.helpers.core.TestId
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.Destination
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.navigator
|
||||
import ch.protonmail.android.uitest.helpers.login.LoginStrategy
|
||||
import ch.protonmail.android.uitest.helpers.network.mockNetworkDispatcher
|
||||
import ch.protonmail.android.uitest.robot.detail.messageDetailRobot
|
||||
import ch.protonmail.android.uitest.robot.detail.section.messageBodySection
|
||||
@@ -53,7 +53,7 @@ import javax.inject.Inject
|
||||
@SmokeExtendedTest
|
||||
@HiltAndroidTest
|
||||
@UninstallModules(ServerProofModule::class)
|
||||
internal class ConversationMarkAsReadTests : MockedNetworkTest(loginStrategy = LoginStrategy.LoggedOut) {
|
||||
internal class ConversationMarkAsReadTests : MockedNetworkTest() {
|
||||
|
||||
@JvmField
|
||||
@BindValue
|
||||
@@ -70,7 +70,7 @@ internal class ConversationMarkAsReadTests : MockedNetworkTest(loginStrategy = L
|
||||
@Test
|
||||
@TestId("78994")
|
||||
fun checkConversationMarkedAsReadWhenLastUnreadMessageIsOpened() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_78994.json"
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
|
||||
package ch.protonmail.android.uitest.e2e.mailbox
|
||||
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.combineWith
|
||||
import ch.protonmail.android.test.annotations.suite.SmokeTest
|
||||
import ch.protonmail.android.uitest.MockedNetworkTest
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.Destination
|
||||
@@ -40,7 +41,7 @@ internal class MailboxFlowTest : MockedNetworkTest() {
|
||||
|
||||
@Before
|
||||
fun setupDispatcher() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher()
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher()
|
||||
navigator { navigateTo(Destination.Inbox, performLoginViaUI = false) }
|
||||
}
|
||||
|
||||
|
||||
+10
-4
@@ -19,6 +19,7 @@
|
||||
package ch.protonmail.android.uitest.e2e.mailbox
|
||||
|
||||
import ch.protonmail.android.di.ServerProofModule
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.combineWith
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.ignoreQueryParams
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.respondWith
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.withStatusCode
|
||||
@@ -27,7 +28,6 @@ import ch.protonmail.android.uitest.MockedNetworkTest
|
||||
import ch.protonmail.android.uitest.helpers.core.TestId
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.Destination
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.navigator
|
||||
import ch.protonmail.android.uitest.helpers.login.LoginStrategy
|
||||
import ch.protonmail.android.uitest.helpers.network.mockNetworkDispatcher
|
||||
import ch.protonmail.android.uitest.models.avatar.AvatarInitial
|
||||
import ch.protonmail.android.uitest.models.mailbox.MailboxListItemEntry
|
||||
@@ -44,7 +44,7 @@ import org.junit.Test
|
||||
@RegressionTest
|
||||
@HiltAndroidTest
|
||||
@UninstallModules(ServerProofModule::class)
|
||||
internal class MailboxParticipantsTest : MockedNetworkTest(loginStrategy = LoginStrategy.LoggedOut) {
|
||||
internal class MailboxParticipantsTest : MockedNetworkTest() {
|
||||
|
||||
@JvmField
|
||||
@BindValue
|
||||
@@ -77,7 +77,10 @@ internal class MailboxParticipantsTest : MockedNetworkTest(loginStrategy = Login
|
||||
@Test
|
||||
@TestId("77426")
|
||||
fun checkAvatarInitialsWithMissingParticipantDetailsInMessageMode() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false, useDefaultContacts = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(
|
||||
useDefaultMailSettings = false,
|
||||
useDefaultContacts = false
|
||||
) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_77426.json"
|
||||
@@ -108,7 +111,10 @@ internal class MailboxParticipantsTest : MockedNetworkTest(loginStrategy = Login
|
||||
@Test
|
||||
@TestId("77427")
|
||||
fun checkAvatarInitialsWithMissingParticipantDetailsInConversationMode() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false, useDefaultContacts = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(
|
||||
useDefaultMailSettings = false,
|
||||
useDefaultContacts = false
|
||||
) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_77427.json"
|
||||
|
||||
+3
-3
@@ -19,6 +19,7 @@
|
||||
package ch.protonmail.android.uitest.e2e.mailbox
|
||||
|
||||
import ch.protonmail.android.di.ServerProofModule
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.combineWith
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.respondWith
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.serveOnce
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.withNetworkDelay
|
||||
@@ -28,7 +29,6 @@ import ch.protonmail.android.uitest.MockedNetworkTest
|
||||
import ch.protonmail.android.uitest.helpers.core.TestId
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.Destination
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.navigator
|
||||
import ch.protonmail.android.uitest.helpers.login.LoginStrategy
|
||||
import ch.protonmail.android.uitest.helpers.network.mockNetworkDispatcher
|
||||
import ch.protonmail.android.uitest.models.avatar.AvatarInitial
|
||||
import ch.protonmail.android.uitest.models.mailbox.MailboxListItemEntry
|
||||
@@ -46,7 +46,7 @@ import org.junit.Test
|
||||
@SmokeTest
|
||||
@HiltAndroidTest
|
||||
@UninstallModules(ServerProofModule::class)
|
||||
internal class MailboxSwitchTests : MockedNetworkTest(loginStrategy = LoginStrategy.LoggedOut) {
|
||||
internal class MailboxSwitchTests : MockedNetworkTest() {
|
||||
|
||||
@JvmField
|
||||
@BindValue
|
||||
@@ -63,7 +63,7 @@ internal class MailboxSwitchTests : MockedNetworkTest(loginStrategy = LoginStrat
|
||||
@Test
|
||||
@TestId("183527")
|
||||
fun checkMailboxSwitchConversationToMessageMode() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_183527.json"
|
||||
|
||||
+7
-7
@@ -19,6 +19,7 @@
|
||||
package ch.protonmail.android.uitest.e2e.mailbox
|
||||
|
||||
import ch.protonmail.android.di.ServerProofModule
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.combineWith
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.ignoreQueryParams
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.matchWildcards
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.respondWith
|
||||
@@ -29,7 +30,6 @@ import ch.protonmail.android.uitest.MockedNetworkTest
|
||||
import ch.protonmail.android.uitest.helpers.core.TestId
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.Destination
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.navigator
|
||||
import ch.protonmail.android.uitest.helpers.login.LoginStrategy
|
||||
import ch.protonmail.android.uitest.helpers.network.mockNetworkDispatcher
|
||||
import ch.protonmail.android.uitest.robot.detail.messageDetailRobot
|
||||
import ch.protonmail.android.uitest.robot.detail.section.messageBodySection
|
||||
@@ -47,7 +47,7 @@ import org.junit.Test
|
||||
@SmokeTest
|
||||
@HiltAndroidTest
|
||||
@UninstallModules(ServerProofModule::class)
|
||||
internal class MessageLoadingTests : MockedNetworkTest(loginStrategy = LoginStrategy.LoggedOut) {
|
||||
internal class MessageLoadingTests : MockedNetworkTest() {
|
||||
|
||||
@JvmField
|
||||
@BindValue
|
||||
@@ -56,7 +56,7 @@ internal class MessageLoadingTests : MockedNetworkTest(loginStrategy = LoginStra
|
||||
@Test
|
||||
@TestId("66392")
|
||||
fun checkMessageLoadedInMessageMode() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_66392.json"
|
||||
@@ -106,7 +106,7 @@ internal class MessageLoadingTests : MockedNetworkTest(loginStrategy = LoginStra
|
||||
@Test
|
||||
@TestId("66393")
|
||||
fun checkMessageLoadedInConversationMode() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_66393.json"
|
||||
@@ -159,7 +159,7 @@ internal class MessageLoadingTests : MockedNetworkTest(loginStrategy = LoginStra
|
||||
@Test
|
||||
@TestId("66394")
|
||||
fun checkLongMessageLoadedInMessageMode() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_66394.json"
|
||||
@@ -209,7 +209,7 @@ internal class MessageLoadingTests : MockedNetworkTest(loginStrategy = LoginStra
|
||||
@Test
|
||||
@TestId("66395")
|
||||
fun checkLongMessageLoadedInConversationMode() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_66395.json"
|
||||
@@ -262,7 +262,7 @@ internal class MessageLoadingTests : MockedNetworkTest(loginStrategy = LoginStra
|
||||
@Test
|
||||
@TestId("78993")
|
||||
fun checkMostRecentUnreadMessageIsOpenedInConversation() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_78993.json"
|
||||
|
||||
+10
-10
@@ -19,6 +19,7 @@
|
||||
package ch.protonmail.android.uitest.e2e.mailbox.allmail
|
||||
|
||||
import ch.protonmail.android.di.ServerProofModule
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.combineWith
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.MockPriority
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.ignoreQueryParams
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.respondWith
|
||||
@@ -29,7 +30,6 @@ import ch.protonmail.android.uitest.MockedNetworkTest
|
||||
import ch.protonmail.android.uitest.helpers.core.TestId
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.Destination
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.navigator
|
||||
import ch.protonmail.android.uitest.helpers.login.LoginStrategy
|
||||
import ch.protonmail.android.uitest.helpers.network.mockNetworkDispatcher
|
||||
import ch.protonmail.android.uitest.models.avatar.AvatarInitial
|
||||
import ch.protonmail.android.uitest.models.folders.MailFolderEntry
|
||||
@@ -48,7 +48,7 @@ import org.junit.Test
|
||||
@RegressionTest
|
||||
@HiltAndroidTest
|
||||
@UninstallModules(ServerProofModule::class)
|
||||
internal class AllMailMailboxFolderColorsTests : MockedNetworkTest(loginStrategy = LoginStrategy.LoggedOut) {
|
||||
internal class AllMailMailboxFolderColorsTests : MockedNetworkTest() {
|
||||
|
||||
private val menuRobot = MenuRobot()
|
||||
|
||||
@@ -75,7 +75,7 @@ internal class AllMailMailboxFolderColorsTests : MockedNetworkTest(loginStrategy
|
||||
@Test
|
||||
@TestId("80673")
|
||||
fun checkFolderColorInAllMailWithSettingEnabledAndParentInheritingDisabledInConversationMode() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(
|
||||
useDefaultMailSettings = false,
|
||||
useDefaultCustomFolders = false
|
||||
) {
|
||||
@@ -104,7 +104,7 @@ internal class AllMailMailboxFolderColorsTests : MockedNetworkTest(loginStrategy
|
||||
@Test
|
||||
@TestId("80674")
|
||||
fun checkFolderColorInAllMailWithSettingEnabledAndParentInheritingDisabledInMessageMode() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(
|
||||
useDefaultMailSettings = false,
|
||||
useDefaultCustomFolders = false
|
||||
) {
|
||||
@@ -133,7 +133,7 @@ internal class AllMailMailboxFolderColorsTests : MockedNetworkTest(loginStrategy
|
||||
@Test
|
||||
@TestId("80675")
|
||||
fun checkFolderColorInAllMailWithSettingEnabledAndParentInheritingEnabledInConversationMode() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(
|
||||
useDefaultMailSettings = false,
|
||||
useDefaultCustomFolders = false
|
||||
) {
|
||||
@@ -162,7 +162,7 @@ internal class AllMailMailboxFolderColorsTests : MockedNetworkTest(loginStrategy
|
||||
@Test
|
||||
@TestId("80676")
|
||||
fun checkFolderColorInAllMailWithSettingEnabledAndParentInheritingEnabledInMessageMode() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(
|
||||
useDefaultMailSettings = false,
|
||||
useDefaultCustomFolders = false
|
||||
) {
|
||||
@@ -191,7 +191,7 @@ internal class AllMailMailboxFolderColorsTests : MockedNetworkTest(loginStrategy
|
||||
@Test
|
||||
@TestId("80677")
|
||||
fun checkFolderColorInAllMailWithSettingDisabledAndParentInheritingEnabledInConversationMode() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(
|
||||
useDefaultMailSettings = false,
|
||||
useDefaultCustomFolders = false
|
||||
) {
|
||||
@@ -220,7 +220,7 @@ internal class AllMailMailboxFolderColorsTests : MockedNetworkTest(loginStrategy
|
||||
@Test
|
||||
@TestId("80678")
|
||||
fun checkFolderColorInAllMailWithSettingDisabledAndParentInheritingEnabledInMessageMode() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(
|
||||
useDefaultMailSettings = false,
|
||||
useDefaultCustomFolders = false
|
||||
) {
|
||||
@@ -249,7 +249,7 @@ internal class AllMailMailboxFolderColorsTests : MockedNetworkTest(loginStrategy
|
||||
@Test
|
||||
@TestId("80679")
|
||||
fun checkFolderColorInAllMailWithSettingDisabledAndParentInheritingDisabledInConversationMode() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(
|
||||
useDefaultMailSettings = false,
|
||||
useDefaultCustomFolders = false
|
||||
) {
|
||||
@@ -278,7 +278,7 @@ internal class AllMailMailboxFolderColorsTests : MockedNetworkTest(loginStrategy
|
||||
@Test
|
||||
@TestId("80680")
|
||||
fun checkFolderColorInAllMailWithSettingDisabledAndParentInheritingDisabledInMessageMode() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(
|
||||
useDefaultMailSettings = false,
|
||||
useDefaultCustomFolders = false
|
||||
) {
|
||||
|
||||
+3
-3
@@ -19,6 +19,7 @@
|
||||
package ch.protonmail.android.uitest.e2e.mailbox.detail.bodycontent
|
||||
|
||||
import ch.protonmail.android.di.ServerProofModule
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.combineWith
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.ignoreQueryParams
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.matchWildcards
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.respondWith
|
||||
@@ -29,7 +30,6 @@ import ch.protonmail.android.uitest.MockedNetworkTest
|
||||
import ch.protonmail.android.uitest.helpers.core.TestId
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.Destination
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.navigator
|
||||
import ch.protonmail.android.uitest.helpers.login.LoginStrategy
|
||||
import ch.protonmail.android.uitest.helpers.network.mockNetworkDispatcher
|
||||
import ch.protonmail.android.uitest.robot.detail.conversationDetailRobot
|
||||
import ch.protonmail.android.uitest.robot.detail.section.messageBodySection
|
||||
@@ -44,7 +44,7 @@ import org.junit.Test
|
||||
@SmokeTest
|
||||
@HiltAndroidTest
|
||||
@UninstallModules(ServerProofModule::class)
|
||||
internal class ConversationDetailHtmlSanitizationTests : MockedNetworkTest(loginStrategy = LoginStrategy.LoggedOut) {
|
||||
internal class ConversationDetailHtmlSanitizationTests : MockedNetworkTest() {
|
||||
|
||||
@JvmField
|
||||
@BindValue
|
||||
@@ -53,7 +53,7 @@ internal class ConversationDetailHtmlSanitizationTests : MockedNetworkTest(login
|
||||
@Test
|
||||
@TestId("189699")
|
||||
fun checkHtmlSanitizationInConversationMode() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_placeholder_conversation.json"
|
||||
|
||||
+7
-9
@@ -22,6 +22,7 @@ import arrow.core.Either
|
||||
import ch.protonmail.android.di.ServerProofModule
|
||||
import ch.protonmail.android.maildetail.domain.usecase.GetDecryptedMessageBody
|
||||
import ch.protonmail.android.mailmessage.domain.entity.MimeType
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.combineWith
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.ignoreQueryParams
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.matchWildcards
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.respondWith
|
||||
@@ -34,7 +35,6 @@ import ch.protonmail.android.uitest.e2e.mailbox.detail.DetailRemoteContentTest
|
||||
import ch.protonmail.android.uitest.helpers.core.TestId
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.Destination
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.navigator
|
||||
import ch.protonmail.android.uitest.helpers.login.LoginStrategy
|
||||
import ch.protonmail.android.uitest.helpers.network.mockNetworkDispatcher
|
||||
import ch.protonmail.android.uitest.robot.detail.conversationDetailRobot
|
||||
import ch.protonmail.android.uitest.robot.detail.section.conversation.messagesCollapsedSection
|
||||
@@ -52,9 +52,7 @@ import org.junit.Test
|
||||
@RegressionTest
|
||||
@HiltAndroidTest
|
||||
@UninstallModules(ServerProofModule::class)
|
||||
internal class ConversationDetailRemoteContentTests :
|
||||
MockedNetworkTest(loginStrategy = LoginStrategy.LoggedOut),
|
||||
DetailRemoteContentTest {
|
||||
internal class ConversationDetailRemoteContentTests : MockedNetworkTest(), DetailRemoteContentTest {
|
||||
|
||||
private val expectedBodyText = "Various img elements"
|
||||
private val expectedBodyTextSecondMessage = "Various img elements (2)"
|
||||
@@ -80,7 +78,7 @@ internal class ConversationDetailRemoteContentTests :
|
||||
@SmokeTest
|
||||
@TestId("184206")
|
||||
fun checkRemoteContentNotBlockedWhenConversationModeIsEnabled() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_184206.json"
|
||||
@@ -116,7 +114,7 @@ internal class ConversationDetailRemoteContentTests :
|
||||
@Test
|
||||
@TestId("184208")
|
||||
fun checkRemoteContentNotBlockedWithMultipleMessagesWhenConversationModeIsEnabled() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_184208.json"
|
||||
@@ -152,7 +150,7 @@ internal class ConversationDetailRemoteContentTests :
|
||||
@Test
|
||||
@TestId("184209")
|
||||
fun checkRemoteContentNotBlockedOnMultipleMessagesWhenConversationModeIsEnabled() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_184209.json"
|
||||
@@ -217,7 +215,7 @@ internal class ConversationDetailRemoteContentTests :
|
||||
@SmokeTest
|
||||
@TestId("184211")
|
||||
fun checkRemoteContentBlockedWhenConversationModeIsEnabled() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_184211.json"
|
||||
@@ -253,7 +251,7 @@ internal class ConversationDetailRemoteContentTests :
|
||||
@Test
|
||||
@TestId("184212")
|
||||
fun checkRemoteContentBlockedWithMultipleMessagesWhenConversationModeIsEnabled() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_184212.json"
|
||||
|
||||
+3
-3
@@ -19,6 +19,7 @@
|
||||
package ch.protonmail.android.uitest.e2e.mailbox.detail.bodycontent
|
||||
|
||||
import ch.protonmail.android.di.ServerProofModule
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.combineWith
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.ignoreQueryParams
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.matchWildcards
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.respondWith
|
||||
@@ -29,7 +30,6 @@ import ch.protonmail.android.uitest.MockedNetworkTest
|
||||
import ch.protonmail.android.uitest.helpers.core.TestId
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.Destination
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.navigator
|
||||
import ch.protonmail.android.uitest.helpers.login.LoginStrategy
|
||||
import ch.protonmail.android.uitest.helpers.network.mockNetworkDispatcher
|
||||
import ch.protonmail.android.uitest.robot.detail.messageDetailRobot
|
||||
import ch.protonmail.android.uitest.robot.detail.section.messageBodySection
|
||||
@@ -44,7 +44,7 @@ import org.junit.Test
|
||||
@SmokeTest
|
||||
@HiltAndroidTest
|
||||
@UninstallModules(ServerProofModule::class)
|
||||
internal class MessageDetailHtmlSanitizationTests : MockedNetworkTest(loginStrategy = LoginStrategy.LoggedOut) {
|
||||
internal class MessageDetailHtmlSanitizationTests : MockedNetworkTest() {
|
||||
|
||||
@JvmField
|
||||
@BindValue
|
||||
@@ -53,7 +53,7 @@ internal class MessageDetailHtmlSanitizationTests : MockedNetworkTest(loginStrat
|
||||
@Test
|
||||
@TestId("189700")
|
||||
fun checkHtmlSanitizationInMessageMode() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_placeholder_messages.json"
|
||||
|
||||
+4
-6
@@ -22,6 +22,7 @@ import arrow.core.Either
|
||||
import ch.protonmail.android.di.ServerProofModule
|
||||
import ch.protonmail.android.maildetail.domain.usecase.GetDecryptedMessageBody
|
||||
import ch.protonmail.android.mailmessage.domain.entity.MimeType
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.combineWith
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.ignoreQueryParams
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.matchWildcards
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.respondWith
|
||||
@@ -33,7 +34,6 @@ import ch.protonmail.android.uitest.e2e.mailbox.detail.DetailRemoteContentTest
|
||||
import ch.protonmail.android.uitest.helpers.core.TestId
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.Destination
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.navigator
|
||||
import ch.protonmail.android.uitest.helpers.login.LoginStrategy
|
||||
import ch.protonmail.android.uitest.helpers.network.mockNetworkDispatcher
|
||||
import ch.protonmail.android.uitest.robot.detail.messageDetailRobot
|
||||
import ch.protonmail.android.uitest.robot.detail.section.messageBodySection
|
||||
@@ -49,9 +49,7 @@ import org.junit.Test
|
||||
@SmokeTest
|
||||
@HiltAndroidTest
|
||||
@UninstallModules(ServerProofModule::class)
|
||||
internal class MessageDetailRemoteContentTests :
|
||||
MockedNetworkTest(loginStrategy = LoginStrategy.LoggedOut),
|
||||
DetailRemoteContentTest {
|
||||
internal class MessageDetailRemoteContentTests : MockedNetworkTest(), DetailRemoteContentTest {
|
||||
|
||||
private val expectedBodyText = "Various img elements"
|
||||
|
||||
@@ -75,7 +73,7 @@ internal class MessageDetailRemoteContentTests :
|
||||
@Test
|
||||
@TestId("184207")
|
||||
fun checkRemoteContentNotBlockedWhenConversationModeIsDisabled() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_184207.json"
|
||||
@@ -108,7 +106,7 @@ internal class MessageDetailRemoteContentTests :
|
||||
@Test
|
||||
@TestId("184210")
|
||||
fun checkRemoteContentBlockedWhenConversationModeIsDisabled() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_184210.json"
|
||||
|
||||
+4
-6
@@ -19,6 +19,7 @@
|
||||
package ch.protonmail.android.uitest.e2e.mailbox.detail.bottomsheet.labelas
|
||||
|
||||
import ch.protonmail.android.di.ServerProofModule
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.combineWith
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.ignoreQueryParams
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.matchWildcards
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.respondWith
|
||||
@@ -29,7 +30,6 @@ import ch.protonmail.android.uitest.MockedNetworkTest
|
||||
import ch.protonmail.android.uitest.helpers.core.TestId
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.Destination
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.navigator
|
||||
import ch.protonmail.android.uitest.helpers.login.LoginStrategy
|
||||
import ch.protonmail.android.uitest.helpers.network.mockNetworkDispatcher
|
||||
import ch.protonmail.android.uitest.robot.detail.conversationDetailRobot
|
||||
import ch.protonmail.android.uitest.robot.detail.section.bottomBarSection
|
||||
@@ -51,9 +51,7 @@ import org.junit.Test
|
||||
@RegressionTest
|
||||
@HiltAndroidTest
|
||||
@UninstallModules(ServerProofModule::class)
|
||||
internal class ConversationDetailMoveToBottomSheetDismissalTests : MockedNetworkTest(
|
||||
loginStrategy = LoginStrategy.LoggedOut
|
||||
) {
|
||||
internal class ConversationDetailMoveToBottomSheetDismissalTests : MockedNetworkTest() {
|
||||
|
||||
@JvmField
|
||||
@BindValue
|
||||
@@ -62,7 +60,7 @@ internal class ConversationDetailMoveToBottomSheetDismissalTests : MockedNetwork
|
||||
@Test
|
||||
@TestId("79353")
|
||||
fun checkConversationMoveToBottomSheetDismissalWithBackButton() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_79353.json"
|
||||
@@ -111,7 +109,7 @@ internal class ConversationDetailMoveToBottomSheetDismissalTests : MockedNetwork
|
||||
@Test
|
||||
@TestId("79355")
|
||||
fun checkConversationMoveToBottomSheetDismissalWithExternalTap() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_79355.json"
|
||||
|
||||
+4
-5
@@ -19,6 +19,7 @@
|
||||
package ch.protonmail.android.uitest.e2e.mailbox.detail.bottomsheet.labelas
|
||||
|
||||
import ch.protonmail.android.di.ServerProofModule
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.combineWith
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.ignoreQueryParams
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.matchWildcards
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.respondWith
|
||||
@@ -29,7 +30,6 @@ import ch.protonmail.android.uitest.MockedNetworkTest
|
||||
import ch.protonmail.android.uitest.helpers.core.TestId
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.Destination
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.navigator
|
||||
import ch.protonmail.android.uitest.helpers.login.LoginStrategy
|
||||
import ch.protonmail.android.uitest.helpers.network.mockNetworkDispatcher
|
||||
import ch.protonmail.android.uitest.robot.detail.messageDetailRobot
|
||||
import ch.protonmail.android.uitest.robot.detail.section.bottomBarSection
|
||||
@@ -48,8 +48,7 @@ import org.junit.Test
|
||||
@RegressionTest
|
||||
@HiltAndroidTest
|
||||
@UninstallModules(ServerProofModule::class)
|
||||
internal class MessageDetailLabelAsBottomSheetDismissalTests :
|
||||
MockedNetworkTest(loginStrategy = LoginStrategy.LoggedOut) {
|
||||
internal class MessageDetailLabelAsBottomSheetDismissalTests : MockedNetworkTest() {
|
||||
|
||||
@JvmField
|
||||
@BindValue
|
||||
@@ -58,7 +57,7 @@ internal class MessageDetailLabelAsBottomSheetDismissalTests :
|
||||
@Test
|
||||
@TestId("79354/2")
|
||||
fun checkMessageLabelAsBottomSheetDismissalWithBackButton() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_79354.json"
|
||||
@@ -100,7 +99,7 @@ internal class MessageDetailLabelAsBottomSheetDismissalTests :
|
||||
@Test
|
||||
@TestId("79356/2")
|
||||
fun checkMessageLabelAsBottomSheetDismissalWithExternalTap() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_79356.json"
|
||||
|
||||
+4
-6
@@ -19,6 +19,7 @@
|
||||
package ch.protonmail.android.uitest.e2e.mailbox.detail.bottomsheet.moveto
|
||||
|
||||
import ch.protonmail.android.di.ServerProofModule
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.combineWith
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.ignoreQueryParams
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.matchWildcards
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.respondWith
|
||||
@@ -29,7 +30,6 @@ import ch.protonmail.android.uitest.MockedNetworkTest
|
||||
import ch.protonmail.android.uitest.helpers.core.TestId
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.Destination
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.navigator
|
||||
import ch.protonmail.android.uitest.helpers.login.LoginStrategy
|
||||
import ch.protonmail.android.uitest.helpers.network.mockNetworkDispatcher
|
||||
import ch.protonmail.android.uitest.robot.detail.conversationDetailRobot
|
||||
import ch.protonmail.android.uitest.robot.detail.section.bottomBarSection
|
||||
@@ -50,9 +50,7 @@ import org.junit.Test
|
||||
@RegressionTest
|
||||
@HiltAndroidTest
|
||||
@UninstallModules(ServerProofModule::class)
|
||||
internal class ConversationDetailLabelAsBottomSheetDismissalTests : MockedNetworkTest(
|
||||
loginStrategy = LoginStrategy.LoggedOut
|
||||
) {
|
||||
internal class ConversationDetailLabelAsBottomSheetDismissalTests : MockedNetworkTest() {
|
||||
|
||||
@JvmField
|
||||
@BindValue
|
||||
@@ -61,7 +59,7 @@ internal class ConversationDetailLabelAsBottomSheetDismissalTests : MockedNetwor
|
||||
@Test
|
||||
@TestId("79353/2")
|
||||
fun checkConversationLabelAsBottomSheetDismissalWithBackButton() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_79353.json"
|
||||
@@ -110,7 +108,7 @@ internal class ConversationDetailLabelAsBottomSheetDismissalTests : MockedNetwor
|
||||
@Test
|
||||
@TestId("79355/2")
|
||||
fun checkConversationLabelAsBottomSheetDismissalWithExternalTap() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_79355.json"
|
||||
|
||||
+3
-5
@@ -19,6 +19,7 @@
|
||||
package ch.protonmail.android.uitest.e2e.mailbox.detail.bottomsheet.moveto
|
||||
|
||||
import ch.protonmail.android.di.ServerProofModule
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.combineWith
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.ignoreQueryParams
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.matchWildcards
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.respondWith
|
||||
@@ -29,7 +30,6 @@ import ch.protonmail.android.uitest.MockedNetworkTest
|
||||
import ch.protonmail.android.uitest.helpers.core.TestId
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.Destination
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.navigator
|
||||
import ch.protonmail.android.uitest.helpers.login.LoginStrategy
|
||||
import ch.protonmail.android.uitest.helpers.network.mockNetworkDispatcher
|
||||
import ch.protonmail.android.uitest.robot.detail.conversationDetailRobot
|
||||
import ch.protonmail.android.uitest.robot.detail.section.bottomBarSection
|
||||
@@ -46,9 +46,7 @@ import org.junit.Test
|
||||
@RegressionTest
|
||||
@HiltAndroidTest
|
||||
@UninstallModules(ServerProofModule::class)
|
||||
internal class ConversationDetailMoveToBottomSheetMainTests : MockedNetworkTest(
|
||||
loginStrategy = LoginStrategy.LoggedOut
|
||||
) {
|
||||
internal class ConversationDetailMoveToBottomSheetMainTests : MockedNetworkTest() {
|
||||
|
||||
@JvmField
|
||||
@BindValue
|
||||
@@ -57,7 +55,7 @@ internal class ConversationDetailMoveToBottomSheetMainTests : MockedNetworkTest(
|
||||
@Test
|
||||
@TestId("185409")
|
||||
fun checkMoveToBottomSheetComponentsInConversationMode() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_185409.json"
|
||||
|
||||
+6
-6
@@ -19,6 +19,7 @@
|
||||
package ch.protonmail.android.uitest.e2e.mailbox.detail.bottomsheet.moveto
|
||||
|
||||
import ch.protonmail.android.di.ServerProofModule
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.combineWith
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.matchWildcards
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.respondWith
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.serveOnce
|
||||
@@ -28,7 +29,6 @@ import ch.protonmail.android.uitest.MockedNetworkTest
|
||||
import ch.protonmail.android.uitest.helpers.core.TestId
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.Destination
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.navigator
|
||||
import ch.protonmail.android.uitest.helpers.login.LoginStrategy
|
||||
import ch.protonmail.android.uitest.helpers.network.mockNetworkDispatcher
|
||||
import ch.protonmail.android.uitest.models.avatar.AvatarInitial
|
||||
import ch.protonmail.android.uitest.models.folders.Tint
|
||||
@@ -59,7 +59,7 @@ import org.junit.Test
|
||||
@RegressionTest
|
||||
@HiltAndroidTest
|
||||
@UninstallModules(ServerProofModule::class)
|
||||
internal class DetailMoveToBottomSheetActionTests : MockedNetworkTest(loginStrategy = LoginStrategy.LoggedOut) {
|
||||
internal class DetailMoveToBottomSheetActionTests : MockedNetworkTest() {
|
||||
|
||||
@JvmField
|
||||
@BindValue
|
||||
@@ -83,7 +83,7 @@ internal class DetailMoveToBottomSheetActionTests : MockedNetworkTest(loginStrat
|
||||
@Test
|
||||
@TestId("185418")
|
||||
fun checkMoveToBottomSheetSystemToSystemFolder() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_185418.json"
|
||||
@@ -123,7 +123,7 @@ internal class DetailMoveToBottomSheetActionTests : MockedNetworkTest(loginStrat
|
||||
@Test
|
||||
@TestId("185419")
|
||||
fun checkMoveToBottomSheetCustomToCustomFolder() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(
|
||||
useDefaultMailSettings = false,
|
||||
useDefaultCustomFolders = false,
|
||||
useDefaultMailReadResponses = true
|
||||
@@ -166,7 +166,7 @@ internal class DetailMoveToBottomSheetActionTests : MockedNetworkTest(loginStrat
|
||||
@Test
|
||||
@TestId("185419/2 - 185421")
|
||||
fun checkMoveToBottomSheetCustomToSystemFolder() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(
|
||||
useDefaultMailSettings = false,
|
||||
useDefaultCustomFolders = false,
|
||||
useDefaultMailReadResponses = true
|
||||
@@ -209,7 +209,7 @@ internal class DetailMoveToBottomSheetActionTests : MockedNetworkTest(loginStrat
|
||||
@Test
|
||||
@TestId("185419/3 - 185423")
|
||||
fun checkMoveToBottomSheetSystemToCustomFolder() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(
|
||||
useDefaultMailSettings = false,
|
||||
useDefaultCustomFolders = false,
|
||||
useDefaultMailReadResponses = true
|
||||
|
||||
+7
-4
@@ -19,6 +19,7 @@
|
||||
package ch.protonmail.android.uitest.e2e.mailbox.detail.bottomsheet.moveto
|
||||
|
||||
import ch.protonmail.android.di.ServerProofModule
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.combineWith
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.matchWildcards
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.respondWith
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.serveOnce
|
||||
@@ -28,7 +29,6 @@ import ch.protonmail.android.uitest.MockedNetworkTest
|
||||
import ch.protonmail.android.uitest.helpers.core.TestId
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.Destination
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.navigator
|
||||
import ch.protonmail.android.uitest.helpers.login.LoginStrategy
|
||||
import ch.protonmail.android.uitest.helpers.network.mockNetworkDispatcher
|
||||
import ch.protonmail.android.uitest.models.avatar.AvatarInitial
|
||||
import ch.protonmail.android.uitest.models.folders.MailLabelEntry
|
||||
@@ -52,7 +52,7 @@ import org.junit.Test
|
||||
@RegressionTest
|
||||
@HiltAndroidTest
|
||||
@UninstallModules(ServerProofModule::class)
|
||||
internal class DetailMoveToBottomSheetLabelsTests : MockedNetworkTest(loginStrategy = LoginStrategy.LoggedOut) {
|
||||
internal class DetailMoveToBottomSheetLabelsTests : MockedNetworkTest() {
|
||||
|
||||
@JvmField
|
||||
@BindValue
|
||||
@@ -72,7 +72,7 @@ internal class DetailMoveToBottomSheetLabelsTests : MockedNetworkTest(loginStrat
|
||||
@Test
|
||||
@TestId("185425")
|
||||
fun checkMoveToBottomSheetMoveToTrashFolder() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(
|
||||
useDefaultMailSettings = false,
|
||||
useDefaultLabels = false,
|
||||
useDefaultMailReadResponses = true
|
||||
@@ -135,7 +135,10 @@ internal class DetailMoveToBottomSheetLabelsTests : MockedNetworkTest(loginStrat
|
||||
@Test
|
||||
@TestId("185425/2 - 185426")
|
||||
fun checkMoveToBottomSheetMoveToSpamFolder() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false, useDefaultLabels = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(
|
||||
useDefaultMailSettings = false,
|
||||
useDefaultLabels = false
|
||||
) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_185425.json"
|
||||
|
||||
+6
-8
@@ -19,6 +19,7 @@
|
||||
package ch.protonmail.android.uitest.e2e.mailbox.detail.bottomsheet.moveto
|
||||
|
||||
import ch.protonmail.android.di.ServerProofModule
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.combineWith
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.ignoreQueryParams
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.matchWildcards
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.respondWith
|
||||
@@ -29,7 +30,6 @@ import ch.protonmail.android.uitest.MockedNetworkTest
|
||||
import ch.protonmail.android.uitest.helpers.core.TestId
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.Destination
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.navigator
|
||||
import ch.protonmail.android.uitest.helpers.login.LoginStrategy
|
||||
import ch.protonmail.android.uitest.helpers.network.mockNetworkDispatcher
|
||||
import ch.protonmail.android.uitest.models.folders.Tint
|
||||
import ch.protonmail.android.uitest.robot.detail.conversationDetailRobot
|
||||
@@ -48,9 +48,7 @@ import org.junit.Test
|
||||
@RegressionTest
|
||||
@HiltAndroidTest
|
||||
@UninstallModules(ServerProofModule::class)
|
||||
internal class DetailMoveToBottomSheetMainTests : MockedNetworkTest(
|
||||
loginStrategy = LoginStrategy.LoggedOut
|
||||
) {
|
||||
internal class DetailMoveToBottomSheetMainTests : MockedNetworkTest() {
|
||||
|
||||
@JvmField
|
||||
@BindValue
|
||||
@@ -72,7 +70,7 @@ internal class DetailMoveToBottomSheetMainTests : MockedNetworkTest(
|
||||
@Test
|
||||
@TestId("185411")
|
||||
fun checkMoveToBottomSheetComponentsWithNoCustomFolders() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_185411.json"
|
||||
@@ -106,7 +104,7 @@ internal class DetailMoveToBottomSheetMainTests : MockedNetworkTest(
|
||||
@Test
|
||||
@TestId("185412")
|
||||
fun checkMoveToBottomSheetComponentsWithCustomFolders() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(
|
||||
useDefaultMailSettings = false,
|
||||
useDefaultCustomFolders = false,
|
||||
useDefaultMailReadResponses = true
|
||||
@@ -149,7 +147,7 @@ internal class DetailMoveToBottomSheetMainTests : MockedNetworkTest(
|
||||
@Test
|
||||
@TestId("185414")
|
||||
fun checkMoveToBottomSheetComponentsSelection() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(
|
||||
useDefaultMailSettings = false,
|
||||
useDefaultMailReadResponses = true
|
||||
) {
|
||||
@@ -194,7 +192,7 @@ internal class DetailMoveToBottomSheetMainTests : MockedNetworkTest(
|
||||
@Test
|
||||
@TestId("185415")
|
||||
fun checkMoveToBottomSheetSelectionIsGoneAfterDismissal() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(
|
||||
useDefaultMailSettings = false,
|
||||
useDefaultMailReadResponses = true
|
||||
) {
|
||||
|
||||
+4
-5
@@ -19,6 +19,7 @@
|
||||
package ch.protonmail.android.uitest.e2e.mailbox.detail.bottomsheet.moveto
|
||||
|
||||
import ch.protonmail.android.di.ServerProofModule
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.combineWith
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.ignoreQueryParams
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.matchWildcards
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.respondWith
|
||||
@@ -29,7 +30,6 @@ import ch.protonmail.android.uitest.MockedNetworkTest
|
||||
import ch.protonmail.android.uitest.helpers.core.TestId
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.Destination
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.navigator
|
||||
import ch.protonmail.android.uitest.helpers.login.LoginStrategy
|
||||
import ch.protonmail.android.uitest.helpers.network.mockNetworkDispatcher
|
||||
import ch.protonmail.android.uitest.robot.detail.messageDetailRobot
|
||||
import ch.protonmail.android.uitest.robot.detail.section.bottomBarSection
|
||||
@@ -49,8 +49,7 @@ import org.junit.Test
|
||||
@RegressionTest
|
||||
@HiltAndroidTest
|
||||
@UninstallModules(ServerProofModule::class)
|
||||
internal class MessageDetailMoveToBottomSheetDismissalTests :
|
||||
MockedNetworkTest(loginStrategy = LoginStrategy.LoggedOut) {
|
||||
internal class MessageDetailMoveToBottomSheetDismissalTests : MockedNetworkTest() {
|
||||
|
||||
@JvmField
|
||||
@BindValue
|
||||
@@ -59,7 +58,7 @@ internal class MessageDetailMoveToBottomSheetDismissalTests :
|
||||
@Test
|
||||
@TestId("79354")
|
||||
fun checkMessageMoveToBottomSheetDismissalWithBackButton() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_79354.json"
|
||||
@@ -101,7 +100,7 @@ internal class MessageDetailMoveToBottomSheetDismissalTests :
|
||||
@Test
|
||||
@TestId("79356")
|
||||
fun checkMessageMoveToBottomSheetDismissalWithExternalTap() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_79356.json"
|
||||
|
||||
+3
-5
@@ -19,6 +19,7 @@
|
||||
package ch.protonmail.android.uitest.e2e.mailbox.detail.bottomsheet.moveto
|
||||
|
||||
import ch.protonmail.android.di.ServerProofModule
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.combineWith
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.ignoreQueryParams
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.matchWildcards
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.respondWith
|
||||
@@ -29,7 +30,6 @@ import ch.protonmail.android.uitest.MockedNetworkTest
|
||||
import ch.protonmail.android.uitest.helpers.core.TestId
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.Destination
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.navigator
|
||||
import ch.protonmail.android.uitest.helpers.login.LoginStrategy
|
||||
import ch.protonmail.android.uitest.helpers.network.mockNetworkDispatcher
|
||||
import ch.protonmail.android.uitest.robot.detail.messageDetailRobot
|
||||
import ch.protonmail.android.uitest.robot.detail.section.bottomBarSection
|
||||
@@ -46,9 +46,7 @@ import org.junit.Test
|
||||
@RegressionTest
|
||||
@HiltAndroidTest
|
||||
@UninstallModules(ServerProofModule::class)
|
||||
internal class MessageDetailMoveToBottomSheetMainTests : MockedNetworkTest(
|
||||
loginStrategy = LoginStrategy.LoggedOut
|
||||
) {
|
||||
internal class MessageDetailMoveToBottomSheetMainTests : MockedNetworkTest() {
|
||||
|
||||
@JvmField
|
||||
@BindValue
|
||||
@@ -57,7 +55,7 @@ internal class MessageDetailMoveToBottomSheetMainTests : MockedNetworkTest(
|
||||
@Test
|
||||
@TestId("185410")
|
||||
fun checkMoveToBottomSheetComponentsInMessageMode() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_185410.json"
|
||||
|
||||
+11
-5
@@ -19,6 +19,7 @@
|
||||
package ch.protonmail.android.uitest.e2e.mailbox.drafts
|
||||
|
||||
import ch.protonmail.android.di.ServerProofModule
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.combineWith
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.MockPriority
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.ignoreQueryParams
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.respondWith
|
||||
@@ -29,7 +30,6 @@ import ch.protonmail.android.uitest.MockedNetworkTest
|
||||
import ch.protonmail.android.uitest.helpers.core.TestId
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.Destination
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.navigator
|
||||
import ch.protonmail.android.uitest.helpers.login.LoginStrategy
|
||||
import ch.protonmail.android.uitest.helpers.network.mockNetworkDispatcher
|
||||
import ch.protonmail.android.uitest.models.avatar.AvatarInitial
|
||||
import ch.protonmail.android.uitest.models.mailbox.MailboxListItemEntry
|
||||
@@ -46,7 +46,7 @@ import org.junit.Test
|
||||
@RegressionTest
|
||||
@HiltAndroidTest
|
||||
@UninstallModules(ServerProofModule::class)
|
||||
internal class DraftsMailboxTests : MockedNetworkTest(loginStrategy = LoginStrategy.LoggedOut) {
|
||||
internal class DraftsMailboxTests : MockedNetworkTest() {
|
||||
|
||||
@JvmField
|
||||
@BindValue
|
||||
@@ -55,7 +55,7 @@ internal class DraftsMailboxTests : MockedNetworkTest(loginStrategy = LoginStrat
|
||||
@Test
|
||||
@TestId("80395")
|
||||
fun checkParticipantNameInDraftFoldersWhenNotSpecified() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_80395.json"
|
||||
@@ -91,7 +91,10 @@ internal class DraftsMailboxTests : MockedNetworkTest(loginStrategy = LoginStrat
|
||||
@Test
|
||||
@TestId("80396")
|
||||
fun checkParticipantNameInDraftFoldersWhenSpecifiedAndIsAContact() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false, useDefaultContacts = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(
|
||||
useDefaultMailSettings = false,
|
||||
useDefaultContacts = false
|
||||
) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_80396.json"
|
||||
@@ -133,7 +136,10 @@ internal class DraftsMailboxTests : MockedNetworkTest(loginStrategy = LoginStrat
|
||||
@Test
|
||||
@TestId("80397")
|
||||
fun checkParticipantNameInDraftFoldersWhenSpecifiedAndIsNotAContact() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false, useDefaultContacts = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(
|
||||
useDefaultMailSettings = false,
|
||||
useDefaultContacts = false
|
||||
) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_80397.json"
|
||||
|
||||
+4
-5
@@ -19,6 +19,7 @@
|
||||
package ch.protonmail.android.uitest.e2e.mailbox.errors.append
|
||||
|
||||
import ch.protonmail.android.di.ServerProofModule
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.combineWith
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.MockPriority
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.respondWith
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.serveOnce
|
||||
@@ -30,7 +31,6 @@ import ch.protonmail.android.uitest.MockedNetworkTest
|
||||
import ch.protonmail.android.uitest.helpers.core.TestId
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.Destination
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.navigator
|
||||
import ch.protonmail.android.uitest.helpers.login.LoginStrategy
|
||||
import ch.protonmail.android.uitest.helpers.network.mockNetworkDispatcher
|
||||
import ch.protonmail.android.uitest.models.avatar.AvatarInitial
|
||||
import ch.protonmail.android.uitest.models.mailbox.MailboxListItemEntry
|
||||
@@ -44,8 +44,7 @@ import org.junit.Test
|
||||
@SmokeTest
|
||||
@HiltAndroidTest
|
||||
@UninstallModules(ServerProofModule::class)
|
||||
internal class ConversationModeAppendItemsTests :
|
||||
MockedNetworkTest(loginStrategy = LoginStrategy.LoggedOut), MailboxAppendItemsTests {
|
||||
internal class ConversationModeAppendItemsTests : MockedNetworkTest(), MailboxAppendItemsTests {
|
||||
|
||||
@JvmField
|
||||
@BindValue
|
||||
@@ -63,7 +62,7 @@ internal class ConversationModeAppendItemsTests :
|
||||
@TestId("189113")
|
||||
@Suppress("MaxLineLength")
|
||||
fun checkAppendErrorAndRetryInConversationMode() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_placeholder_conversation.json"
|
||||
@@ -94,7 +93,7 @@ internal class ConversationModeAppendItemsTests :
|
||||
@TestId("189113/2 - 189158")
|
||||
@Suppress("MaxLineLength")
|
||||
fun checkAppendItemsInConversationMode() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_placeholder_conversation.json"
|
||||
|
||||
+4
-5
@@ -19,6 +19,7 @@
|
||||
package ch.protonmail.android.uitest.e2e.mailbox.errors.append
|
||||
|
||||
import ch.protonmail.android.di.ServerProofModule
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.combineWith
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.MockPriority
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.respondWith
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.serveOnce
|
||||
@@ -30,7 +31,6 @@ import ch.protonmail.android.uitest.MockedNetworkTest
|
||||
import ch.protonmail.android.uitest.helpers.core.TestId
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.Destination
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.navigator
|
||||
import ch.protonmail.android.uitest.helpers.login.LoginStrategy
|
||||
import ch.protonmail.android.uitest.helpers.network.mockNetworkDispatcher
|
||||
import ch.protonmail.android.uitest.models.avatar.AvatarInitial
|
||||
import ch.protonmail.android.uitest.models.mailbox.MailboxListItemEntry
|
||||
@@ -44,8 +44,7 @@ import org.junit.Test
|
||||
@SmokeTest
|
||||
@HiltAndroidTest
|
||||
@UninstallModules(ServerProofModule::class)
|
||||
internal class MessageModeAppendItemsTests :
|
||||
MockedNetworkTest(loginStrategy = LoginStrategy.LoggedOut), MailboxAppendItemsTests {
|
||||
internal class MessageModeAppendItemsTests : MockedNetworkTest(), MailboxAppendItemsTests {
|
||||
|
||||
@JvmField
|
||||
@BindValue
|
||||
@@ -63,7 +62,7 @@ internal class MessageModeAppendItemsTests :
|
||||
@TestId("189114")
|
||||
@Suppress("MaxLineLength")
|
||||
fun checkAppendErrorAndRetryInMessageMode() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_placeholder_messages.json"
|
||||
@@ -94,7 +93,7 @@ internal class MessageModeAppendItemsTests :
|
||||
@TestId("189114/2 - 189159")
|
||||
@Suppress("MaxLineLength")
|
||||
fun checkAppendItemsInMessageMode() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_placeholder_messages.json"
|
||||
|
||||
+8
-8
@@ -19,6 +19,7 @@
|
||||
package ch.protonmail.android.uitest.e2e.mailbox.errors.pulltorefresh
|
||||
|
||||
import ch.protonmail.android.di.ServerProofModule
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.combineWith
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.ignoreQueryParams
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.respondWith
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.serveOnce
|
||||
@@ -30,7 +31,6 @@ import ch.protonmail.android.uitest.MockedNetworkTest
|
||||
import ch.protonmail.android.uitest.helpers.core.TestId
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.Destination
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.navigator
|
||||
import ch.protonmail.android.uitest.helpers.login.LoginStrategy
|
||||
import ch.protonmail.android.uitest.helpers.network.mockNetworkDispatcher
|
||||
import dagger.hilt.android.testing.BindValue
|
||||
import dagger.hilt.android.testing.HiltAndroidTest
|
||||
@@ -43,7 +43,7 @@ import org.junit.Test
|
||||
@HiltAndroidTest
|
||||
@UninstallModules(ServerProofModule::class)
|
||||
internal class ConversationModeMailboxPullToRefreshErrorTests :
|
||||
MockedNetworkTest(loginStrategy = LoginStrategy.LoggedOut), MailboxPullToRefreshErrorTests {
|
||||
MockedNetworkTest(), MailboxPullToRefreshErrorTests {
|
||||
|
||||
@JvmField
|
||||
@BindValue
|
||||
@@ -52,7 +52,7 @@ internal class ConversationModeMailboxPullToRefreshErrorTests :
|
||||
@Test
|
||||
@TestId("188892")
|
||||
fun checkConversationsLoadingErrorToError() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_placeholder_conversation.json"
|
||||
@@ -76,7 +76,7 @@ internal class ConversationModeMailboxPullToRefreshErrorTests :
|
||||
@Test
|
||||
@TestId("188893")
|
||||
fun checkConversationsLoadingContentToError() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_placeholder_conversation.json"
|
||||
@@ -101,7 +101,7 @@ internal class ConversationModeMailboxPullToRefreshErrorTests :
|
||||
@SmokeTest
|
||||
@TestId("188894")
|
||||
fun checkConversationsLoadingErrorToContent() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_placeholder_conversation.json"
|
||||
@@ -125,7 +125,7 @@ internal class ConversationModeMailboxPullToRefreshErrorTests :
|
||||
@Test
|
||||
@TestId("188895")
|
||||
fun checkConversationsLoadingEmptyToError() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_placeholder_conversation.json"
|
||||
@@ -149,7 +149,7 @@ internal class ConversationModeMailboxPullToRefreshErrorTests :
|
||||
@Test
|
||||
@TestId("188896")
|
||||
fun checkConversationsLoadingErrorToEmpty() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_placeholder_conversation.json"
|
||||
@@ -174,7 +174,7 @@ internal class ConversationModeMailboxPullToRefreshErrorTests :
|
||||
@SmokeTest
|
||||
@TestId("188897")
|
||||
fun checkConversationsLoadingEmptyToContent() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_placeholder_conversation.json"
|
||||
|
||||
+8
-8
@@ -19,6 +19,7 @@
|
||||
package ch.protonmail.android.uitest.e2e.mailbox.errors.pulltorefresh
|
||||
|
||||
import ch.protonmail.android.di.ServerProofModule
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.combineWith
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.ignoreQueryParams
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.respondWith
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.serveOnce
|
||||
@@ -30,7 +31,6 @@ import ch.protonmail.android.uitest.MockedNetworkTest
|
||||
import ch.protonmail.android.uitest.helpers.core.TestId
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.Destination
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.navigator
|
||||
import ch.protonmail.android.uitest.helpers.login.LoginStrategy
|
||||
import ch.protonmail.android.uitest.helpers.network.mockNetworkDispatcher
|
||||
import dagger.hilt.android.testing.BindValue
|
||||
import dagger.hilt.android.testing.HiltAndroidTest
|
||||
@@ -43,7 +43,7 @@ import org.junit.Test
|
||||
@HiltAndroidTest
|
||||
@UninstallModules(ServerProofModule::class)
|
||||
internal class MessageModeMailboxPullToRefreshErrorTests :
|
||||
MockedNetworkTest(loginStrategy = LoginStrategy.LoggedOut), MailboxPullToRefreshErrorTests {
|
||||
MockedNetworkTest(), MailboxPullToRefreshErrorTests {
|
||||
|
||||
@JvmField
|
||||
@BindValue
|
||||
@@ -52,7 +52,7 @@ internal class MessageModeMailboxPullToRefreshErrorTests :
|
||||
@Test
|
||||
@TestId("188899")
|
||||
fun checkMessagesLoadingErrorToError() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_placeholder_messages.json"
|
||||
@@ -76,7 +76,7 @@ internal class MessageModeMailboxPullToRefreshErrorTests :
|
||||
@Test
|
||||
@TestId("188900")
|
||||
fun checkMessagesLoadingContentToError() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_placeholder_messages.json"
|
||||
@@ -101,7 +101,7 @@ internal class MessageModeMailboxPullToRefreshErrorTests :
|
||||
@SmokeTest
|
||||
@TestId("188901")
|
||||
fun checkMessagesLoadingErrorToContent() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_placeholder_messages.json"
|
||||
@@ -125,7 +125,7 @@ internal class MessageModeMailboxPullToRefreshErrorTests :
|
||||
@Test
|
||||
@TestId("188902")
|
||||
fun checkMessagesLoadingEmptyToError() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_placeholder_messages.json"
|
||||
@@ -149,7 +149,7 @@ internal class MessageModeMailboxPullToRefreshErrorTests :
|
||||
@Test
|
||||
@TestId("188903")
|
||||
fun checkMessagesLoadingErrorToEmpty() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_placeholder_messages.json"
|
||||
@@ -174,7 +174,7 @@ internal class MessageModeMailboxPullToRefreshErrorTests :
|
||||
@SmokeTest
|
||||
@TestId("188904")
|
||||
fun checkMessagesLoadingEmptyToContent() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(useDefaultMailSettings = false) {
|
||||
addMockRequests(
|
||||
"/mail/v4/settings"
|
||||
respondWith "/mail/v4/settings/mail-v4-settings_placeholder_messages.json"
|
||||
|
||||
+5
-5
@@ -19,6 +19,7 @@
|
||||
package ch.protonmail.android.uitest.e2e.menu
|
||||
|
||||
import ch.protonmail.android.di.ServerProofModule
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.combineWith
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.ignoreQueryParams
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.respondWith
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.withStatusCode
|
||||
@@ -27,7 +28,6 @@ import ch.protonmail.android.uitest.MockedNetworkTest
|
||||
import ch.protonmail.android.uitest.helpers.core.TestId
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.Destination
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.navigator
|
||||
import ch.protonmail.android.uitest.helpers.login.LoginStrategy
|
||||
import ch.protonmail.android.uitest.helpers.network.mockNetworkDispatcher
|
||||
import ch.protonmail.android.uitest.models.folders.SidebarCustomItemEntry
|
||||
import ch.protonmail.android.uitest.models.folders.Tint
|
||||
@@ -43,7 +43,7 @@ import org.junit.Test
|
||||
@RegressionTest
|
||||
@HiltAndroidTest
|
||||
@UninstallModules(ServerProofModule::class)
|
||||
internal class SidebarMenuFoldersTests : MockedNetworkTest(loginStrategy = LoginStrategy.LoggedOut) {
|
||||
internal class SidebarMenuFoldersTests : MockedNetworkTest() {
|
||||
|
||||
@JvmField
|
||||
@BindValue
|
||||
@@ -52,7 +52,7 @@ internal class SidebarMenuFoldersTests : MockedNetworkTest(loginStrategy = Login
|
||||
@Test
|
||||
@TestId("68718")
|
||||
fun checkShortHexAndStandardColorFolderAreDisplayedInSidebarMenu() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(
|
||||
useDefaultCustomFolders = false,
|
||||
useDefaultMailSettings = false
|
||||
) {
|
||||
@@ -88,7 +88,7 @@ internal class SidebarMenuFoldersTests : MockedNetworkTest(loginStrategy = Login
|
||||
@Test
|
||||
@TestId("79096")
|
||||
fun checkFoldersColorWhenSettingIsOffWithNoParentInheritingInSidebarMenu() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(
|
||||
useDefaultCustomFolders = false,
|
||||
useDefaultMailSettings = false
|
||||
) {
|
||||
@@ -123,7 +123,7 @@ internal class SidebarMenuFoldersTests : MockedNetworkTest(loginStrategy = Login
|
||||
@Test
|
||||
@TestId("79097")
|
||||
fun checkFoldersColorWhenSettingIsOffWithParentInheritingInSidebarMenu() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher(
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher(
|
||||
useDefaultCustomFolders = false,
|
||||
useDefaultMailSettings = false
|
||||
) {
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
|
||||
package ch.protonmail.android.uitest.e2e.settings
|
||||
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.combineWith
|
||||
import ch.protonmail.android.test.annotations.suite.SmokeTest
|
||||
import ch.protonmail.android.uitest.MockedNetworkTest
|
||||
import ch.protonmail.android.uitest.helpers.core.navigation.Destination
|
||||
@@ -40,7 +41,7 @@ internal class SettingsFlowTest : MockedNetworkTest() {
|
||||
|
||||
@Before
|
||||
fun setupDispatcher() {
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher()
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher()
|
||||
navigator { navigateTo(Destination.Inbox, performLoginViaUI = false) }
|
||||
}
|
||||
|
||||
|
||||
+12
-20
@@ -18,27 +18,19 @@
|
||||
|
||||
package ch.protonmail.android.uitest.helpers.login
|
||||
|
||||
import ch.protonmail.android.mailcommon.domain.sample.AccountSample
|
||||
import ch.protonmail.android.mailcommon.domain.sample.SessionSample
|
||||
import ch.protonmail.android.mailcommon.domain.sample.UserSample
|
||||
import me.proton.core.account.domain.entity.Account
|
||||
import me.proton.core.network.domain.session.Session
|
||||
import me.proton.core.user.domain.entity.User
|
||||
object LoginTestUserTypes {
|
||||
object Free {
|
||||
|
||||
internal sealed class LoginStrategy {
|
||||
|
||||
sealed class LoggedIn(
|
||||
val account: Account,
|
||||
val session: Session,
|
||||
val user: User
|
||||
) : LoginStrategy() {
|
||||
|
||||
object PrimaryUser : LoggedIn(
|
||||
account = AccountSample.Primary,
|
||||
session = SessionSample.Primary,
|
||||
user = UserSample.Primary
|
||||
)
|
||||
val SleepyKoala = LoginType.LoggedIn("slpkla")
|
||||
}
|
||||
|
||||
object LoggedOut : LoginStrategy()
|
||||
object Paid {
|
||||
|
||||
val FancyCapybara = LoginType.LoggedIn("fncyra")
|
||||
}
|
||||
|
||||
object Deprecated {
|
||||
|
||||
val GrumpyCat = LoginType.LoggedIn("gmpcat")
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
/*
|
||||
* Copyright (c) 2022 Proton Technologies AG
|
||||
* This file is part of Proton Technologies AG and Proton Mail.
|
||||
*
|
||||
* Proton Mail is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Proton Mail is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Proton Mail. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package ch.protonmail.android.uitest.helpers.login
|
||||
|
||||
sealed class LoginType {
|
||||
|
||||
class LoggedIn(val id: String) : LoginType()
|
||||
object LoggedOut : LoginType()
|
||||
}
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
/*
|
||||
* Copyright (c) 2022 Proton Technologies AG
|
||||
* This file is part of Proton Technologies AG and Proton Mail.
|
||||
*
|
||||
* Proton Mail is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Proton Mail is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Proton Mail. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package ch.protonmail.android.uitest.helpers.network
|
||||
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.MockNetworkDispatcher
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.respondWith
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.withStatusCode
|
||||
import ch.protonmail.android.uitest.helpers.login.LoginType
|
||||
|
||||
/**
|
||||
* Returns a [MockNetworkDispatcher] instance with valid authenticator mocks depending on the passed [LoginType].
|
||||
*
|
||||
* @param loginType the login type (logged in, out).
|
||||
*
|
||||
* @return an instance of [MockNetworkDispatcher] with predefined mock definitions.
|
||||
*/
|
||||
internal fun authenticationDispatcher(loginType: LoginType) = MockNetworkDispatcher().apply {
|
||||
val id = when (loginType) {
|
||||
is LoginType.LoggedIn -> loginType.id
|
||||
else -> return@apply
|
||||
}
|
||||
|
||||
addMockRequests(
|
||||
"/auth/v4" respondWith "/auth/v4/auth-v4_$id.json" withStatusCode 200,
|
||||
"/auth/v4/info" respondWith "/auth/v4/info/info_$id.json" withStatusCode 200,
|
||||
"/auth/v4/sessions" respondWith "/auth/v4/sessions/sessions_$id.json" withStatusCode 200,
|
||||
"/core/v4/users" respondWith "/core/v4/users/users_$id.json" withStatusCode 200,
|
||||
"/core/v4/addresses" respondWith "/core/v4/addresses/addresses_$id.json" withStatusCode 200,
|
||||
"/core/v4/keys/salts" respondWith "/core/v4/keys/salts/salts_$id.json" withStatusCode 200,
|
||||
"/auth/v4/scopes" respondWith "/auth/v4/scopes/scopes_$id.json" withStatusCode 200
|
||||
)
|
||||
}
|
||||
-12
@@ -33,7 +33,6 @@ import ch.protonmail.android.networkmocks.mockwebserver.requests.withStatusCode
|
||||
* with default values that can be easily overridden.
|
||||
*/
|
||||
internal fun mockNetworkDispatcher(
|
||||
useDefaultAuth: Boolean = true,
|
||||
useDefaultCoreSettings: Boolean = true,
|
||||
useDefaultMailSettings: Boolean = true,
|
||||
useDefaultContacts: Boolean = true,
|
||||
@@ -45,17 +44,6 @@ internal fun mockNetworkDispatcher(
|
||||
ignoreEvents: Boolean = true,
|
||||
additionalMockDefinitions: MockNetworkDispatcher.() -> Unit = {}
|
||||
) = MockNetworkDispatcher().apply {
|
||||
if (useDefaultAuth) {
|
||||
addMockRequests(
|
||||
"/auth/v4" respondWith "/auth/v4/auth-v4_base_placeholder.json" withStatusCode 200,
|
||||
"/auth/v4/info" respondWith "/auth/v4/info/info_base_placeholder.json" withStatusCode 200,
|
||||
"/auth/v4/sessions" respondWith "/auth/v4/sessions/sessions_base_placeholder.json" withStatusCode 200,
|
||||
"/core/v4/users" respondWith "/core/v4/users/users_base_placeholder.json" withStatusCode 200,
|
||||
"/core/v4/addresses" respondWith "/core/v4/addresses/addresses_base_placeholder.json" withStatusCode 200,
|
||||
"/core/v4/keys/salts" respondWith "/core/v4/keys/salts/salts_base_placeholder.json" withStatusCode 200,
|
||||
"/auth/v4/scopes" respondWith "/auth/v4/scopes/scopes_base_placeholder.json" withStatusCode 200
|
||||
)
|
||||
}
|
||||
|
||||
if (useDefaultCoreSettings) {
|
||||
addMockRequests(
|
||||
|
||||
@@ -1 +1 @@
|
||||
NETWORK_ASSETS_TARGET_REF=c4d46eb99cf2fa39cd3d7a4f87b0da4bba905db6
|
||||
NETWORK_ASSETS_TARGET_REF=ac7f69f3c188d3c8ed5a3992dd3e1ec2cff52a02
|
||||
|
||||
+16
-1
@@ -50,7 +50,7 @@ import okhttp3.mockwebserver.RecordedRequest
|
||||
* @Test
|
||||
* fun testCase() {
|
||||
* // Simple usage and definition of a custom dispatcher.
|
||||
* mockWebServer.dispatcher = MockNetworkDispatcher().apply {
|
||||
* mockWebServer.dispatcher extendWith MockNetworkDispatcher().apply {
|
||||
* addMockRequests(
|
||||
* "/api/v1/path" respondWith "/api/v1/localPath" withStatusCode 200,
|
||||
* "/api/v1/path2" respondWith "/api/v1/localPath2" withStatusCode 401
|
||||
@@ -70,6 +70,7 @@ class MockNetworkDispatcher(
|
||||
) : Dispatcher() {
|
||||
|
||||
private val knownRequests = mutableListOf<MockRequest>()
|
||||
val requestsList: List<MockRequest> = knownRequests
|
||||
|
||||
override fun dispatch(request: RecordedRequest): MockResponse {
|
||||
val remotePath = checkNotNull(request.path) {
|
||||
@@ -143,3 +144,17 @@ class MockNetworkDispatcher(
|
||||
private const val DefaultAssetsRootPath = "assets/network-mocks"
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Allows combining the current list of mocked requests with the one from another [MockNetworkDispatcher].
|
||||
*
|
||||
* @param dispatcher a [MockNetworkDispatcher] instance.
|
||||
*
|
||||
* @throws IllegalArgumentException if the receiver is not a [MockNetworkDispatcher].
|
||||
*/
|
||||
infix fun Dispatcher.combineWith(dispatcher: MockNetworkDispatcher) {
|
||||
require(this is MockNetworkDispatcher) {
|
||||
"Receiver needs to be a MockNetworkDispatcher instance."
|
||||
}
|
||||
addMockRequests(*dispatcher.requestsList.toTypedArray())
|
||||
}
|
||||
|
||||
+40
-2
@@ -19,6 +19,7 @@
|
||||
package ch.protonmail.android.networkmocks
|
||||
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.MockNetworkDispatcher
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.combineWith
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.MimeType
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.MockPriority
|
||||
import ch.protonmail.android.networkmocks.mockwebserver.requests.ignoreQueryParams
|
||||
@@ -228,7 +229,7 @@ internal class MockNetworkDispatcherTests {
|
||||
val firstExpectedStatusCode = 200
|
||||
val firstExpectedBody = """{ "a": 1 }"""
|
||||
val secondExpectedStatusCode = 500
|
||||
val secondExpectedBody = """{ "b" : 2 }"""
|
||||
val secondExpectedBody = """{ "b": 2 }"""
|
||||
|
||||
val request = buildRequest("api/v1/test")
|
||||
|
||||
@@ -247,7 +248,7 @@ internal class MockNetworkDispatcherTests {
|
||||
assertEquals(firstExpectedStatusCode, firstResponse.code)
|
||||
assertEquals(firstExpectedBody, firstResponse.body?.string())
|
||||
assertEquals(secondExpectedStatusCode, secondResponse.code)
|
||||
assertNotEquals(secondExpectedBody, secondResponse.body?.string())
|
||||
assertEquals(secondExpectedBody, secondResponse.body?.string())
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -312,6 +313,43 @@ internal class MockNetworkDispatcherTests {
|
||||
assertEquals(expectedBody, response.body?.string())
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `when the dispatcher is extended, then it contains all the requests and serves the additional definitions`() {
|
||||
// Given
|
||||
val firstExpectedStatusCode = 200
|
||||
val firstExpectedBody = """{ "a": 1 }"""
|
||||
val secondExpectedStatusCode = 200
|
||||
val secondExpectedBody = """{ "b": 2 }"""
|
||||
|
||||
val firstMockDefinition = "/api/v1/test1" respondWith "/api/v1/test_1.json" withStatusCode 200
|
||||
val secondMockDefinition = "/api/v1/test2" respondWith "/api/v1/test_2.json" withStatusCode 200
|
||||
|
||||
val request = buildRequest("api/v1/test1")
|
||||
val secondRequest = buildRequest("api/v1/test2")
|
||||
|
||||
mockWebServer.dispatcher = mockNetworkDispatcher {
|
||||
addMockRequests(firstMockDefinition)
|
||||
}
|
||||
|
||||
mockWebServer.dispatcher combineWith mockNetworkDispatcher {
|
||||
addMockRequests(secondMockDefinition)
|
||||
}
|
||||
|
||||
// When
|
||||
val firstResponse = runBlocking { performRequest(request) }
|
||||
val secondResponse = runBlocking { performRequest(secondRequest) }
|
||||
|
||||
// Then
|
||||
assertEquals(firstExpectedStatusCode, firstResponse.code)
|
||||
assertEquals(firstExpectedBody, firstResponse.body?.string())
|
||||
assertEquals(secondExpectedStatusCode, secondResponse.code)
|
||||
assertEquals(secondExpectedBody, secondResponse.body?.string())
|
||||
assertEquals(
|
||||
listOf(firstMockDefinition, secondMockDefinition),
|
||||
(mockWebServer.dispatcher as MockNetworkDispatcher).requestsList
|
||||
)
|
||||
}
|
||||
|
||||
private fun mockNetworkDispatcher(func: MockNetworkDispatcher.() -> Unit) =
|
||||
MockNetworkDispatcher(assetsRootPath = "assets/mock").apply(func)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user