diff --git a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/MockedNetworkTest.kt b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/MockedNetworkTest.kt
index d9791e448d..7d1e7a173c 100644
--- a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/MockedNetworkTest.kt
+++ b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/MockedNetworkTest.kt
@@ -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)
}
}
diff --git a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/composer/ComposerMainTests.kt b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/composer/ComposerMainTests.kt
index afeb9b8d0c..5b7e60d269 100644
--- a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/composer/ComposerMainTests.kt
+++ b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/composer/ComposerMainTests.kt
@@ -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)
diff --git a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/composer/chips/ComposerRecipientsChipsDeletionTests.kt b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/composer/chips/ComposerRecipientsChipsDeletionTests.kt
index 82a0806857..a343c76f0f 100644
--- a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/composer/chips/ComposerRecipientsChipsDeletionTests.kt
+++ b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/composer/chips/ComposerRecipientsChipsDeletionTests.kt
@@ -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) }
}
diff --git a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/composer/chips/ComposerRecipientsCollapsedChipsTests.kt b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/composer/chips/ComposerRecipientsCollapsedChipsTests.kt
index 1be1133575..4257f131e9 100644
--- a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/composer/chips/ComposerRecipientsCollapsedChipsTests.kt
+++ b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/composer/chips/ComposerRecipientsCollapsedChipsTests.kt
@@ -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) }
}
diff --git a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/composer/chips/ComposerRecipientsDuplicatedChipsTests.kt b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/composer/chips/ComposerRecipientsDuplicatedChipsTests.kt
index 8577e03d1c..2b6a8a0ecd 100644
--- a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/composer/chips/ComposerRecipientsDuplicatedChipsTests.kt
+++ b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/composer/chips/ComposerRecipientsDuplicatedChipsTests.kt
@@ -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) }
}
diff --git a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/composer/chips/ComposerRecipientsInvalidChipsTests.kt b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/composer/chips/ComposerRecipientsInvalidChipsTests.kt
index 36097c2f8c..5e0364ecb0 100644
--- a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/composer/chips/ComposerRecipientsInvalidChipsTests.kt
+++ b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/composer/chips/ComposerRecipientsInvalidChipsTests.kt
@@ -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) }
}
diff --git a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/composer/chips/ComposerRecipientsValidChipsTests.kt b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/composer/chips/ComposerRecipientsValidChipsTests.kt
index 96f3f1b3b0..2b2ebb242a 100644
--- a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/composer/chips/ComposerRecipientsValidChipsTests.kt
+++ b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/composer/chips/ComposerRecipientsValidChipsTests.kt
@@ -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) }
}
diff --git a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/composer/drafts/ComposerDraftsMainTests.kt b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/composer/drafts/ComposerDraftsMainTests.kt
index 625b30a4e1..cd0c517a25 100644
--- a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/composer/drafts/ComposerDraftsMainTests.kt
+++ b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/composer/drafts/ComposerDraftsMainTests.kt
@@ -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) }
}
diff --git a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/ConversationMarkAsReadTests.kt b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/ConversationMarkAsReadTests.kt
index 1224b047e1..0912c81765 100644
--- a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/ConversationMarkAsReadTests.kt
+++ b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/ConversationMarkAsReadTests.kt
@@ -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"
diff --git a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/MailboxFlowTest.kt b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/MailboxFlowTest.kt
index 6fb0495688..e99c67262b 100644
--- a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/MailboxFlowTest.kt
+++ b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/MailboxFlowTest.kt
@@ -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) }
}
diff --git a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/MailboxParticipantsTest.kt b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/MailboxParticipantsTest.kt
index 249d90bfdb..8dcbb2bd4b 100644
--- a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/MailboxParticipantsTest.kt
+++ b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/MailboxParticipantsTest.kt
@@ -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"
diff --git a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/MailboxSwitchTests.kt b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/MailboxSwitchTests.kt
index 2315194908..b09854cdc1 100644
--- a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/MailboxSwitchTests.kt
+++ b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/MailboxSwitchTests.kt
@@ -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"
diff --git a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/MessageLoadingTests.kt b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/MessageLoadingTests.kt
index 13f7e05a18..3d76eb71d5 100644
--- a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/MessageLoadingTests.kt
+++ b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/MessageLoadingTests.kt
@@ -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"
diff --git a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/allmail/AllMailMailboxFolderColorsTests.kt b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/allmail/AllMailMailboxFolderColorsTests.kt
index d02ba5500e..2a7dab90c3 100644
--- a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/allmail/AllMailMailboxFolderColorsTests.kt
+++ b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/allmail/AllMailMailboxFolderColorsTests.kt
@@ -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
) {
diff --git a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bodycontent/ConversationDetailHtmlSanitizationTests.kt b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bodycontent/ConversationDetailHtmlSanitizationTests.kt
index edc6a10ccc..ce58f6f0a3 100644
--- a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bodycontent/ConversationDetailHtmlSanitizationTests.kt
+++ b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bodycontent/ConversationDetailHtmlSanitizationTests.kt
@@ -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"
diff --git a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bodycontent/ConversationDetailRemoteContentTests.kt b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bodycontent/ConversationDetailRemoteContentTests.kt
index 3cd76cacc9..53821be84f 100644
--- a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bodycontent/ConversationDetailRemoteContentTests.kt
+++ b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bodycontent/ConversationDetailRemoteContentTests.kt
@@ -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"
diff --git a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bodycontent/MessageDetailHtmlSanitizationTests.kt b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bodycontent/MessageDetailHtmlSanitizationTests.kt
index 557a1ede10..e84a1e70cb 100644
--- a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bodycontent/MessageDetailHtmlSanitizationTests.kt
+++ b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bodycontent/MessageDetailHtmlSanitizationTests.kt
@@ -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"
diff --git a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bodycontent/MessageDetailRemoteContentTests.kt b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bodycontent/MessageDetailRemoteContentTests.kt
index 82598b0a00..0144df6c47 100644
--- a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bodycontent/MessageDetailRemoteContentTests.kt
+++ b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bodycontent/MessageDetailRemoteContentTests.kt
@@ -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"
diff --git a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bottomsheet/labelas/ConversationDetailMoveToBottomSheetDismissalTests.kt b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bottomsheet/labelas/ConversationDetailMoveToBottomSheetDismissalTests.kt
index d411e42017..e44ea150d9 100644
--- a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bottomsheet/labelas/ConversationDetailMoveToBottomSheetDismissalTests.kt
+++ b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bottomsheet/labelas/ConversationDetailMoveToBottomSheetDismissalTests.kt
@@ -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"
diff --git a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bottomsheet/labelas/MessageDetailLabelAsBottomSheetDismissalTests.kt b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bottomsheet/labelas/MessageDetailLabelAsBottomSheetDismissalTests.kt
index 3ac9849fef..b046c95a6d 100644
--- a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bottomsheet/labelas/MessageDetailLabelAsBottomSheetDismissalTests.kt
+++ b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bottomsheet/labelas/MessageDetailLabelAsBottomSheetDismissalTests.kt
@@ -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"
diff --git a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bottomsheet/moveto/ConversationDetailLabelAsBottomSheetDismissalTests.kt b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bottomsheet/moveto/ConversationDetailLabelAsBottomSheetDismissalTests.kt
index bb5683c4ff..164a39b5b8 100644
--- a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bottomsheet/moveto/ConversationDetailLabelAsBottomSheetDismissalTests.kt
+++ b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bottomsheet/moveto/ConversationDetailLabelAsBottomSheetDismissalTests.kt
@@ -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"
diff --git a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bottomsheet/moveto/ConversationDetailMoveToBottomSheetMainTests.kt b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bottomsheet/moveto/ConversationDetailMoveToBottomSheetMainTests.kt
index 1eacafb604..6b710b8384 100644
--- a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bottomsheet/moveto/ConversationDetailMoveToBottomSheetMainTests.kt
+++ b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bottomsheet/moveto/ConversationDetailMoveToBottomSheetMainTests.kt
@@ -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"
diff --git a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bottomsheet/moveto/DetailMoveToBottomSheetActionTests.kt b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bottomsheet/moveto/DetailMoveToBottomSheetActionTests.kt
index 4a2f876119..e63a3b5038 100644
--- a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bottomsheet/moveto/DetailMoveToBottomSheetActionTests.kt
+++ b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bottomsheet/moveto/DetailMoveToBottomSheetActionTests.kt
@@ -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
diff --git a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bottomsheet/moveto/DetailMoveToBottomSheetLabelsTests.kt b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bottomsheet/moveto/DetailMoveToBottomSheetLabelsTests.kt
index 125d7562a0..519f2d10ea 100644
--- a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bottomsheet/moveto/DetailMoveToBottomSheetLabelsTests.kt
+++ b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bottomsheet/moveto/DetailMoveToBottomSheetLabelsTests.kt
@@ -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"
diff --git a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bottomsheet/moveto/DetailMoveToBottomSheetMainTests.kt b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bottomsheet/moveto/DetailMoveToBottomSheetMainTests.kt
index 39bf9046f2..669309c145 100644
--- a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bottomsheet/moveto/DetailMoveToBottomSheetMainTests.kt
+++ b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bottomsheet/moveto/DetailMoveToBottomSheetMainTests.kt
@@ -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
) {
diff --git a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bottomsheet/moveto/MessageDetailMoveToBottomSheetDismissalTests.kt b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bottomsheet/moveto/MessageDetailMoveToBottomSheetDismissalTests.kt
index a8a66c8f99..78812f0163 100644
--- a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bottomsheet/moveto/MessageDetailMoveToBottomSheetDismissalTests.kt
+++ b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bottomsheet/moveto/MessageDetailMoveToBottomSheetDismissalTests.kt
@@ -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"
diff --git a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bottomsheet/moveto/MessageDetailMoveToBottomSheetMainTests.kt b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bottomsheet/moveto/MessageDetailMoveToBottomSheetMainTests.kt
index 7a236084e9..653d42f72f 100644
--- a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bottomsheet/moveto/MessageDetailMoveToBottomSheetMainTests.kt
+++ b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/detail/bottomsheet/moveto/MessageDetailMoveToBottomSheetMainTests.kt
@@ -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"
diff --git a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/drafts/DraftsMailboxTests.kt b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/drafts/DraftsMailboxTests.kt
index c7b730537e..1694938aa2 100644
--- a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/drafts/DraftsMailboxTests.kt
+++ b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/drafts/DraftsMailboxTests.kt
@@ -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"
diff --git a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/errors/append/ConversationModeAppendItemsTests.kt b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/errors/append/ConversationModeAppendItemsTests.kt
index c0109a44e7..015ac367b4 100644
--- a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/errors/append/ConversationModeAppendItemsTests.kt
+++ b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/errors/append/ConversationModeAppendItemsTests.kt
@@ -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"
diff --git a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/errors/append/MessageModeAppendItemsTests.kt b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/errors/append/MessageModeAppendItemsTests.kt
index e03c12a35b..a9df241f97 100644
--- a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/errors/append/MessageModeAppendItemsTests.kt
+++ b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/errors/append/MessageModeAppendItemsTests.kt
@@ -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"
diff --git a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/errors/pulltorefresh/ConversationModeMailboxPullToRefreshErrorTests.kt b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/errors/pulltorefresh/ConversationModeMailboxPullToRefreshErrorTests.kt
index 5dbb8eb1e1..5a80c23d0f 100644
--- a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/errors/pulltorefresh/ConversationModeMailboxPullToRefreshErrorTests.kt
+++ b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/errors/pulltorefresh/ConversationModeMailboxPullToRefreshErrorTests.kt
@@ -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"
diff --git a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/errors/pulltorefresh/MessageModeMailboxPullToRefreshErrorTests.kt b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/errors/pulltorefresh/MessageModeMailboxPullToRefreshErrorTests.kt
index dd69fc67f3..5b29fd2e90 100644
--- a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/errors/pulltorefresh/MessageModeMailboxPullToRefreshErrorTests.kt
+++ b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/mailbox/errors/pulltorefresh/MessageModeMailboxPullToRefreshErrorTests.kt
@@ -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"
diff --git a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/menu/SidebarMenuFoldersTests.kt b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/menu/SidebarMenuFoldersTests.kt
index 78ae811f9e..6efb6e6ba3 100644
--- a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/menu/SidebarMenuFoldersTests.kt
+++ b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/menu/SidebarMenuFoldersTests.kt
@@ -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
) {
diff --git a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/settings/SettingsFlowTest.kt b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/settings/SettingsFlowTest.kt
index fbcc513a13..af875d326d 100644
--- a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/settings/SettingsFlowTest.kt
+++ b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/e2e/settings/SettingsFlowTest.kt
@@ -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) }
}
diff --git a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/helpers/login/LoginStrategy.kt b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/helpers/login/LoginTestUserTypes.kt
similarity index 52%
rename from app/src/uiTest/kotlin/ch/protonmail/android/uitest/helpers/login/LoginStrategy.kt
rename to app/src/uiTest/kotlin/ch/protonmail/android/uitest/helpers/login/LoginTestUserTypes.kt
index 217e5fe508..eea94715ab 100644
--- a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/helpers/login/LoginStrategy.kt
+++ b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/helpers/login/LoginTestUserTypes.kt
@@ -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")
+ }
}
diff --git a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/helpers/login/LoginType.kt b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/helpers/login/LoginType.kt
new file mode 100644
index 0000000000..27d7a23124
--- /dev/null
+++ b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/helpers/login/LoginType.kt
@@ -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 .
+ */
+
+package ch.protonmail.android.uitest.helpers.login
+
+sealed class LoginType {
+
+ class LoggedIn(val id: String) : LoginType()
+ object LoggedOut : LoginType()
+}
diff --git a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/helpers/network/AuthenticationDispatcher.kt b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/helpers/network/AuthenticationDispatcher.kt
new file mode 100644
index 0000000000..0099610011
--- /dev/null
+++ b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/helpers/network/AuthenticationDispatcher.kt
@@ -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 .
+ */
+
+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
+ )
+}
diff --git a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/helpers/network/DefaultNetworkDispatcher.kt b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/helpers/network/DefaultNetworkDispatcher.kt
index c4219047a9..cdd074ebec 100644
--- a/app/src/uiTest/kotlin/ch/protonmail/android/uitest/helpers/network/DefaultNetworkDispatcher.kt
+++ b/app/src/uiTest/kotlin/ch/protonmail/android/uitest/helpers/network/DefaultNetworkDispatcher.kt
@@ -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(
diff --git a/scripts/uitests/AssetsFile.lock b/scripts/uitests/AssetsFile.lock
index 1df472f3ed..195428f025 100644
--- a/scripts/uitests/AssetsFile.lock
+++ b/scripts/uitests/AssetsFile.lock
@@ -1 +1 @@
-NETWORK_ASSETS_TARGET_REF=c4d46eb99cf2fa39cd3d7a4f87b0da4bba905db6
+NETWORK_ASSETS_TARGET_REF=ac7f69f3c188d3c8ed5a3992dd3e1ec2cff52a02
diff --git a/test/network-mocks/src/main/kotlin/ch/protonmail/android/networkmocks/mockwebserver/MockNetworkDispatcher.kt b/test/network-mocks/src/main/kotlin/ch/protonmail/android/networkmocks/mockwebserver/MockNetworkDispatcher.kt
index 284336baf6..9272686c49 100644
--- a/test/network-mocks/src/main/kotlin/ch/protonmail/android/networkmocks/mockwebserver/MockNetworkDispatcher.kt
+++ b/test/network-mocks/src/main/kotlin/ch/protonmail/android/networkmocks/mockwebserver/MockNetworkDispatcher.kt
@@ -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()
+ val requestsList: List = 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())
+}
diff --git a/test/network-mocks/src/test/kotlin/ch/protonmail/android/networkmocks/MockNetworkDispatcherTests.kt b/test/network-mocks/src/test/kotlin/ch/protonmail/android/networkmocks/MockNetworkDispatcherTests.kt
index fed2e5d151..c74802f9f1 100644
--- a/test/network-mocks/src/test/kotlin/ch/protonmail/android/networkmocks/MockNetworkDispatcherTests.kt
+++ b/test/network-mocks/src/test/kotlin/ch/protonmail/android/networkmocks/MockNetworkDispatcherTests.kt
@@ -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)