From f02a3a249b31d9fd8ede7935d317d7bdb6ea21fd Mon Sep 17 00:00:00 2001 From: Patrick Honkonen <1883101+SaintPatrck@users.noreply.github.com> Date: Fri, 16 May 2025 13:48:23 -0400 Subject: [PATCH] [PM-21703] Consolidate Robolectric and Compose test base classes (#5210) --- .../auth/repository/util/CaptchaUtilsTest.kt | 4 +- .../auth/repository/util/WebAuthUtilsTest.kt | 4 +- .../platform/base/util/ColorExtensionsTest.kt | 4 +- .../accountsetup/SetupAutofillScreenTest.kt | 4 +- .../accountsetup/SetupCompleteScreenTest.kt | 4 +- .../accountsetup/SetupUnlockScreenTest.kt | 4 +- .../checkemail/CheckEmailScreenTest.kt | 4 +- .../CompleteRegistrationScreenTest.kt | 4 +- .../PasswordStrengthIndicatorTest.kt | 4 +- .../createaccount/CreateAccountScreenTest.kt | 4 +- .../EnterpriseSignOnScreenTest.kt | 4 +- .../environment/EnvironmentScreenTest.kt | 4 +- .../ExpiredRegistrationLinkScreenTest.kt | 4 +- .../auth/feature/landing/LandingScreenTest.kt | 4 +- .../ui/auth/feature/login/LoginScreenTest.kt | 4 +- .../LoginWithDeviceScreenTest.kt | 4 +- .../MasterPasswordGeneratorScreenTest.kt | 4 +- .../MasterPasswordGuidanceScreenTest.kt | 4 +- .../MasterPasswordHintScreenTest.kt | 4 +- .../PreventAccountLockoutScreenTest.kt | 4 +- .../RemovePasswordScreenTest.kt | 4 +- .../resetPassword/ResetPasswordScreenTest.kt | 4 +- .../setpassword/SetPasswordScreenTest.kt | 4 +- .../StartRegistrationScreenTest.kt | 4 +- .../trusteddevice/TrustedDeviceScreenTest.kt | 4 +- .../TwoFactorLoginScreenTest.kt | 4 +- .../vaultunlock/VaultUnlockScreenTest.kt | 4 +- .../auth/feature/welcome/WelcomeScreenTest.kt | 4 +- ...ComposeTest.kt => BitwardenComposeTest.kt} | 29 +-------- .../base/util/StringRestExtensionsTest.kt | 4 +- .../feature/debugmenu/DebugMenuScreenTest.kt | 4 +- .../feature/rootnav/RootNavScreenTest.kt | 4 +- .../feature/search/SearchScreenTest.kt | 4 +- .../feature/settings/SettingsScreenTest.kt | 4 +- .../feature/settings/about/AboutScreenTest.kt | 4 +- .../AccountSecurityScreenTest.kt | 4 +- .../deleteaccount/DeleteAccountScreenTest.kt | 4 +- .../DeleteAccountConfirmationScreenTest.kt | 4 +- .../loginapproval/LoginApprovalScreenTest.kt | 4 +- .../PendingRequestsScreenTest.kt | 4 +- .../appearance/AppearanceScreenTest.kt | 4 +- .../settings/autofill/AutoFillScreenTest.kt | 4 +- .../blockautofill/BlockAutoFillScreenTest.kt | 4 +- .../exportvault/ExportVaultScreenTest.kt | 4 +- .../FlightRecorderScreenTest.kt | 4 +- .../recordedlogs/RecordedLogsScreenTest.kt | 4 +- .../settings/folders/FoldersScreenTest.kt | 4 +- .../addedit/FolderAddEditScreenTest.kt | 4 +- .../feature/settings/other/OtherScreenTest.kt | 4 +- .../settings/vault/VaultSettingsScreenTest.kt | 4 +- .../VaultUnlockedNavBarScreenTest.kt | 4 +- .../feature/generator/GeneratorScreenTest.kt | 6 +- .../PasswordHistoryScreenTest.kt | 4 +- .../ui/tools/feature/send/SendScreenTest.kt | 4 +- .../feature/send/addsend/AddSendScreenTest.kt | 4 +- .../send/viewsend/ViewSendScreenTest.kt | 4 +- .../feature/addedit/VaultAddEditScreenTest.kt | 4 +- .../attachments/AttachmentsScreenTest.kt | 4 +- .../importlogins/ImportLoginsScreenTest.kt | 4 +- .../vault/feature/item/VaultItemScreenTest.kt | 4 +- .../itemlisting/VaultItemListingScreenTest.kt | 4 +- .../ManualCodeEntryScreenTests.kt | 6 +- .../VaultMoveToOrganizationScreenTest.kt | 4 +- .../qrcodescan/QrCodeScanScreenTest.kt | 4 +- .../ui/vault/feature/vault/VaultScreenTest.kt | 4 +- .../VerificationCodeScreenTest.kt | 4 +- .../itemlisting/ItemListingScreenTest.kt | 6 +- .../ManualCodeEntryScreenTest.kt | 6 +- .../qrcodescan/QrCodeScanScreenTest.kt | 6 +- .../feature/tutorial/TutorialScreenTest.kt | 6 +- .../platform/base/AuthenticatorComposeTest.kt | 29 +++++++++ .../ui/platform/base/BaseComposeTest.kt | 59 ------------------- .../ui/platform/base/BaseRobolectricTest.kt | 21 ------- .../feature/debugmenu/DebugMenuScreenTest.kt | 6 +- .../feature/settings/SettingsScreenTest.kt | 6 +- ui/build.gradle.kts | 7 ++- .../ui/platform/base/BaseComposeTest.kt | 39 ++++++++++++ .../ui/platform/base/BaseRobolectricTest.kt | 2 +- 78 files changed, 228 insertions(+), 258 deletions(-) rename app/src/test/java/com/x8bit/bitwarden/ui/platform/base/{BaseComposeTest.kt => BitwardenComposeTest.kt} (71%) create mode 100644 authenticator/src/test/java/com/bitwarden/authenticator/ui/platform/base/AuthenticatorComposeTest.kt delete mode 100644 authenticator/src/test/java/com/bitwarden/authenticator/ui/platform/base/BaseComposeTest.kt delete mode 100644 authenticator/src/test/java/com/bitwarden/authenticator/ui/platform/base/BaseRobolectricTest.kt create mode 100644 ui/src/testFixtures/kotlin/com/bitwarden/ui/platform/base/BaseComposeTest.kt rename {app/src/test/java/com/x8bit => ui/src/testFixtures/kotlin/com}/bitwarden/ui/platform/base/BaseRobolectricTest.kt (92%) diff --git a/app/src/test/java/com/x8bit/bitwarden/data/auth/repository/util/CaptchaUtilsTest.kt b/app/src/test/java/com/x8bit/bitwarden/data/auth/repository/util/CaptchaUtilsTest.kt index 3822c02a4f..30cb2419fa 100644 --- a/app/src/test/java/com/x8bit/bitwarden/data/auth/repository/util/CaptchaUtilsTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/data/auth/repository/util/CaptchaUtilsTest.kt @@ -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`() { diff --git a/app/src/test/java/com/x8bit/bitwarden/data/auth/repository/util/WebAuthUtilsTest.kt b/app/src/test/java/com/x8bit/bitwarden/data/auth/repository/util/WebAuthUtilsTest.kt index a15182462a..0e0908c1b2 100644 --- a/app/src/test/java/com/x8bit/bitwarden/data/auth/repository/util/WebAuthUtilsTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/data/auth/repository/util/WebAuthUtilsTest.kt @@ -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`() { diff --git a/app/src/test/java/com/x8bit/bitwarden/data/platform/base/util/ColorExtensionsTest.kt b/app/src/test/java/com/x8bit/bitwarden/data/platform/base/util/ColorExtensionsTest.kt index 76c67e3698..6b2e74c371 100644 --- a/app/src/test/java/com/x8bit/bitwarden/data/platform/base/util/ColorExtensionsTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/data/platform/base/util/ColorExtensionsTest.kt @@ -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`() { diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/accountsetup/SetupAutofillScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/accountsetup/SetupAutofillScreenTest.kt index d4853871b7..897b1c242b 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/accountsetup/SetupAutofillScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/accountsetup/SetupAutofillScreenTest.kt @@ -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() diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/accountsetup/SetupCompleteScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/accountsetup/SetupCompleteScreenTest.kt index a5043e267d..9c85d1b805 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/accountsetup/SetupCompleteScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/accountsetup/SetupCompleteScreenTest.kt @@ -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(relaxed = true) diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/accountsetup/SetupUnlockScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/accountsetup/SetupUnlockScreenTest.kt index 98da570bf6..61ceb4b08a 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/accountsetup/SetupUnlockScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/accountsetup/SetupUnlockScreenTest.kt @@ -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>() diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/checkemail/CheckEmailScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/checkemail/CheckEmailScreenTest.kt index 92029061b6..6e7e836878 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/checkemail/CheckEmailScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/checkemail/CheckEmailScreenTest.kt @@ -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(relaxed = true) { every { startDefaultEmailApplication() } just runs } diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/completeregistration/CompleteRegistrationScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/completeregistration/CompleteRegistrationScreenTest.kt index 9ddea34ce0..e59fe58f40 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/completeregistration/CompleteRegistrationScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/completeregistration/CompleteRegistrationScreenTest.kt @@ -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 diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/completeregistration/PasswordStrengthIndicatorTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/completeregistration/PasswordStrengthIndicatorTest.kt index 510cf32121..08abb8c9a4 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/completeregistration/PasswordStrengthIndicatorTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/completeregistration/PasswordStrengthIndicatorTest.kt @@ -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 diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/createaccount/CreateAccountScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/createaccount/CreateAccountScreenTest.kt index 8fa5015a40..ff51ba1d40 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/createaccount/CreateAccountScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/createaccount/CreateAccountScreenTest.kt @@ -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 diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/enterprisesignon/EnterpriseSignOnScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/enterprisesignon/EnterpriseSignOnScreenTest.kt index 4882fb8a77..16404a802c 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/enterprisesignon/EnterpriseSignOnScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/enterprisesignon/EnterpriseSignOnScreenTest.kt @@ -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? = null diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/environment/EnvironmentScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/environment/EnvironmentScreenTest.kt index d385262d20..f5ac810261 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/environment/EnvironmentScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/environment/EnvironmentScreenTest.kt @@ -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() private val mutableStateFlow = MutableStateFlow(DEFAULT_STATE) diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/expiredregistrationlink/ExpiredRegistrationLinkScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/expiredregistrationlink/ExpiredRegistrationLinkScreenTest.kt index c3db0c9b8c..24dfbca940 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/expiredregistrationlink/ExpiredRegistrationLinkScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/expiredregistrationlink/ExpiredRegistrationLinkScreenTest.kt @@ -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 diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/landing/LandingScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/landing/LandingScreenTest.kt index 2986feb9ee..30880c9115 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/landing/LandingScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/landing/LandingScreenTest.kt @@ -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 diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/login/LoginScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/login/LoginScreenTest.kt index 7211abb89b..b3bf32f429 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/login/LoginScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/login/LoginScreenTest.kt @@ -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 } diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/loginwithdevice/LoginWithDeviceScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/loginwithdevice/LoginWithDeviceScreenTest.kt index 4638494c4a..237a2dd66a 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/loginwithdevice/LoginWithDeviceScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/loginwithdevice/LoginWithDeviceScreenTest.kt @@ -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 diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/masterpasswordgenerator/MasterPasswordGeneratorScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/masterpasswordgenerator/MasterPasswordGeneratorScreenTest.kt index 39e80a81b0..756e07f2f1 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/masterpasswordgenerator/MasterPasswordGeneratorScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/masterpasswordgenerator/MasterPasswordGeneratorScreenTest.kt @@ -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 diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/masterpasswordguidance/MasterPasswordGuidanceScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/masterpasswordguidance/MasterPasswordGuidanceScreenTest.kt index adbb913d33..5ec2751da5 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/masterpasswordguidance/MasterPasswordGuidanceScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/masterpasswordguidance/MasterPasswordGuidanceScreenTest.kt @@ -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 diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/masterpasswordhint/MasterPasswordHintScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/masterpasswordhint/MasterPasswordHintScreenTest.kt index d2a3ecb861..4019be7c89 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/masterpasswordhint/MasterPasswordHintScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/masterpasswordhint/MasterPasswordHintScreenTest.kt @@ -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() diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/preventaccountlockout/PreventAccountLockoutScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/preventaccountlockout/PreventAccountLockoutScreenTest.kt index 70c14fe006..264fb9d66f 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/preventaccountlockout/PreventAccountLockoutScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/preventaccountlockout/PreventAccountLockoutScreenTest.kt @@ -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() private val viewModel = mockk(relaxed = true) { diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/removepassword/RemovePasswordScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/removepassword/RemovePasswordScreenTest.kt index b028ebbc76..266a3aa183 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/removepassword/RemovePasswordScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/removepassword/RemovePasswordScreenTest.kt @@ -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(relaxed = true) { every { eventFlow } returns bufferedMutableSharedFlow() diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/resetPassword/ResetPasswordScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/resetPassword/ResetPasswordScreenTest.kt index 47e78b6bbb..aef377a00e 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/resetPassword/ResetPasswordScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/resetPassword/ResetPasswordScreenTest.kt @@ -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() private val mutableStateFlow = MutableStateFlow(DEFAULT_STATE) diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/setpassword/SetPasswordScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/setpassword/SetPasswordScreenTest.kt index dd7065deb2..0462092280 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/setpassword/SetPasswordScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/setpassword/SetPasswordScreenTest.kt @@ -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() private val mutableStateFlow = MutableStateFlow(DEFAULT_STATE) val viewModel = mockk(relaxed = true) { diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/startregistration/StartRegistrationScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/startregistration/StartRegistrationScreenTest.kt index ec4388c855..5658e0c12a 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/startregistration/StartRegistrationScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/startregistration/StartRegistrationScreenTest.kt @@ -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 diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/trusteddevice/TrustedDeviceScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/trusteddevice/TrustedDeviceScreenTest.kt index 87797f4bbf..b6c39bc608 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/trusteddevice/TrustedDeviceScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/trusteddevice/TrustedDeviceScreenTest.kt @@ -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 diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/twofactorlogin/TwoFactorLoginScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/twofactorlogin/TwoFactorLoginScreenTest.kt index 4801dcba93..4607c2e5d5 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/twofactorlogin/TwoFactorLoginScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/twofactorlogin/TwoFactorLoginScreenTest.kt @@ -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(relaxed = true) { every { launchUri(any()) } just runs } diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/vaultunlock/VaultUnlockScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/vaultunlock/VaultUnlockScreenTest.kt index 105d1d2c71..8ca0b72f8f 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/vaultunlock/VaultUnlockScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/vaultunlock/VaultUnlockScreenTest.kt @@ -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() private val mutableStateFlow = MutableStateFlow(DEFAULT_STATE) diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/welcome/WelcomeScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/welcome/WelcomeScreenTest.kt index 0ec5a6ae53..2824888f0c 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/welcome/WelcomeScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/auth/feature/welcome/WelcomeScreenTest.kt @@ -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 diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/platform/base/BaseComposeTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/platform/base/BitwardenComposeTest.kt similarity index 71% rename from app/src/test/java/com/x8bit/bitwarden/ui/platform/base/BaseComposeTest.kt rename to app/src/test/java/com/x8bit/bitwarden/ui/platform/base/BitwardenComposeTest.kt index 5f04170da6..fe9e970e1d 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/platform/base/BaseComposeTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/platform/base/BitwardenComposeTest.kt @@ -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, diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/platform/base/util/StringRestExtensionsTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/platform/base/util/StringRestExtensionsTest.kt index 43bf9d963d..8836e5ad8e 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/platform/base/util/StringRestExtensionsTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/platform/base/util/StringRestExtensionsTest.kt @@ -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`() { diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/debugmenu/DebugMenuScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/debugmenu/DebugMenuScreenTest.kt index dbe8716549..740e1bf615 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/debugmenu/DebugMenuScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/debugmenu/DebugMenuScreenTest.kt @@ -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() private val mutableStateFlow = MutableStateFlow( diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/rootnav/RootNavScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/rootnav/RootNavScreenTest.kt index b03cebb0af..f9cecf023e 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/rootnav/RootNavScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/rootnav/RootNavScreenTest.kt @@ -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.Splash) private val viewModel = mockk { diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/search/SearchScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/search/SearchScreenTest.kt index 4e502aa1a7..178cddc9d0 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/search/SearchScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/search/SearchScreenTest.kt @@ -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() private val mutableStateFlow = MutableStateFlow(DEFAULT_STATE) private val viewModel = mockk(relaxed = true) { diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/SettingsScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/SettingsScreenTest.kt index 5efaed3fee..93d91ea7f5 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/SettingsScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/SettingsScreenTest.kt @@ -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 diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/about/AboutScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/about/AboutScreenTest.kt index 0d04e3eef7..33f5fbbe37 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/about/AboutScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/about/AboutScreenTest.kt @@ -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 diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/AccountSecurityScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/AccountSecurityScreenTest.kt index a703a65cfa..3906a023d2 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/AccountSecurityScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/AccountSecurityScreenTest.kt @@ -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 diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/deleteaccount/DeleteAccountScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/deleteaccount/DeleteAccountScreenTest.kt index 0d1d4eda1a..38477638de 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/deleteaccount/DeleteAccountScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/deleteaccount/DeleteAccountScreenTest.kt @@ -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 diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/deleteaccountconfirmation/DeleteAccountConfirmationScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/deleteaccountconfirmation/DeleteAccountConfirmationScreenTest.kt index 63a63cd106..885442aeeb 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/deleteaccountconfirmation/DeleteAccountConfirmationScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/deleteaccountconfirmation/DeleteAccountConfirmationScreenTest.kt @@ -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() diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/loginapproval/LoginApprovalScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/loginapproval/LoginApprovalScreenTest.kt index 30ebec3fea..2f538f42aa 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/loginapproval/LoginApprovalScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/loginapproval/LoginApprovalScreenTest.kt @@ -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 diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/pendingrequests/PendingRequestsScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/pendingrequests/PendingRequestsScreenTest.kt index e779bbbafc..697f66e6fe 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/pendingrequests/PendingRequestsScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/pendingrequests/PendingRequestsScreenTest.kt @@ -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 diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/appearance/AppearanceScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/appearance/AppearanceScreenTest.kt index b922fd2929..4fe02945c3 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/appearance/AppearanceScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/appearance/AppearanceScreenTest.kt @@ -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() diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/autofill/AutoFillScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/autofill/AutoFillScreenTest.kt index b42bfca801..82ef1d1ca8 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/autofill/AutoFillScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/autofill/AutoFillScreenTest.kt @@ -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 diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/autofill/blockautofill/BlockAutoFillScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/autofill/blockautofill/BlockAutoFillScreenTest.kt index 5ce4456912..a67a750080 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/autofill/blockautofill/BlockAutoFillScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/autofill/blockautofill/BlockAutoFillScreenTest.kt @@ -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 diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/exportvault/ExportVaultScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/exportvault/ExportVaultScreenTest.kt index 048741535d..8fdafbfd48 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/exportvault/ExportVaultScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/exportvault/ExportVaultScreenTest.kt @@ -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() private val mutableStateFlow = MutableStateFlow(DEFAULT_STATE) diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/flightrecorder/FlightRecorderScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/flightrecorder/FlightRecorderScreenTest.kt index edeb5b8c38..df649d0fca 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/flightrecorder/FlightRecorderScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/flightrecorder/FlightRecorderScreenTest.kt @@ -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() private val mutableStateFlow = MutableStateFlow(DEFAULT_STATE) diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/flightrecorder/recordedlogs/RecordedLogsScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/flightrecorder/recordedlogs/RecordedLogsScreenTest.kt index de02815ff0..86966de6bf 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/flightrecorder/recordedlogs/RecordedLogsScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/flightrecorder/recordedlogs/RecordedLogsScreenTest.kt @@ -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() private val mutableStateFlow = MutableStateFlow(DEFAULT_STATE) diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/folders/FoldersScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/folders/FoldersScreenTest.kt index eb473ff9e8..5c41338b9a 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/folders/FoldersScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/folders/FoldersScreenTest.kt @@ -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 diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/folders/addedit/FolderAddEditScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/folders/addedit/FolderAddEditScreenTest.kt index 7f5719cdd3..d2f997ad5b 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/folders/addedit/FolderAddEditScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/folders/addedit/FolderAddEditScreenTest.kt @@ -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 diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/other/OtherScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/other/OtherScreenTest.kt index aaa5e67039..83abb8edbb 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/other/OtherScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/other/OtherScreenTest.kt @@ -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() diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/vault/VaultSettingsScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/vault/VaultSettingsScreenTest.kt index 5b8a01e759..c59f7d374e 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/vault/VaultSettingsScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/vault/VaultSettingsScreenTest.kt @@ -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 diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/vaultunlockednavbar/VaultUnlockedNavBarScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/vaultunlockednavbar/VaultUnlockedNavBarScreenTest.kt index dd5c0198a6..5cffd823b6 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/vaultunlockednavbar/VaultUnlockedNavBarScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/vaultunlockednavbar/VaultUnlockedNavBarScreenTest.kt @@ -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() private val mutableStateFlow = MutableStateFlow(DEFAULT_STATE) diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/tools/feature/generator/GeneratorScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/tools/feature/generator/GeneratorScreenTest.kt index 9572e354a1..d9da7e2cca 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/tools/feature/generator/GeneratorScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/tools/feature/generator/GeneratorScreenTest.kt @@ -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 diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/tools/feature/generator/passwordhistory/PasswordHistoryScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/tools/feature/generator/passwordhistory/PasswordHistoryScreenTest.kt index b2972e5e6a..e5eefc2b9b 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/tools/feature/generator/passwordhistory/PasswordHistoryScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/tools/feature/generator/passwordhistory/PasswordHistoryScreenTest.kt @@ -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() diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/tools/feature/send/SendScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/tools/feature/send/SendScreenTest.kt index f8a2bc22d6..96e3aff2a9 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/tools/feature/send/SendScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/tools/feature/send/SendScreenTest.kt @@ -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 diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/tools/feature/send/addsend/AddSendScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/tools/feature/send/addsend/AddSendScreenTest.kt index 4b019e2b73..ac8d781fba 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/tools/feature/send/addsend/AddSendScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/tools/feature/send/addsend/AddSendScreenTest.kt @@ -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 diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/tools/feature/send/viewsend/ViewSendScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/tools/feature/send/viewsend/ViewSendScreenTest.kt index 65b450d5e6..714f396772 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/tools/feature/send/viewsend/ViewSendScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/tools/feature/send/viewsend/ViewSendScreenTest.kt @@ -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() diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditScreenTest.kt index f82ad92bfd..58ca27b72f 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditScreenTest.kt @@ -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 diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/attachments/AttachmentsScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/attachments/AttachmentsScreenTest.kt index 6fae0d2af5..a4e66995b3 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/attachments/AttachmentsScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/attachments/AttachmentsScreenTest.kt @@ -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) diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/importlogins/ImportLoginsScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/importlogins/ImportLoginsScreenTest.kt index bc487b1cf0..e9454e664a 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/importlogins/ImportLoginsScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/importlogins/ImportLoginsScreenTest.kt @@ -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) diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemScreenTest.kt index 55d67a2591..364a1304a4 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemScreenTest.kt @@ -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 diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingScreenTest.kt index 9883fa18b2..c925f3252b 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingScreenTest.kt @@ -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 diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/manualcodeentry/ManualCodeEntryScreenTests.kt b/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/manualcodeentry/ManualCodeEntryScreenTests.kt index 35c2afc6ad..18fb93a948 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/manualcodeentry/ManualCodeEntryScreenTests.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/manualcodeentry/ManualCodeEntryScreenTests.kt @@ -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 diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/movetoorganization/VaultMoveToOrganizationScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/movetoorganization/VaultMoveToOrganizationScreenTest.kt index f27db77bca..3a9862ee90 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/movetoorganization/VaultMoveToOrganizationScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/movetoorganization/VaultMoveToOrganizationScreenTest.kt @@ -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 diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/qrcodescan/QrCodeScanScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/qrcodescan/QrCodeScanScreenTest.kt index 8151cac29d..97fe623e58 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/qrcodescan/QrCodeScanScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/qrcodescan/QrCodeScanScreenTest.kt @@ -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 diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/vault/VaultScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/vault/VaultScreenTest.kt index 2ea41a799b..2fe6b0af77 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/vault/VaultScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/vault/VaultScreenTest.kt @@ -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 diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/verificationcode/VerificationCodeScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/verificationcode/VerificationCodeScreenTest.kt index 3a3e2ee3f5..21be00c5a7 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/verificationcode/VerificationCodeScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/verificationcode/VerificationCodeScreenTest.kt @@ -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 diff --git a/authenticator/src/test/java/com/bitwarden/authenticator/ui/authenticator/feature/itemlisting/ItemListingScreenTest.kt b/authenticator/src/test/java/com/bitwarden/authenticator/ui/authenticator/feature/itemlisting/ItemListingScreenTest.kt index 24ca6d0f18..aa237e0cf1 100644 --- a/authenticator/src/test/java/com/bitwarden/authenticator/ui/authenticator/feature/itemlisting/ItemListingScreenTest.kt +++ b/authenticator/src/test/java/com/bitwarden/authenticator/ui/authenticator/feature/itemlisting/ItemListingScreenTest.kt @@ -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, diff --git a/authenticator/src/test/java/com/bitwarden/authenticator/ui/authenticator/feature/manualcodeentry/ManualCodeEntryScreenTest.kt b/authenticator/src/test/java/com/bitwarden/authenticator/ui/authenticator/feature/manualcodeentry/ManualCodeEntryScreenTest.kt index 84fea570ce..24be096542 100644 --- a/authenticator/src/test/java/com/bitwarden/authenticator/ui/authenticator/feature/manualcodeentry/ManualCodeEntryScreenTest.kt +++ b/authenticator/src/test/java/com/bitwarden/authenticator/ui/authenticator/feature/manualcodeentry/ManualCodeEntryScreenTest.kt @@ -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() @@ -33,7 +33,7 @@ class ManualCodeEntryScreenTest : BaseComposeTest() { @Before fun setup() { - composeTestRule.setContent { + setContent { ManualCodeEntryScreen( onNavigateBack = {}, onNavigateToQrCodeScreen = {}, diff --git a/authenticator/src/test/java/com/bitwarden/authenticator/ui/authenticator/feature/qrcodescan/QrCodeScanScreenTest.kt b/authenticator/src/test/java/com/bitwarden/authenticator/ui/authenticator/feature/qrcodescan/QrCodeScanScreenTest.kt index 6066930caa..934c5f68e5 100644 --- a/authenticator/src/test/java/com/bitwarden/authenticator/ui/authenticator/feature/qrcodescan/QrCodeScanScreenTest.kt +++ b/authenticator/src/test/java/com/bitwarden/authenticator/ui/authenticator/feature/qrcodescan/QrCodeScanScreenTest.kt @@ -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, diff --git a/authenticator/src/test/java/com/bitwarden/authenticator/ui/authenticator/feature/tutorial/TutorialScreenTest.kt b/authenticator/src/test/java/com/bitwarden/authenticator/ui/authenticator/feature/tutorial/TutorialScreenTest.kt index 3dc036891a..e9ec9ceb0f 100644 --- a/authenticator/src/test/java/com/bitwarden/authenticator/ui/authenticator/feature/tutorial/TutorialScreenTest.kt +++ b/authenticator/src/test/java/com/bitwarden/authenticator/ui/authenticator/feature/tutorial/TutorialScreenTest.kt @@ -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() @@ -31,7 +31,7 @@ class TutorialScreenTest : BaseComposeTest() { @Before fun setUp() { - composeTestRule.setContent { + setContent { TutorialScreen( viewModel = viewModel, onTutorialFinished = { onTutorialFinishedCalled = true }, diff --git a/authenticator/src/test/java/com/bitwarden/authenticator/ui/platform/base/AuthenticatorComposeTest.kt b/authenticator/src/test/java/com/bitwarden/authenticator/ui/platform/base/AuthenticatorComposeTest.kt new file mode 100644 index 0000000000..96bdd3cc9c --- /dev/null +++ b/authenticator/src/test/java/com/bitwarden/authenticator/ui/platform/base/AuthenticatorComposeTest.kt @@ -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() } + } + } + } +} diff --git a/authenticator/src/test/java/com/bitwarden/authenticator/ui/platform/base/BaseComposeTest.kt b/authenticator/src/test/java/com/bitwarden/authenticator/ui/platform/base/BaseComposeTest.kt deleted file mode 100644 index 8dc7e5357c..0000000000 --- a/authenticator/src/test/java/com/bitwarden/authenticator/ui/platform/base/BaseComposeTest.kt +++ /dev/null @@ -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() - } - } -} diff --git a/authenticator/src/test/java/com/bitwarden/authenticator/ui/platform/base/BaseRobolectricTest.kt b/authenticator/src/test/java/com/bitwarden/authenticator/ui/platform/base/BaseRobolectricTest.kt deleted file mode 100644 index 745ee9cd8b..0000000000 --- a/authenticator/src/test/java/com/bitwarden/authenticator/ui/platform/base/BaseRobolectricTest.kt +++ /dev/null @@ -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 - } -} diff --git a/authenticator/src/test/java/com/bitwarden/authenticator/ui/platform/feature/debugmenu/DebugMenuScreenTest.kt b/authenticator/src/test/java/com/bitwarden/authenticator/ui/platform/feature/debugmenu/DebugMenuScreenTest.kt index 307591cdec..776dccb912 100644 --- a/authenticator/src/test/java/com/bitwarden/authenticator/ui/platform/feature/debugmenu/DebugMenuScreenTest.kt +++ b/authenticator/src/test/java/com/bitwarden/authenticator/ui/platform/feature/debugmenu/DebugMenuScreenTest.kt @@ -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() 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, diff --git a/authenticator/src/test/java/com/bitwarden/authenticator/ui/platform/feature/settings/SettingsScreenTest.kt b/authenticator/src/test/java/com/bitwarden/authenticator/ui/platform/feature/settings/SettingsScreenTest.kt index 1502a2291a..1adba31caa 100644 --- a/authenticator/src/test/java/com/bitwarden/authenticator/ui/platform/feature/settings/SettingsScreenTest.kt +++ b/authenticator/src/test/java/com/bitwarden/authenticator/ui/platform/feature/settings/SettingsScreenTest.kt @@ -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, diff --git a/ui/build.gradle.kts b/ui/build.gradle.kts index 0e12961dd9..e2ff1fa8d3 100644 --- a/ui/build.gradle.kts +++ b/ui/build.gradle.kts @@ -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 { diff --git a/ui/src/testFixtures/kotlin/com/bitwarden/ui/platform/base/BaseComposeTest.kt b/ui/src/testFixtures/kotlin/com/bitwarden/ui/platform/base/BaseComposeTest.kt new file mode 100644 index 0000000000..9aab3b1d03 --- /dev/null +++ b/ui/src/testFixtures/kotlin/com/bitwarden/ui/platform/base/BaseComposeTest.kt @@ -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() + } + } +} diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/platform/base/BaseRobolectricTest.kt b/ui/src/testFixtures/kotlin/com/bitwarden/ui/platform/base/BaseRobolectricTest.kt similarity index 92% rename from app/src/test/java/com/x8bit/bitwarden/ui/platform/base/BaseRobolectricTest.kt rename to ui/src/testFixtures/kotlin/com/bitwarden/ui/platform/base/BaseRobolectricTest.kt index e5453562d3..12bf23bdbf 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/platform/base/BaseRobolectricTest.kt +++ b/ui/src/testFixtures/kotlin/com/bitwarden/ui/platform/base/BaseRobolectricTest.kt @@ -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