mirror of
https://github.com/bitwarden/android.git
synced 2025-12-12 00:08:00 -06:00
[PM-21703] Consolidate Robolectric and Compose test base classes (#5210)
This commit is contained in:
parent
28149532a0
commit
f02a3a249b
@ -2,13 +2,13 @@ package com.x8bit.bitwarden.data.auth.repository.util
|
||||
|
||||
import android.content.Intent
|
||||
import android.net.Uri
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import io.mockk.every
|
||||
import io.mockk.mockk
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Test
|
||||
|
||||
class CaptchaUtilsTest : BaseComposeTest() {
|
||||
class CaptchaUtilsTest : BitwardenComposeTest() {
|
||||
|
||||
@Test
|
||||
fun `generateIntentForCaptcha should return valid Uri`() {
|
||||
|
||||
@ -2,14 +2,14 @@ package com.x8bit.bitwarden.data.auth.repository.util
|
||||
|
||||
import android.content.Intent
|
||||
import android.net.Uri
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import io.mockk.every
|
||||
import io.mockk.mockk
|
||||
import kotlinx.serialization.json.JsonObject
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Test
|
||||
|
||||
class WebAuthUtilsTest : BaseComposeTest() {
|
||||
class WebAuthUtilsTest : BitwardenComposeTest() {
|
||||
|
||||
@Test
|
||||
fun `generateUriForWebAuth should return valid Uri`() {
|
||||
|
||||
@ -3,7 +3,7 @@ package com.x8bit.bitwarden.data.platform.base.util
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import com.bitwarden.ui.platform.feature.settings.appearance.model.AppTheme
|
||||
import com.bitwarden.ui.platform.theme.BitwardenTheme
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.util.isLightOverlayRequired
|
||||
import com.x8bit.bitwarden.ui.platform.base.util.toSafeOverlayColor
|
||||
import org.junit.Assert.assertEquals
|
||||
@ -11,7 +11,7 @@ import org.junit.Assert.assertFalse
|
||||
import org.junit.Assert.assertTrue
|
||||
import org.junit.Test
|
||||
|
||||
class ColorExtensionsTest : BaseComposeTest() {
|
||||
class ColorExtensionsTest : BitwardenComposeTest() {
|
||||
@Suppress("MaxLineLength")
|
||||
@Test
|
||||
fun `isLightOverlayRequired for a color with luminance below the light threshold should return true`() {
|
||||
|
||||
@ -10,7 +10,7 @@ import androidx.compose.ui.test.onNodeWithText
|
||||
import androidx.compose.ui.test.performClick
|
||||
import androidx.compose.ui.test.performScrollTo
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager
|
||||
import com.x8bit.bitwarden.ui.util.assertNoDialogExists
|
||||
import io.mockk.every
|
||||
@ -22,7 +22,7 @@ import kotlinx.coroutines.flow.update
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
class SetupAutofillScreenTest : BaseComposeTest() {
|
||||
class SetupAutofillScreenTest : BitwardenComposeTest() {
|
||||
private var onNavigateBackCalled = false
|
||||
|
||||
private val mutableEventFlow = bufferedMutableSharedFlow<SetupAutoFillEvent>()
|
||||
|
||||
@ -3,13 +3,13 @@ package com.x8bit.bitwarden.ui.auth.feature.accountsetup
|
||||
import androidx.compose.ui.test.onNodeWithText
|
||||
import androidx.compose.ui.test.performClick
|
||||
import androidx.compose.ui.test.performScrollTo
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import io.mockk.mockk
|
||||
import io.mockk.verify
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
class SetupCompleteScreenTest : BaseComposeTest() {
|
||||
class SetupCompleteScreenTest : BitwardenComposeTest() {
|
||||
|
||||
private val viewModel = mockk<SetupCompleteViewModel>(relaxed = true)
|
||||
|
||||
|
||||
@ -16,7 +16,7 @@ import androidx.compose.ui.test.performScrollTo
|
||||
import androidx.compose.ui.test.performTextInput
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.components.toggle.UnlockWithPinState
|
||||
import com.x8bit.bitwarden.ui.platform.manager.biometrics.BiometricSupportStatus
|
||||
import com.x8bit.bitwarden.ui.platform.manager.biometrics.BiometricsManager
|
||||
@ -35,7 +35,7 @@ import org.junit.Test
|
||||
import org.robolectric.annotation.Config
|
||||
import javax.crypto.Cipher
|
||||
|
||||
class SetupUnlockScreenTest : BaseComposeTest() {
|
||||
class SetupUnlockScreenTest : BitwardenComposeTest() {
|
||||
private var onNavigateBackCalled = false
|
||||
private val captureBiometricsSuccess = slot<(cipher: Cipher?) -> Unit>()
|
||||
private val captureBiometricsCancel = slot<() -> Unit>()
|
||||
|
||||
@ -5,7 +5,7 @@ import androidx.compose.ui.test.onNodeWithText
|
||||
import androidx.compose.ui.test.performClick
|
||||
import androidx.compose.ui.test.performScrollTo
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager
|
||||
import io.mockk.every
|
||||
import io.mockk.just
|
||||
@ -17,7 +17,7 @@ import org.junit.Assert.assertTrue
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
class CheckEmailScreenTest : BaseComposeTest() {
|
||||
class CheckEmailScreenTest : BitwardenComposeTest() {
|
||||
private val intentManager = mockk<IntentManager>(relaxed = true) {
|
||||
every { startDefaultEmailApplication() } just runs
|
||||
}
|
||||
|
||||
@ -25,7 +25,7 @@ import com.x8bit.bitwarden.ui.auth.feature.completeregistration.CompleteRegistra
|
||||
import com.x8bit.bitwarden.ui.auth.feature.completeregistration.CompleteRegistrationAction.ErrorDialogDismiss
|
||||
import com.x8bit.bitwarden.ui.auth.feature.completeregistration.CompleteRegistrationAction.PasswordHintChange
|
||||
import com.x8bit.bitwarden.ui.auth.feature.completeregistration.CompleteRegistrationAction.PasswordInputChange
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import io.mockk.every
|
||||
import io.mockk.just
|
||||
import io.mockk.mockk
|
||||
@ -38,7 +38,7 @@ import org.junit.Before
|
||||
import org.junit.Test
|
||||
import org.robolectric.annotation.Config
|
||||
|
||||
class CompleteRegistrationScreenTest : BaseComposeTest() {
|
||||
class CompleteRegistrationScreenTest : BitwardenComposeTest() {
|
||||
|
||||
private var onNavigateBackCalled = false
|
||||
private var onNavigateToPreventAccountLockoutCalled = false
|
||||
|
||||
@ -2,10 +2,10 @@ package com.x8bit.bitwarden.ui.auth.feature.completeregistration
|
||||
|
||||
import androidx.compose.ui.test.assertIsDisplayed
|
||||
import androidx.compose.ui.test.onNodeWithText
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import org.junit.Test
|
||||
|
||||
class PasswordStrengthIndicatorTest : BaseComposeTest() {
|
||||
class PasswordStrengthIndicatorTest : BitwardenComposeTest() {
|
||||
|
||||
@Suppress("MaxLineLength")
|
||||
@Test
|
||||
|
||||
@ -27,7 +27,7 @@ import com.x8bit.bitwarden.ui.auth.feature.createaccount.CreateAccountAction.Ema
|
||||
import com.x8bit.bitwarden.ui.auth.feature.createaccount.CreateAccountAction.PasswordHintChange
|
||||
import com.x8bit.bitwarden.ui.auth.feature.createaccount.CreateAccountAction.PasswordInputChange
|
||||
import com.x8bit.bitwarden.ui.auth.feature.createaccount.CreateAccountAction.SubmitClick
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager
|
||||
import com.x8bit.bitwarden.ui.util.performCustomAccessibilityAction
|
||||
import io.mockk.every
|
||||
@ -41,7 +41,7 @@ import org.junit.Assert.assertTrue
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
class CreateAccountScreenTest : BaseComposeTest() {
|
||||
class CreateAccountScreenTest : BitwardenComposeTest() {
|
||||
|
||||
private var onNavigateBackCalled = false
|
||||
private var onNavigateToLoginCalled = false
|
||||
|
||||
@ -14,7 +14,7 @@ import androidx.compose.ui.test.performClick
|
||||
import androidx.compose.ui.test.performTextInput
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager
|
||||
import com.x8bit.bitwarden.ui.util.assertNoDialogExists
|
||||
import io.mockk.every
|
||||
@ -29,7 +29,7 @@ import org.junit.Before
|
||||
import org.junit.Test
|
||||
import org.junit.jupiter.api.Assertions.assertEquals
|
||||
|
||||
class EnterpriseSignOnScreenTest : BaseComposeTest() {
|
||||
class EnterpriseSignOnScreenTest : BitwardenComposeTest() {
|
||||
private var onNavigateBackCalled = false
|
||||
private var onNavigateToSetPasswordCalled = false
|
||||
private var onNavigateToTwoFactorLoginEmailAndOrgIdentifier: Pair<String, String>? = null
|
||||
|
||||
@ -15,7 +15,7 @@ import androidx.compose.ui.test.performTextInput
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.ui.auth.feature.environment.EnvironmentState.DialogState
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager
|
||||
import com.x8bit.bitwarden.ui.platform.manager.keychain.KeyChainManager
|
||||
import com.x8bit.bitwarden.ui.platform.manager.keychain.model.PrivateKeyAliasSelectionResult
|
||||
@ -30,7 +30,7 @@ import org.junit.Assert.assertTrue
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
class EnvironmentScreenTest : BaseComposeTest() {
|
||||
class EnvironmentScreenTest : BitwardenComposeTest() {
|
||||
private var onNavigateBackCalled = false
|
||||
private val mutableEventFlow = bufferedMutableSharedFlow<EnvironmentEvent>()
|
||||
private val mutableStateFlow = MutableStateFlow(DEFAULT_STATE)
|
||||
|
||||
@ -4,7 +4,7 @@ import androidx.compose.ui.test.onNodeWithContentDescription
|
||||
import androidx.compose.ui.test.onNodeWithText
|
||||
import androidx.compose.ui.test.performClick
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import io.mockk.every
|
||||
import io.mockk.mockk
|
||||
import io.mockk.verify
|
||||
@ -12,7 +12,7 @@ import org.junit.Assert.assertTrue
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
class ExpiredRegistrationLinkScreenTest : BaseComposeTest() {
|
||||
class ExpiredRegistrationLinkScreenTest : BitwardenComposeTest() {
|
||||
|
||||
private var onNavigateBackCalled = false
|
||||
private var onNavigateToLoginCalled = false
|
||||
|
||||
@ -19,7 +19,7 @@ import androidx.compose.ui.test.performTextInput
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.bitwarden.data.repository.model.Environment
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.components.model.AccountSummary
|
||||
import com.x8bit.bitwarden.ui.util.assertLockOrLogoutDialogIsDisplayed
|
||||
import com.x8bit.bitwarden.ui.util.assertLogoutConfirmationDialogIsDisplayed
|
||||
@ -44,7 +44,7 @@ import org.junit.Test
|
||||
import org.junit.jupiter.api.Assertions.assertEquals
|
||||
import org.junit.jupiter.api.Assertions.assertTrue
|
||||
|
||||
class LandingScreenTest : BaseComposeTest() {
|
||||
class LandingScreenTest : BitwardenComposeTest() {
|
||||
private var capturedEmail: String? = null
|
||||
private var onNavigateToCreateAccountCalled = false
|
||||
private var onNavigateToLoginCalled = false
|
||||
|
||||
@ -15,7 +15,7 @@ import androidx.compose.ui.test.performClick
|
||||
import androidx.compose.ui.test.performScrollTo
|
||||
import androidx.compose.ui.test.performTextInput
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.components.model.AccountSummary
|
||||
import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager
|
||||
import com.x8bit.bitwarden.ui.util.assertLockOrLogoutDialogIsDisplayed
|
||||
@ -43,7 +43,7 @@ import kotlinx.coroutines.flow.update
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
class LoginScreenTest : BaseComposeTest() {
|
||||
class LoginScreenTest : BitwardenComposeTest() {
|
||||
private val keyboardController: SoftwareKeyboardController = mockk {
|
||||
every { hide() } just runs
|
||||
}
|
||||
|
||||
@ -14,7 +14,7 @@ import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.R
|
||||
import com.x8bit.bitwarden.ui.auth.feature.loginwithdevice.model.LoginWithDeviceType
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager
|
||||
import com.x8bit.bitwarden.ui.util.assertNoDialogExists
|
||||
import com.x8bit.bitwarden.ui.util.isProgressBar
|
||||
@ -30,7 +30,7 @@ import org.junit.Assert.assertTrue
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
class LoginWithDeviceScreenTest : BaseComposeTest() {
|
||||
class LoginWithDeviceScreenTest : BitwardenComposeTest() {
|
||||
private var onNavigateBackCalled = false
|
||||
private var onNavigateToTwoFactorLoginEmail: String? = null
|
||||
|
||||
|
||||
@ -6,7 +6,7 @@ import androidx.compose.ui.test.onNodeWithText
|
||||
import androidx.compose.ui.test.performClick
|
||||
import androidx.compose.ui.test.performScrollTo
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import io.mockk.every
|
||||
import io.mockk.mockk
|
||||
import io.mockk.verify
|
||||
@ -17,7 +17,7 @@ import org.junit.Assert.assertTrue
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
class MasterPasswordGeneratorScreenTest : BaseComposeTest() {
|
||||
class MasterPasswordGeneratorScreenTest : BitwardenComposeTest() {
|
||||
private var onNavigateBackCalled = false
|
||||
private var onNavigateToPreventLockoutCalled = false
|
||||
private var navigateBackWithPasswordCalled = false
|
||||
|
||||
@ -5,7 +5,7 @@ import androidx.compose.ui.test.onNodeWithText
|
||||
import androidx.compose.ui.test.performClick
|
||||
import androidx.compose.ui.test.performScrollTo
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import io.mockk.every
|
||||
import io.mockk.mockk
|
||||
import io.mockk.verify
|
||||
@ -14,7 +14,7 @@ import org.junit.Assert.assertTrue
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
class MasterPasswordGuidanceScreenTest : BaseComposeTest() {
|
||||
class MasterPasswordGuidanceScreenTest : BitwardenComposeTest() {
|
||||
|
||||
private var onNavigateBackCalled = false
|
||||
private var onNavigateToGeneratorCalled = false
|
||||
|
||||
@ -6,7 +6,7 @@ import androidx.compose.ui.test.performClick
|
||||
import androidx.compose.ui.test.performTextReplacement
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.util.assertNoDialogExists
|
||||
import io.mockk.every
|
||||
import io.mockk.mockk
|
||||
@ -16,7 +16,7 @@ import org.junit.Assert.assertTrue
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
class MasterPasswordHintScreenTest : BaseComposeTest() {
|
||||
class MasterPasswordHintScreenTest : BitwardenComposeTest() {
|
||||
|
||||
private var onNavigateBackCalled = false
|
||||
private val mutableEventFlow = bufferedMutableSharedFlow<MasterPasswordHintEvent>()
|
||||
|
||||
@ -3,7 +3,7 @@ package com.x8bit.bitwarden.ui.auth.feature.preventaccountlockout
|
||||
import androidx.compose.ui.test.onNodeWithContentDescription
|
||||
import androidx.compose.ui.test.performClick
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import io.mockk.every
|
||||
import io.mockk.mockk
|
||||
import io.mockk.verify
|
||||
@ -11,7 +11,7 @@ import org.junit.Assert.assertTrue
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
class PreventAccountLockoutScreenTest : BaseComposeTest() {
|
||||
class PreventAccountLockoutScreenTest : BitwardenComposeTest() {
|
||||
private var onBackHasBeenInvoked = false
|
||||
private val mutableEventFlow = bufferedMutableSharedFlow<PreventAccountLockoutEvent>()
|
||||
private val viewModel = mockk<PreventAccountLockoutViewModel>(relaxed = true) {
|
||||
|
||||
@ -15,7 +15,7 @@ import androidx.compose.ui.test.performScrollTo
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.R
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.util.assertNoDialogExists
|
||||
import io.mockk.every
|
||||
import io.mockk.just
|
||||
@ -27,7 +27,7 @@ import kotlinx.coroutines.flow.update
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
class RemovePasswordScreenTest : BaseComposeTest() {
|
||||
class RemovePasswordScreenTest : BitwardenComposeTest() {
|
||||
private val mutableStateFlow = MutableStateFlow(DEFAULT_STATE)
|
||||
val viewModel = mockk<RemovePasswordViewModel>(relaxed = true) {
|
||||
every { eventFlow } returns bufferedMutableSharedFlow()
|
||||
|
||||
@ -20,7 +20,7 @@ import com.x8bit.bitwarden.ui.auth.feature.resetpassword.ResetPasswordEvent
|
||||
import com.x8bit.bitwarden.ui.auth.feature.resetpassword.ResetPasswordScreen
|
||||
import com.x8bit.bitwarden.ui.auth.feature.resetpassword.ResetPasswordState
|
||||
import com.x8bit.bitwarden.ui.auth.feature.resetpassword.ResetPasswordViewModel
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.util.assertNoDialogExists
|
||||
import com.x8bit.bitwarden.ui.util.performCustomAccessibilityAction
|
||||
import io.mockk.every
|
||||
@ -32,7 +32,7 @@ import org.junit.Assert.assertTrue
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
class ResetPasswordScreenTest : BaseComposeTest() {
|
||||
class ResetPasswordScreenTest : BitwardenComposeTest() {
|
||||
private var onNavigateToLearnToPreventLockoutCalled = false
|
||||
private val mutableEventFlow = bufferedMutableSharedFlow<ResetPasswordEvent>()
|
||||
private val mutableStateFlow = MutableStateFlow(DEFAULT_STATE)
|
||||
|
||||
@ -11,7 +11,7 @@ import androidx.compose.ui.test.performClick
|
||||
import androidx.compose.ui.test.performTextInput
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.util.assertNoDialogExists
|
||||
import io.mockk.every
|
||||
import io.mockk.mockk
|
||||
@ -21,7 +21,7 @@ import kotlinx.coroutines.flow.update
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
class SetPasswordScreenTest : BaseComposeTest() {
|
||||
class SetPasswordScreenTest : BitwardenComposeTest() {
|
||||
private val mutableEventFlow = bufferedMutableSharedFlow<SetPasswordEvent>()
|
||||
private val mutableStateFlow = MutableStateFlow(DEFAULT_STATE)
|
||||
val viewModel = mockk<SetPasswordViewModel>(relaxed = true) {
|
||||
|
||||
@ -17,7 +17,7 @@ import com.bitwarden.data.repository.model.Environment
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.ui.auth.feature.startregistration.StartRegistrationAction.CloseClick
|
||||
import com.x8bit.bitwarden.ui.auth.feature.startregistration.StartRegistrationAction.EmailInputChange
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager
|
||||
import com.x8bit.bitwarden.ui.util.performCustomAccessibilityAction
|
||||
import io.mockk.every
|
||||
@ -31,7 +31,7 @@ import org.junit.Assert.assertTrue
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
class StartRegistrationScreenTest : BaseComposeTest() {
|
||||
class StartRegistrationScreenTest : BitwardenComposeTest() {
|
||||
|
||||
private var onNavigateBackCalled = false
|
||||
private var onNavigateToCompleteRegistrationCalled = false
|
||||
|
||||
@ -12,7 +12,7 @@ import androidx.compose.ui.test.performClick
|
||||
import androidx.compose.ui.test.performScrollTo
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.util.assertNoDialogExists
|
||||
import io.mockk.every
|
||||
import io.mockk.mockk
|
||||
@ -23,7 +23,7 @@ import org.junit.Assert.assertEquals
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
class TrustedDeviceScreenTest : BaseComposeTest() {
|
||||
class TrustedDeviceScreenTest : BitwardenComposeTest() {
|
||||
|
||||
private var onNavigateToAdminApprovalEmail: String? = null
|
||||
private var onNavigateToLoginWithOtherDeviceEmail: String? = null
|
||||
|
||||
@ -17,7 +17,7 @@ import androidx.compose.ui.test.performTextInput
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.bitwarden.network.model.TwoFactorAuthMethod
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager
|
||||
import com.x8bit.bitwarden.ui.platform.manager.nfc.NfcManager
|
||||
import io.mockk.every
|
||||
@ -31,7 +31,7 @@ import kotlinx.coroutines.flow.update
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
class TwoFactorLoginScreenTest : BaseComposeTest() {
|
||||
class TwoFactorLoginScreenTest : BitwardenComposeTest() {
|
||||
private val intentManager = mockk<IntentManager>(relaxed = true) {
|
||||
every { launchUri(any()) } just runs
|
||||
}
|
||||
|
||||
@ -26,7 +26,7 @@ import com.x8bit.bitwarden.data.util.advanceTimeByAndRunCurrent
|
||||
import com.x8bit.bitwarden.ui.credentials.manager.CredentialProviderCompletionManager
|
||||
import com.x8bit.bitwarden.ui.credentials.manager.model.AssertFido2CredentialResult
|
||||
import com.x8bit.bitwarden.ui.credentials.manager.model.GetCredentialsResult
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.components.model.AccountSummary
|
||||
import com.x8bit.bitwarden.ui.platform.manager.biometrics.BiometricsManager
|
||||
import com.x8bit.bitwarden.ui.util.assertLockOrLogoutDialogIsDisplayed
|
||||
@ -56,7 +56,7 @@ import org.junit.Before
|
||||
import org.junit.Test
|
||||
import javax.crypto.Cipher
|
||||
|
||||
class VaultUnlockScreenTest : BaseComposeTest() {
|
||||
class VaultUnlockScreenTest : BitwardenComposeTest() {
|
||||
|
||||
private val mutableEventFlow = bufferedMutableSharedFlow<VaultUnlockEvent>()
|
||||
private val mutableStateFlow = MutableStateFlow(DEFAULT_STATE)
|
||||
|
||||
@ -4,7 +4,7 @@ import androidx.compose.ui.test.assertIsDisplayed
|
||||
import androidx.compose.ui.test.onNodeWithText
|
||||
import androidx.compose.ui.test.performClick
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import io.mockk.every
|
||||
import io.mockk.mockk
|
||||
import io.mockk.verify
|
||||
@ -15,7 +15,7 @@ import org.junit.Test
|
||||
import org.junit.jupiter.api.Assertions.assertTrue
|
||||
import org.robolectric.annotation.Config
|
||||
|
||||
class WelcomeScreenTest : BaseComposeTest() {
|
||||
class WelcomeScreenTest : BitwardenComposeTest() {
|
||||
private var onNavigateToStartRegistrationCalled = false
|
||||
private var onNavigateToCreateAccountCalled = false
|
||||
private var onNavigateToLoginCalled = false
|
||||
|
||||
@ -1,10 +1,7 @@
|
||||
package com.x8bit.bitwarden.ui.platform.base
|
||||
|
||||
import androidx.activity.OnBackPressedDispatcher
|
||||
import androidx.activity.compose.LocalOnBackPressedDispatcherOwner
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.test.ExperimentalTestApi
|
||||
import androidx.compose.ui.test.junit4.createComposeRule
|
||||
import com.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.bitwarden.ui.platform.feature.settings.appearance.model.AppTheme
|
||||
import com.bitwarden.ui.platform.theme.BitwardenTheme
|
||||
import com.x8bit.bitwarden.data.platform.manager.util.AppResumeStateManager
|
||||
@ -19,27 +16,8 @@ import com.x8bit.bitwarden.ui.platform.manager.permissions.PermissionsManager
|
||||
import com.x8bit.bitwarden.ui.platform.manager.review.AppReviewManager
|
||||
import com.x8bit.bitwarden.ui.platform.model.FeatureFlagsState
|
||||
import io.mockk.mockk
|
||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||
import kotlinx.coroutines.test.UnconfinedTestDispatcher
|
||||
import org.junit.Rule
|
||||
|
||||
/**
|
||||
* A base class that can be used for performing Compose-layer testing using Robolectric, Compose
|
||||
* Testing, and JUnit 4.
|
||||
*/
|
||||
abstract class BaseComposeTest : BaseRobolectricTest() {
|
||||
@OptIn(ExperimentalCoroutinesApi::class)
|
||||
protected val dispatcher = UnconfinedTestDispatcher()
|
||||
|
||||
@OptIn(ExperimentalTestApi::class)
|
||||
@get:Rule
|
||||
val composeTestRule = createComposeRule(effectContext = dispatcher)
|
||||
|
||||
/**
|
||||
* instance of [OnBackPressedDispatcher] made available if testing using [setContent].
|
||||
*/
|
||||
var backDispatcher: OnBackPressedDispatcher? = null
|
||||
private set
|
||||
abstract class BitwardenComposeTest : BaseComposeTest() {
|
||||
|
||||
/**
|
||||
* Helper for testing a basic Composable function that only requires a [Composable]. The
|
||||
@ -62,8 +40,7 @@ abstract class BaseComposeTest : BaseRobolectricTest() {
|
||||
permissionsManager: PermissionsManager = mockk(),
|
||||
test: @Composable () -> Unit,
|
||||
) {
|
||||
composeTestRule.setContent {
|
||||
backDispatcher = LocalOnBackPressedDispatcherOwner.current?.onBackPressedDispatcher
|
||||
setTestContent {
|
||||
LocalManagerProvider(
|
||||
featureFlagsState = featureFlagsState,
|
||||
appResumeStateManager = appResumeStateManager,
|
||||
@ -6,12 +6,12 @@ import androidx.compose.ui.semantics.getOrNull
|
||||
import androidx.compose.ui.test.assertIsDisplayed
|
||||
import androidx.compose.ui.test.onNodeWithText
|
||||
import com.x8bit.bitwarden.R
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.util.assertLinkAnnotationIsAppliedAndInvokeClickAction
|
||||
import org.junit.Assert.assertTrue
|
||||
import org.junit.Test
|
||||
|
||||
class StringRestExtensionsTest : BaseComposeTest() {
|
||||
class StringRestExtensionsTest : BitwardenComposeTest() {
|
||||
@Suppress("MaxLineLength")
|
||||
@Test
|
||||
fun `toAnnotatedString should add Clickable LinkAnnotation to highlighted string`() {
|
||||
|
||||
@ -8,7 +8,7 @@ import androidx.compose.ui.test.performClick
|
||||
import androidx.compose.ui.test.performScrollTo
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.x8bit.bitwarden.data.platform.manager.model.FlagKey
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import io.mockk.every
|
||||
import io.mockk.mockk
|
||||
import io.mockk.verify
|
||||
@ -18,7 +18,7 @@ import org.junit.Assert.assertTrue
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
class DebugMenuScreenTest : BaseComposeTest() {
|
||||
class DebugMenuScreenTest : BitwardenComposeTest() {
|
||||
private var onNavigateBackCalled = false
|
||||
private val mutableEventFlow = bufferedMutableSharedFlow<DebugMenuEvent>()
|
||||
private val mutableStateFlow = MutableStateFlow(
|
||||
|
||||
@ -14,7 +14,7 @@ import com.x8bit.bitwarden.ui.auth.feature.setpassword.SetPasswordRoute
|
||||
import com.x8bit.bitwarden.ui.auth.feature.trusteddevice.TrustedDeviceGraphRoute
|
||||
import com.x8bit.bitwarden.ui.auth.feature.vaultunlock.VaultUnlockRoute
|
||||
import com.x8bit.bitwarden.ui.auth.feature.welcome.WelcomeRoute
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.feature.splash.SplashRoute
|
||||
import com.x8bit.bitwarden.ui.platform.feature.vaultunlocked.VaultUnlockedGraphRoute
|
||||
import com.x8bit.bitwarden.ui.tools.feature.send.addsend.AddSendRoute
|
||||
@ -38,7 +38,7 @@ import java.time.Clock
|
||||
import java.time.Instant
|
||||
import java.time.ZoneOffset
|
||||
|
||||
class RootNavScreenTest : BaseComposeTest() {
|
||||
class RootNavScreenTest : BitwardenComposeTest() {
|
||||
private val mockNavHostController = createMockNavHostController()
|
||||
private val rootNavStateFlow = MutableStateFlow<RootNavState>(RootNavState.Splash)
|
||||
private val viewModel = mockk<RootNavViewModel> {
|
||||
|
||||
@ -21,7 +21,7 @@ import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.bitwarden.vault.CipherType
|
||||
import com.x8bit.bitwarden.data.platform.manager.util.AppResumeStateManager
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.feature.search.model.AutofillSelectionOption
|
||||
import com.x8bit.bitwarden.ui.platform.feature.search.util.createMockDisplayItemForCipher
|
||||
import com.x8bit.bitwarden.ui.platform.feature.search.util.createMockDisplayItemForSend
|
||||
@ -49,7 +49,7 @@ import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
@Suppress("LargeClass")
|
||||
class SearchScreenTest : BaseComposeTest() {
|
||||
class SearchScreenTest : BitwardenComposeTest() {
|
||||
private val mutableEventFlow = bufferedMutableSharedFlow<SearchEvent>()
|
||||
private val mutableStateFlow = MutableStateFlow(DEFAULT_STATE)
|
||||
private val viewModel = mockk<SearchViewModel>(relaxed = true) {
|
||||
|
||||
@ -5,7 +5,7 @@ import androidx.compose.ui.test.onNodeWithContentDescription
|
||||
import androidx.compose.ui.test.onNodeWithText
|
||||
import androidx.compose.ui.test.performClick
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import io.mockk.every
|
||||
import io.mockk.just
|
||||
import io.mockk.mockk
|
||||
@ -17,7 +17,7 @@ import org.junit.Assert.assertTrue
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
class SettingsScreenTest : BaseComposeTest() {
|
||||
class SettingsScreenTest : BitwardenComposeTest() {
|
||||
private var haveCalledNavigateToAbout = false
|
||||
private var haveCalledNavigateToAccountSecurity = false
|
||||
private var haveCalledNavigateToAppearance = false
|
||||
|
||||
@ -15,7 +15,7 @@ import androidx.compose.ui.test.performScrollTo
|
||||
import androidx.core.net.toUri
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager
|
||||
import io.mockk.every
|
||||
import io.mockk.just
|
||||
@ -33,7 +33,7 @@ import java.time.Instant
|
||||
import java.time.Year
|
||||
import java.time.ZoneOffset
|
||||
|
||||
class AboutScreenTest : BaseComposeTest() {
|
||||
class AboutScreenTest : BitwardenComposeTest() {
|
||||
private var haveCalledNavigateBack = false
|
||||
private var haveCalledNavigateToFlightRecorder = false
|
||||
private var haveCalledNavigateToRecordedLogs = false
|
||||
|
||||
@ -23,7 +23,7 @@ import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.data.platform.repository.model.VaultTimeout
|
||||
import com.x8bit.bitwarden.data.platform.repository.model.VaultTimeoutAction
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.components.toggle.UnlockWithPinState
|
||||
import com.x8bit.bitwarden.ui.platform.manager.biometrics.BiometricSupportStatus
|
||||
import com.x8bit.bitwarden.ui.platform.manager.biometrics.BiometricsManager
|
||||
@ -44,7 +44,7 @@ import org.junit.Test
|
||||
import javax.crypto.Cipher
|
||||
|
||||
@Suppress("LargeClass")
|
||||
class AccountSecurityScreenTest : BaseComposeTest() {
|
||||
class AccountSecurityScreenTest : BitwardenComposeTest() {
|
||||
|
||||
private var onNavigateBackCalled = false
|
||||
private var onNavigateToDeleteAccountCalled = false
|
||||
|
||||
@ -13,7 +13,7 @@ import androidx.compose.ui.test.performScrollTo
|
||||
import androidx.compose.ui.test.performTextInput
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import io.mockk.every
|
||||
import io.mockk.mockk
|
||||
import io.mockk.verify
|
||||
@ -23,7 +23,7 @@ import org.junit.Assert.assertTrue
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
class DeleteAccountScreenTest : BaseComposeTest() {
|
||||
class DeleteAccountScreenTest : BitwardenComposeTest() {
|
||||
|
||||
private var onNavigateBackCalled = false
|
||||
private var onNavigateToDeleteAccountConfirmationScreenCalled = false
|
||||
|
||||
@ -10,7 +10,7 @@ import androidx.compose.ui.test.performClick
|
||||
import androidx.compose.ui.test.performTextInput
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import io.mockk.every
|
||||
import io.mockk.mockk
|
||||
import io.mockk.verify
|
||||
@ -20,7 +20,7 @@ import org.junit.Assert.assertTrue
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
class DeleteAccountConfirmationScreenTest : BaseComposeTest() {
|
||||
class DeleteAccountConfirmationScreenTest : BitwardenComposeTest() {
|
||||
private var onNavigateBackCalled = false
|
||||
|
||||
private val mutableEventFlow = bufferedMutableSharedFlow<DeleteAccountConfirmationEvent>()
|
||||
|
||||
@ -10,8 +10,8 @@ import androidx.compose.ui.test.onNodeWithText
|
||||
import androidx.compose.ui.test.performClick
|
||||
import androidx.compose.ui.test.performScrollTo
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.manager.exit.ExitManager
|
||||
import io.mockk.every
|
||||
import io.mockk.just
|
||||
@ -24,7 +24,7 @@ import org.junit.Before
|
||||
import org.junit.Test
|
||||
import org.junit.jupiter.api.Assertions.assertTrue
|
||||
|
||||
class LoginApprovalScreenTest : BaseComposeTest() {
|
||||
class LoginApprovalScreenTest : BitwardenComposeTest() {
|
||||
|
||||
private var onNavigateBackCalled = false
|
||||
|
||||
|
||||
@ -15,7 +15,7 @@ import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.x8bit.bitwarden.data.platform.util.isBuildVersionBelow
|
||||
import com.x8bit.bitwarden.data.platform.util.isFdroid
|
||||
import com.x8bit.bitwarden.data.util.advanceTimeByAndRunCurrent
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.manager.permissions.FakePermissionManager
|
||||
import com.x8bit.bitwarden.ui.util.assertNoDialogExists
|
||||
import io.mockk.every
|
||||
@ -32,7 +32,7 @@ import org.junit.Before
|
||||
import org.junit.Test
|
||||
import org.junit.jupiter.api.Assertions.assertTrue
|
||||
|
||||
class PendingRequestsScreenTest : BaseComposeTest() {
|
||||
class PendingRequestsScreenTest : BitwardenComposeTest() {
|
||||
|
||||
private var onNavigateBackCalled = false
|
||||
private var onNavigateToLoginApprovalCalled = false
|
||||
|
||||
@ -12,7 +12,7 @@ import androidx.compose.ui.test.performClick
|
||||
import androidx.compose.ui.test.performScrollTo
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.bitwarden.ui.platform.feature.settings.appearance.model.AppTheme
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.feature.settings.appearance.model.AppLanguage
|
||||
import com.x8bit.bitwarden.ui.util.assertNoDialogExists
|
||||
import io.mockk.every
|
||||
@ -24,7 +24,7 @@ import org.junit.Assert.assertTrue
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
class AppearanceScreenTest : BaseComposeTest() {
|
||||
class AppearanceScreenTest : BitwardenComposeTest() {
|
||||
|
||||
private var haveCalledNavigateBack = false
|
||||
private val mutableEventFlow = bufferedMutableSharedFlow<AppearanceEvent>()
|
||||
|
||||
@ -17,7 +17,7 @@ import androidx.compose.ui.test.performScrollTo
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.x8bit.bitwarden.data.autofill.model.chrome.ChromeReleaseChannel
|
||||
import com.x8bit.bitwarden.data.platform.repository.model.UriMatchType
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.feature.settings.autofill.chrome.model.ChromeAutofillSettingsOption
|
||||
import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager
|
||||
import com.x8bit.bitwarden.ui.util.assertNoDialogExists
|
||||
@ -33,7 +33,7 @@ import org.junit.Assert.assertTrue
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
class AutoFillScreenTest : BaseComposeTest() {
|
||||
class AutoFillScreenTest : BitwardenComposeTest() {
|
||||
|
||||
private var isSystemSettingsRequestSuccess = false
|
||||
private var onNavigateBackCalled = false
|
||||
|
||||
@ -9,8 +9,8 @@ import androidx.compose.ui.test.onNodeWithText
|
||||
import androidx.compose.ui.test.performClick
|
||||
import androidx.compose.ui.test.performScrollTo
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.util.assertNoDialogExists
|
||||
import io.mockk.every
|
||||
import io.mockk.mockk
|
||||
@ -20,7 +20,7 @@ import org.junit.Assert.assertTrue
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
class BlockAutoFillScreenTest : BaseComposeTest() {
|
||||
class BlockAutoFillScreenTest : BitwardenComposeTest() {
|
||||
|
||||
private var onNavigateBackCalled = false
|
||||
|
||||
|
||||
@ -17,7 +17,7 @@ import androidx.compose.ui.test.performTextInput
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.ui.auth.feature.completeregistration.PasswordStrengthState
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.feature.settings.exportvault.model.ExportVaultFormat
|
||||
import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager
|
||||
import com.x8bit.bitwarden.ui.util.assertNoDialogExists
|
||||
@ -30,7 +30,7 @@ import org.junit.Before
|
||||
import org.junit.Test
|
||||
import org.junit.jupiter.api.Assertions.assertTrue
|
||||
|
||||
class ExportVaultScreenTest : BaseComposeTest() {
|
||||
class ExportVaultScreenTest : BitwardenComposeTest() {
|
||||
private var onNavigateBackCalled = false
|
||||
private val mutableEventFlow = bufferedMutableSharedFlow<ExportVaultEvent>()
|
||||
private val mutableStateFlow = MutableStateFlow(DEFAULT_STATE)
|
||||
|
||||
@ -11,7 +11,7 @@ import androidx.compose.ui.test.performScrollTo
|
||||
import androidx.core.net.toUri
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.x8bit.bitwarden.data.platform.repository.model.FlightRecorderDuration
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager
|
||||
import com.x8bit.bitwarden.ui.util.assertNoDialogExists
|
||||
import com.x8bit.bitwarden.ui.util.performCustomAccessibilityAction
|
||||
@ -25,7 +25,7 @@ import org.junit.Assert.assertTrue
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
class FlightRecorderScreenTest : BaseComposeTest() {
|
||||
class FlightRecorderScreenTest : BitwardenComposeTest() {
|
||||
private var onNavigateBackCalled = false
|
||||
private val mutableEventFlow = bufferedMutableSharedFlow<FlightRecorderEvent>()
|
||||
private val mutableStateFlow = MutableStateFlow(DEFAULT_STATE)
|
||||
|
||||
@ -18,7 +18,7 @@ import androidx.core.net.toUri
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.R
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.feature.settings.flightrecorder.recordedLogs.RecordedLogsAction
|
||||
import com.x8bit.bitwarden.ui.platform.feature.settings.flightrecorder.recordedLogs.RecordedLogsEvent
|
||||
import com.x8bit.bitwarden.ui.platform.feature.settings.flightrecorder.recordedLogs.RecordedLogsScreen
|
||||
@ -39,7 +39,7 @@ import org.junit.Assert.assertTrue
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
class RecordedLogsScreenTest : BaseComposeTest() {
|
||||
class RecordedLogsScreenTest : BitwardenComposeTest() {
|
||||
private var onNavigateBackCalled = false
|
||||
private val mutableEventFlow = bufferedMutableSharedFlow<RecordedLogsEvent>()
|
||||
private val mutableStateFlow = MutableStateFlow(DEFAULT_STATE)
|
||||
|
||||
@ -7,8 +7,8 @@ import androidx.compose.ui.test.onNodeWithContentDescription
|
||||
import androidx.compose.ui.test.onNodeWithText
|
||||
import androidx.compose.ui.test.performClick
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.feature.settings.folders.model.FolderDisplayItem
|
||||
import io.mockk.every
|
||||
import io.mockk.mockk
|
||||
@ -20,7 +20,7 @@ import org.junit.Assert.assertTrue
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
class FoldersScreenTest : BaseComposeTest() {
|
||||
class FoldersScreenTest : BitwardenComposeTest() {
|
||||
|
||||
private var onNavigateBackCalled = false
|
||||
private var onNavigateToEditFolderScreenId: String? = null
|
||||
|
||||
@ -13,7 +13,7 @@ import androidx.compose.ui.test.onNodeWithText
|
||||
import androidx.compose.ui.test.performClick
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.feature.settings.folders.model.FolderAddEditType
|
||||
import com.x8bit.bitwarden.ui.util.assertNoDialogExists
|
||||
import io.mockk.every
|
||||
@ -25,7 +25,7 @@ import org.junit.Before
|
||||
import org.junit.Test
|
||||
import org.junit.jupiter.api.Assertions.assertTrue
|
||||
|
||||
class FolderAddEditScreenTest : BaseComposeTest() {
|
||||
class FolderAddEditScreenTest : BitwardenComposeTest() {
|
||||
|
||||
private var onNavigateBackCalled = false
|
||||
|
||||
|
||||
@ -13,7 +13,7 @@ import androidx.compose.ui.test.performScrollTo
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.data.platform.repository.model.ClearClipboardFrequency
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.util.assertNoDialogExists
|
||||
import io.mockk.every
|
||||
import io.mockk.mockk
|
||||
@ -24,7 +24,7 @@ import org.junit.Assert.assertTrue
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
class OtherScreenTest : BaseComposeTest() {
|
||||
class OtherScreenTest : BitwardenComposeTest() {
|
||||
|
||||
private var haveCalledNavigateBack = false
|
||||
private val mutableEventFlow = bufferedMutableSharedFlow<OtherEvent>()
|
||||
|
||||
@ -11,8 +11,8 @@ import androidx.compose.ui.test.performClick
|
||||
import androidx.compose.ui.test.performScrollTo
|
||||
import androidx.core.net.toUri
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.components.snackbar.BitwardenSnackbarData
|
||||
import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager
|
||||
import com.x8bit.bitwarden.ui.platform.manager.snackbar.SnackbarRelay
|
||||
@ -29,7 +29,7 @@ import org.junit.Assert.assertTrue
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
class VaultSettingsScreenTest : BaseComposeTest() {
|
||||
class VaultSettingsScreenTest : BitwardenComposeTest() {
|
||||
|
||||
private var onNavigateToImportLoginsCalled = false
|
||||
private var onNavigateBackCalled = false
|
||||
|
||||
@ -6,7 +6,7 @@ import androidx.navigation.navOptions
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.bitwarden.ui.platform.base.createMockNavHostController
|
||||
import com.x8bit.bitwarden.R
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.feature.settings.SettingsGraphRoute
|
||||
import com.x8bit.bitwarden.ui.tools.feature.generator.GeneratorGraphRoute
|
||||
import com.x8bit.bitwarden.ui.tools.feature.send.SendGraphRoute
|
||||
@ -19,7 +19,7 @@ import kotlinx.coroutines.flow.update
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
class VaultUnlockedNavBarScreenTest : BaseComposeTest() {
|
||||
class VaultUnlockedNavBarScreenTest : BitwardenComposeTest() {
|
||||
private val mockNavHostController = createMockNavHostController()
|
||||
private val mutableEventFlow = bufferedMutableSharedFlow<VaultUnlockedNavBarEvent>()
|
||||
private val mutableStateFlow = MutableStateFlow(DEFAULT_STATE)
|
||||
|
||||
@ -31,9 +31,9 @@ import androidx.compose.ui.test.swipeRight
|
||||
import androidx.compose.ui.text.AnnotatedString
|
||||
import androidx.core.net.toUri
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.x8bit.bitwarden.data.platform.manager.util.AppResumeStateManager
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.data.platform.manager.util.AppResumeStateManager
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager
|
||||
import com.x8bit.bitwarden.ui.tools.feature.generator.model.GeneratorMode
|
||||
import com.x8bit.bitwarden.ui.util.isCoachMarkToolTip
|
||||
@ -48,7 +48,7 @@ import org.junit.Test
|
||||
import org.junit.jupiter.api.Assertions.assertTrue
|
||||
|
||||
@Suppress("LargeClass")
|
||||
class GeneratorScreenTest : BaseComposeTest() {
|
||||
class GeneratorScreenTest : BitwardenComposeTest() {
|
||||
private var onNavigateToPasswordHistoryScreenCalled = false
|
||||
private var onDimNavBarRequest: Boolean? = null
|
||||
|
||||
|
||||
@ -10,8 +10,8 @@ import androidx.compose.ui.test.onNodeWithContentDescription
|
||||
import androidx.compose.ui.test.onNodeWithText
|
||||
import androidx.compose.ui.test.performClick
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.tools.feature.generator.model.GeneratorPasswordHistoryMode
|
||||
import io.mockk.every
|
||||
import io.mockk.mockk
|
||||
@ -22,7 +22,7 @@ import org.junit.Before
|
||||
import org.junit.Test
|
||||
import org.junit.jupiter.api.Assertions.assertTrue
|
||||
|
||||
class PasswordHistoryScreenTest : BaseComposeTest() {
|
||||
class PasswordHistoryScreenTest : BitwardenComposeTest() {
|
||||
private var onNavigateBackCalled = false
|
||||
|
||||
private val mutableEventFlow = bufferedMutableSharedFlow<PasswordHistoryEvent>()
|
||||
|
||||
@ -25,7 +25,7 @@ import androidx.core.net.toUri
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.data.platform.manager.util.AppResumeStateManager
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager
|
||||
import com.x8bit.bitwarden.ui.tools.feature.send.model.SendItemType
|
||||
import com.x8bit.bitwarden.ui.tools.feature.send.viewsend.ViewSendRoute
|
||||
@ -45,7 +45,7 @@ import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
@Suppress("LargeClass")
|
||||
class SendScreenTest : BaseComposeTest() {
|
||||
class SendScreenTest : BitwardenComposeTest() {
|
||||
|
||||
private var onNavigateToNewSendCalled = false
|
||||
private var onNavigateToSendFilesListCalled = false
|
||||
|
||||
@ -25,7 +25,7 @@ import androidx.compose.ui.test.performSemanticsAction
|
||||
import androidx.compose.ui.test.performTextInput
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.manager.exit.ExitManager
|
||||
import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager
|
||||
import com.x8bit.bitwarden.ui.platform.manager.permissions.FakePermissionManager
|
||||
@ -47,7 +47,7 @@ import org.junit.Test
|
||||
import java.time.ZonedDateTime
|
||||
|
||||
@Suppress("LargeClass")
|
||||
class AddSendScreenTest : BaseComposeTest() {
|
||||
class AddSendScreenTest : BitwardenComposeTest() {
|
||||
|
||||
private var onNavigateBackCalled = false
|
||||
private var onNavigateUpToRootCalled = false
|
||||
|
||||
@ -13,7 +13,7 @@ import androidx.compose.ui.test.performClick
|
||||
import androidx.compose.ui.test.performScrollTo
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager
|
||||
import com.x8bit.bitwarden.ui.tools.feature.send.model.SendItemType
|
||||
import com.x8bit.bitwarden.ui.util.assertNoDialogExists
|
||||
@ -33,7 +33,7 @@ import org.junit.Assert.assertTrue
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
class ViewSendScreenTest : BaseComposeTest() {
|
||||
class ViewSendScreenTest : BitwardenComposeTest() {
|
||||
private var onNavigateBackCalled: Boolean = false
|
||||
private var onNavigateToEditData: String? = null
|
||||
private val mutableEventFlow = bufferedMutableSharedFlow<ViewSendEvent>()
|
||||
|
||||
@ -46,7 +46,7 @@ import com.x8bit.bitwarden.data.util.advanceTimeByAndRunCurrent
|
||||
import com.x8bit.bitwarden.data.vault.datasource.sdk.model.createMockCipherView
|
||||
import com.x8bit.bitwarden.ui.credentials.manager.CredentialProviderCompletionManager
|
||||
import com.x8bit.bitwarden.ui.credentials.manager.model.RegisterFido2CredentialResult
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.manager.biometrics.BiometricsManager
|
||||
import com.x8bit.bitwarden.ui.platform.manager.exit.ExitManager
|
||||
import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager
|
||||
@ -84,7 +84,7 @@ import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
@Suppress("LargeClass")
|
||||
class VaultAddEditScreenTest : BaseComposeTest() {
|
||||
class VaultAddEditScreenTest : BitwardenComposeTest() {
|
||||
|
||||
private var onNavigateBackCalled = false
|
||||
private var onNavigateQrCodeScanScreenCalled = false
|
||||
|
||||
@ -14,7 +14,7 @@ import androidx.compose.ui.test.performClick
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.data.vault.datasource.sdk.model.createMockCipherView
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager
|
||||
import com.x8bit.bitwarden.ui.util.assertNoDialogExists
|
||||
import com.x8bit.bitwarden.ui.util.isProgressBar
|
||||
@ -31,7 +31,7 @@ import org.junit.Assert.assertTrue
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
class AttachmentsScreenTest : BaseComposeTest() {
|
||||
class AttachmentsScreenTest : BitwardenComposeTest() {
|
||||
private var onNavigateBackCalled = false
|
||||
|
||||
private val mutableStateFlow = MutableStateFlow(DEFAULT_STATE)
|
||||
|
||||
@ -20,7 +20,7 @@ import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.R
|
||||
import com.x8bit.bitwarden.data.util.advanceTimeByAndRunCurrent
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager
|
||||
import com.x8bit.bitwarden.ui.platform.manager.snackbar.SnackbarRelay
|
||||
import com.x8bit.bitwarden.ui.util.assertNoDialogExists
|
||||
@ -35,7 +35,7 @@ import org.junit.Assert.assertTrue
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
class ImportLoginsScreenTest : BaseComposeTest() {
|
||||
class ImportLoginsScreenTest : BitwardenComposeTest() {
|
||||
private var navigateBackCalled = false
|
||||
|
||||
private val mutableImportLoginsStateFlow = MutableStateFlow(DEFAULT_STATE)
|
||||
|
||||
@ -31,7 +31,7 @@ import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.R
|
||||
import com.x8bit.bitwarden.data.vault.datasource.sdk.model.createMockCipherView
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.components.model.IconData
|
||||
import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager
|
||||
import com.x8bit.bitwarden.ui.util.assertNoDialogExists
|
||||
@ -62,7 +62,7 @@ import org.junit.Test
|
||||
import java.time.Instant
|
||||
|
||||
@Suppress("LargeClass")
|
||||
class VaultItemScreenTest : BaseComposeTest() {
|
||||
class VaultItemScreenTest : BitwardenComposeTest() {
|
||||
|
||||
private var onNavigateBackCalled = false
|
||||
private var onNavigateToVaultEditItemArgs: VaultAddEditArgs? = null
|
||||
|
||||
@ -30,7 +30,7 @@ import com.x8bit.bitwarden.ui.credentials.manager.CredentialProviderCompletionMa
|
||||
import com.x8bit.bitwarden.ui.credentials.manager.model.AssertFido2CredentialResult
|
||||
import com.x8bit.bitwarden.ui.credentials.manager.model.GetCredentialsResult
|
||||
import com.x8bit.bitwarden.ui.credentials.manager.model.RegisterFido2CredentialResult
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.components.model.AccountSummary
|
||||
import com.x8bit.bitwarden.ui.platform.components.model.IconData
|
||||
import com.x8bit.bitwarden.ui.platform.feature.search.model.SearchType
|
||||
@ -81,7 +81,7 @@ import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
@Suppress("LargeClass")
|
||||
class VaultItemListingScreenTest : BaseComposeTest() {
|
||||
class VaultItemListingScreenTest : BitwardenComposeTest() {
|
||||
|
||||
private var onNavigateBackCalled = false
|
||||
private var onNavigateToVaultAddItemScreenCalled = false
|
||||
|
||||
@ -16,9 +16,9 @@ import androidx.compose.ui.test.performClick
|
||||
import androidx.compose.ui.test.performTextInput
|
||||
import androidx.test.core.app.ApplicationProvider
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.x8bit.bitwarden.R
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.R
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager
|
||||
import com.x8bit.bitwarden.ui.platform.manager.permissions.FakePermissionManager
|
||||
import com.x8bit.bitwarden.ui.util.assertNoDialogExists
|
||||
@ -34,7 +34,7 @@ import kotlinx.coroutines.flow.update
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
class ManualCodeEntryScreenTests : BaseComposeTest() {
|
||||
class ManualCodeEntryScreenTests : BitwardenComposeTest() {
|
||||
|
||||
private var onNavigateBackCalled = false
|
||||
private var onNavigateToScanQrCodeCalled = false
|
||||
|
||||
@ -15,7 +15,7 @@ import androidx.compose.ui.test.performClick
|
||||
import androidx.compose.ui.test.performScrollTo
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.util.onNodeWithContentDescriptionAfterScroll
|
||||
import com.x8bit.bitwarden.ui.vault.feature.movetoorganization.util.createMockOrganizationList
|
||||
import com.x8bit.bitwarden.ui.vault.model.VaultCollection
|
||||
@ -28,7 +28,7 @@ import org.junit.Assert.assertTrue
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
class VaultMoveToOrganizationScreenTest : BaseComposeTest() {
|
||||
class VaultMoveToOrganizationScreenTest : BitwardenComposeTest() {
|
||||
|
||||
private var onNavigateBackCalled = false
|
||||
|
||||
|
||||
@ -3,7 +3,7 @@ package com.x8bit.bitwarden.ui.vault.feature.qrcodescan
|
||||
import androidx.camera.core.ImageProxy
|
||||
import androidx.compose.ui.test.onNodeWithText
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.util.performCustomAccessibilityAction
|
||||
import com.x8bit.bitwarden.ui.vault.feature.qrcodescan.util.FakeQrCodeAnalyzer
|
||||
import io.mockk.every
|
||||
@ -15,7 +15,7 @@ import org.junit.Before
|
||||
import org.junit.Test
|
||||
import org.robolectric.annotation.Config
|
||||
|
||||
class QrCodeScanScreenTest : BaseComposeTest() {
|
||||
class QrCodeScanScreenTest : BitwardenComposeTest() {
|
||||
|
||||
private var onNavigateBackCalled = false
|
||||
private var onNavigateToManualCodeEntryScreenCalled = false
|
||||
|
||||
@ -25,7 +25,7 @@ import com.bitwarden.data.repository.util.baseIconUrl
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.R
|
||||
import com.x8bit.bitwarden.data.util.advanceTimeByAndRunCurrent
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.components.model.AccountSummary
|
||||
import com.x8bit.bitwarden.ui.platform.components.snackbar.BitwardenSnackbarData
|
||||
import com.x8bit.bitwarden.ui.platform.manager.exit.ExitManager
|
||||
@ -73,7 +73,7 @@ import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
@Suppress("LargeClass")
|
||||
class VaultScreenTest : BaseComposeTest() {
|
||||
class VaultScreenTest : BitwardenComposeTest() {
|
||||
private var onNavigateToAboutCalled = false
|
||||
private var onNavigateToImportLoginsCalled = false
|
||||
private var onNavigateToVaultAddItemScreenCalled = false
|
||||
|
||||
@ -18,7 +18,7 @@ import com.bitwarden.data.repository.model.Environment
|
||||
import com.bitwarden.data.repository.util.baseIconUrl
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.data.platform.manager.util.AppResumeStateManager
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.util.assertNoDialogExists
|
||||
import com.x8bit.bitwarden.ui.vault.feature.item.VaultItemArgs
|
||||
import com.x8bit.bitwarden.ui.vault.feature.vault.model.VaultFilterType
|
||||
@ -33,7 +33,7 @@ import org.junit.Test
|
||||
import org.junit.jupiter.api.Assertions.assertEquals
|
||||
import org.junit.jupiter.api.Assertions.assertTrue
|
||||
|
||||
class VerificationCodeScreenTest : BaseComposeTest() {
|
||||
class VerificationCodeScreenTest : BitwardenComposeTest() {
|
||||
|
||||
private var onNavigateBackCalled = false
|
||||
private var onNavigateToSearchCalled = false
|
||||
|
||||
@ -11,7 +11,7 @@ import androidx.compose.ui.test.performTouchInput
|
||||
import com.bitwarden.authenticator.ui.authenticator.feature.itemlisting.model.SharedCodesDisplayState
|
||||
import com.bitwarden.authenticator.ui.authenticator.feature.itemlisting.model.VaultDropdownMenuAction
|
||||
import com.bitwarden.authenticator.ui.authenticator.feature.itemlisting.model.VerificationCodeDisplayItem
|
||||
import com.bitwarden.authenticator.ui.platform.base.BaseComposeTest
|
||||
import com.bitwarden.authenticator.ui.platform.base.AuthenticatorComposeTest
|
||||
import com.bitwarden.authenticator.ui.platform.manager.intent.IntentManager
|
||||
import com.bitwarden.authenticator.ui.platform.manager.permissions.FakePermissionManager
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
@ -27,7 +27,7 @@ import kotlinx.coroutines.flow.update
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
class ItemListingScreenTest : BaseComposeTest() {
|
||||
class ItemListingScreenTest : AuthenticatorComposeTest() {
|
||||
|
||||
private var onNavigateBackCalled = false
|
||||
private var onNavigateToSearchCalled = false
|
||||
@ -49,7 +49,7 @@ class ItemListingScreenTest : BaseComposeTest() {
|
||||
|
||||
@Before
|
||||
fun setup() {
|
||||
composeTestRule.setContent {
|
||||
setContent {
|
||||
ItemListingScreen(
|
||||
viewModel = viewModel,
|
||||
intentManager = intentManager,
|
||||
|
||||
@ -3,7 +3,7 @@ package com.bitwarden.authenticator.ui.authenticator.feature.manualcodeentry
|
||||
import androidx.compose.ui.test.assertIsDisplayed
|
||||
import androidx.compose.ui.test.onNodeWithText
|
||||
import androidx.compose.ui.test.performClick
|
||||
import com.bitwarden.authenticator.ui.platform.base.BaseComposeTest
|
||||
import com.bitwarden.authenticator.ui.platform.base.AuthenticatorComposeTest
|
||||
import com.bitwarden.authenticator.ui.platform.manager.intent.IntentManager
|
||||
import com.bitwarden.authenticator.ui.platform.manager.permissions.FakePermissionManager
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
@ -17,7 +17,7 @@ import kotlinx.coroutines.flow.update
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
class ManualCodeEntryScreenTest : BaseComposeTest() {
|
||||
class ManualCodeEntryScreenTest : AuthenticatorComposeTest() {
|
||||
|
||||
private val mutableStateFlow = MutableStateFlow(DEFAULT_STATE)
|
||||
private val mutableEventFlow = bufferedMutableSharedFlow<ManualCodeEntryEvent>()
|
||||
@ -33,7 +33,7 @@ class ManualCodeEntryScreenTest : BaseComposeTest() {
|
||||
|
||||
@Before
|
||||
fun setup() {
|
||||
composeTestRule.setContent {
|
||||
setContent {
|
||||
ManualCodeEntryScreen(
|
||||
onNavigateBack = {},
|
||||
onNavigateToQrCodeScreen = {},
|
||||
|
||||
@ -6,7 +6,7 @@ import androidx.compose.ui.test.hasAnyAncestor
|
||||
import androidx.compose.ui.test.isDialog
|
||||
import androidx.compose.ui.test.onNodeWithText
|
||||
import androidx.compose.ui.test.performClick
|
||||
import com.bitwarden.authenticator.ui.platform.base.BaseComposeTest
|
||||
import com.bitwarden.authenticator.ui.platform.base.AuthenticatorComposeTest
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import io.mockk.every
|
||||
import io.mockk.just
|
||||
@ -19,7 +19,7 @@ import org.junit.Before
|
||||
import org.junit.Test
|
||||
import org.junit.jupiter.api.Assertions.assertTrue
|
||||
|
||||
class QrCodeScanScreenTest : BaseComposeTest() {
|
||||
class QrCodeScanScreenTest : AuthenticatorComposeTest() {
|
||||
|
||||
private var onNavigateBackCalled = false
|
||||
private var onNavigateToManualCodeEntryScreenCalled = false
|
||||
@ -36,7 +36,7 @@ class QrCodeScanScreenTest : BaseComposeTest() {
|
||||
|
||||
@Before
|
||||
fun setup() {
|
||||
composeTestRule.setContent {
|
||||
setContent {
|
||||
QrCodeScanScreen(
|
||||
viewModel = viewModel,
|
||||
qrCodeAnalyzer = qrCodeAnalyzer,
|
||||
|
||||
@ -4,7 +4,7 @@ import androidx.compose.ui.test.assertIsDisplayed
|
||||
import androidx.compose.ui.test.onNodeWithText
|
||||
import androidx.compose.ui.test.performClick
|
||||
import androidx.compose.ui.test.performScrollTo
|
||||
import com.bitwarden.authenticator.ui.platform.base.BaseComposeTest
|
||||
import com.bitwarden.authenticator.ui.platform.base.AuthenticatorComposeTest
|
||||
import com.bitwarden.authenticator.ui.platform.feature.tutorial.TutorialAction
|
||||
import com.bitwarden.authenticator.ui.platform.feature.tutorial.TutorialEvent
|
||||
import com.bitwarden.authenticator.ui.platform.feature.tutorial.TutorialScreen
|
||||
@ -20,7 +20,7 @@ import org.junit.Before
|
||||
import org.junit.Test
|
||||
import org.junit.jupiter.api.Assertions.assertTrue
|
||||
|
||||
class TutorialScreenTest : BaseComposeTest() {
|
||||
class TutorialScreenTest : AuthenticatorComposeTest() {
|
||||
private var onTutorialFinishedCalled = false
|
||||
private val mutableStateFlow = MutableStateFlow(DEFAULT_STATE)
|
||||
private val mutableEventFlow = bufferedMutableSharedFlow<TutorialEvent>()
|
||||
@ -31,7 +31,7 @@ class TutorialScreenTest : BaseComposeTest() {
|
||||
|
||||
@Before
|
||||
fun setUp() {
|
||||
composeTestRule.setContent {
|
||||
setContent {
|
||||
TutorialScreen(
|
||||
viewModel = viewModel,
|
||||
onTutorialFinished = { onTutorialFinishedCalled = true },
|
||||
|
||||
@ -0,0 +1,29 @@
|
||||
package com.bitwarden.authenticator.ui.platform.base
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import com.bitwarden.authenticator.ui.platform.composition.LocalManagerProvider
|
||||
import com.bitwarden.authenticator.ui.platform.theme.AuthenticatorTheme
|
||||
import com.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.bitwarden.ui.platform.feature.settings.appearance.model.AppTheme
|
||||
|
||||
/**
|
||||
* A base class that can be used for performing Compose-layer testing using Robolectric, Compose
|
||||
* Testing, and JUnit 4.
|
||||
*/
|
||||
abstract class AuthenticatorComposeTest : BaseComposeTest() {
|
||||
|
||||
/**
|
||||
* Helper for testing a basic Composable function that only requires a Composable environment
|
||||
* with the [AuthenticatorTheme].
|
||||
*/
|
||||
protected fun setContent(
|
||||
theme: AppTheme = AppTheme.DEFAULT,
|
||||
test: @Composable () -> Unit,
|
||||
) {
|
||||
setTestContent {
|
||||
AuthenticatorTheme(theme = theme) {
|
||||
LocalManagerProvider { test() }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,59 +0,0 @@
|
||||
package com.bitwarden.authenticator.ui.platform.base
|
||||
|
||||
import androidx.activity.OnBackPressedDispatcher
|
||||
import androidx.activity.compose.BackHandler
|
||||
import androidx.activity.compose.LocalOnBackPressedDispatcherOwner
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.test.junit4.createComposeRule
|
||||
import com.bitwarden.authenticator.ui.platform.theme.AuthenticatorTheme
|
||||
import com.bitwarden.ui.platform.feature.settings.appearance.model.AppTheme
|
||||
import org.junit.Rule
|
||||
|
||||
/**
|
||||
* A base class that can be used for performing Compose-layer testing using Robolectric, Compose
|
||||
* Testing, and JUnit 4.
|
||||
*/
|
||||
abstract class BaseComposeTest : BaseRobolectricTest() {
|
||||
|
||||
@get:Rule
|
||||
val composeTestRule = createComposeRule()
|
||||
|
||||
/**
|
||||
* instance of [OnBackPressedDispatcher] made available if testing using
|
||||
*
|
||||
* [setContentWithBackDispatcher] or [runTestWithTheme]
|
||||
*/
|
||||
var backDispatcher: OnBackPressedDispatcher? = null
|
||||
private set
|
||||
|
||||
/**
|
||||
* Helper for testing a basic Composable function that only requires a Composable environment
|
||||
* with the [BitwardenTheme].
|
||||
*/
|
||||
protected fun runTestWithTheme(
|
||||
theme: AppTheme,
|
||||
test: @Composable () -> Unit,
|
||||
) {
|
||||
composeTestRule.setContent {
|
||||
AuthenticatorTheme(
|
||||
theme = theme,
|
||||
) {
|
||||
backDispatcher = LocalOnBackPressedDispatcherOwner.current?.onBackPressedDispatcher
|
||||
test()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper for testing a basic Composable function that provides access to a
|
||||
* [OnBackPressedDispatcher].
|
||||
*
|
||||
* Use if the [Composable] function being tested uses a [BackHandler]
|
||||
*/
|
||||
protected fun setContentWithBackDispatcher(test: @Composable () -> Unit) {
|
||||
composeTestRule.setContent {
|
||||
backDispatcher = LocalOnBackPressedDispatcherOwner.current?.onBackPressedDispatcher
|
||||
test()
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,21 +0,0 @@
|
||||
package com.bitwarden.authenticator.ui.platform.base
|
||||
|
||||
import dagger.hilt.android.testing.HiltTestApplication
|
||||
import org.junit.runner.RunWith
|
||||
import org.robolectric.RobolectricTestRunner
|
||||
import org.robolectric.annotation.Config
|
||||
import org.robolectric.shadows.ShadowLog
|
||||
|
||||
/**
|
||||
* A base class that can be used for performing tests that use Robolectric and JUnit 4.
|
||||
*/
|
||||
@Config(
|
||||
application = HiltTestApplication::class,
|
||||
sdk = [Config.NEWEST_SDK],
|
||||
)
|
||||
@RunWith(RobolectricTestRunner::class)
|
||||
abstract class BaseRobolectricTest {
|
||||
init {
|
||||
ShadowLog.stream = System.out
|
||||
}
|
||||
}
|
||||
@ -5,7 +5,7 @@ import androidx.compose.ui.test.onNodeWithText
|
||||
import androidx.compose.ui.test.performClick
|
||||
import androidx.compose.ui.test.performScrollTo
|
||||
import com.bitwarden.authenticator.data.platform.manager.model.FlagKey
|
||||
import com.bitwarden.authenticator.ui.platform.base.BaseComposeTest
|
||||
import com.bitwarden.authenticator.ui.platform.base.AuthenticatorComposeTest
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import io.mockk.every
|
||||
import io.mockk.mockk
|
||||
@ -15,7 +15,7 @@ import org.junit.Assert.assertTrue
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
class DebugMenuScreenTest : BaseComposeTest() {
|
||||
class DebugMenuScreenTest : AuthenticatorComposeTest() {
|
||||
private var onNavigateBackCalled = false
|
||||
private val mutableEventFlow = bufferedMutableSharedFlow<DebugMenuEvent>()
|
||||
private val mutableStateFlow = MutableStateFlow(DebugMenuState(featureFlags = emptyMap()))
|
||||
@ -26,7 +26,7 @@ class DebugMenuScreenTest : BaseComposeTest() {
|
||||
|
||||
@Before
|
||||
fun setup() {
|
||||
composeTestRule.setContent {
|
||||
setContent {
|
||||
DebugMenuScreen(
|
||||
onNavigateBack = { onNavigateBackCalled = true },
|
||||
viewModel = viewModel,
|
||||
|
||||
@ -12,7 +12,7 @@ import androidx.compose.ui.test.performScrollTo
|
||||
import androidx.core.net.toUri
|
||||
import com.bitwarden.authenticator.BuildConfig
|
||||
import com.bitwarden.authenticator.R
|
||||
import com.bitwarden.authenticator.ui.platform.base.BaseComposeTest
|
||||
import com.bitwarden.authenticator.ui.platform.base.AuthenticatorComposeTest
|
||||
import com.bitwarden.authenticator.ui.platform.feature.settings.appearance.model.AppLanguage
|
||||
import com.bitwarden.authenticator.ui.platform.feature.settings.data.model.DefaultSaveOption
|
||||
import com.bitwarden.authenticator.ui.platform.manager.biometrics.BiometricsManager
|
||||
@ -34,7 +34,7 @@ import org.junit.Assert.assertEquals
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
class SettingsScreenTest : BaseComposeTest() {
|
||||
class SettingsScreenTest : AuthenticatorComposeTest() {
|
||||
|
||||
private var onNavigateToTutorialCalled = false
|
||||
private var onNaviateToExportCalled = false
|
||||
@ -56,7 +56,7 @@ class SettingsScreenTest : BaseComposeTest() {
|
||||
|
||||
@Before
|
||||
fun setup() {
|
||||
composeTestRule.setContent {
|
||||
setContent {
|
||||
SettingsScreen(
|
||||
viewModel = viewModel,
|
||||
biometricsManager = biometricsManager,
|
||||
|
||||
@ -3,6 +3,7 @@ plugins {
|
||||
alias(libs.plugins.kotlin.android)
|
||||
alias(libs.plugins.kotlin.compose.compiler)
|
||||
alias(libs.plugins.kotlin.parcelize)
|
||||
alias(libs.plugins.ksp)
|
||||
}
|
||||
|
||||
android {
|
||||
@ -60,13 +61,17 @@ dependencies {
|
||||
testImplementation(libs.junit.vintage)
|
||||
testImplementation(libs.mockk.mockk)
|
||||
|
||||
testFixturesImplementation(libs.androidx.activity.compose)
|
||||
testFixturesImplementation(libs.androidx.compose.ui.test)
|
||||
testFixturesImplementation(libs.androidx.navigation.compose)
|
||||
testFixturesImplementation(libs.google.hilt.android.testing)
|
||||
testFixturesImplementation(platform(libs.junit.bom))
|
||||
testFixturesImplementation(libs.junit.junit5)
|
||||
testFixturesImplementation(libs.junit.vintage)
|
||||
testFixturesImplementation(libs.kotlinx.coroutines.test)
|
||||
testFixturesImplementation(libs.square.turbine)
|
||||
testFixturesImplementation(libs.mockk.mockk)
|
||||
testFixturesImplementation(libs.robolectric.robolectric)
|
||||
testFixturesImplementation(libs.square.turbine)
|
||||
}
|
||||
|
||||
tasks {
|
||||
|
||||
@ -0,0 +1,39 @@
|
||||
package com.bitwarden.ui.platform.base
|
||||
|
||||
import androidx.activity.OnBackPressedDispatcher
|
||||
import androidx.activity.compose.LocalOnBackPressedDispatcherOwner
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.test.ExperimentalTestApi
|
||||
import androidx.compose.ui.test.junit4.createComposeRule
|
||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||
import kotlinx.coroutines.test.UnconfinedTestDispatcher
|
||||
import org.junit.Rule
|
||||
|
||||
/**
|
||||
* A base class that can be used for performing Compose-layer testing using Robolectric, Compose
|
||||
* Testing, and JUnit 4.
|
||||
*/
|
||||
abstract class BaseComposeTest : BaseRobolectricTest() {
|
||||
@OptIn(ExperimentalCoroutinesApi::class)
|
||||
protected val dispatcher = UnconfinedTestDispatcher()
|
||||
|
||||
@OptIn(ExperimentalTestApi::class)
|
||||
@get:Rule
|
||||
val composeTestRule = createComposeRule(effectContext = dispatcher)
|
||||
|
||||
/**
|
||||
* instance of [OnBackPressedDispatcher] made available if testing using [setTestContent].
|
||||
*/
|
||||
var backDispatcher: OnBackPressedDispatcher? = null
|
||||
private set
|
||||
|
||||
/**
|
||||
* Helper for testing a basic Composable function that only requires a [Composable].
|
||||
*/
|
||||
protected fun setTestContent(content: @Composable () -> Unit) {
|
||||
composeTestRule.setContent {
|
||||
backDispatcher = LocalOnBackPressedDispatcherOwner.current?.onBackPressedDispatcher
|
||||
content()
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
package com.x8bit.bitwarden.ui.platform.base
|
||||
package com.bitwarden.ui.platform.base
|
||||
|
||||
import dagger.hilt.android.testing.HiltTestApplication
|
||||
import org.junit.runner.RunWith
|
||||
Loading…
x
Reference in New Issue
Block a user