From c14545107d8daa5c799b4bb871761ec76c9c0658 Mon Sep 17 00:00:00 2001 From: David Perez Date: Wed, 21 May 2025 12:23:04 -0500 Subject: [PATCH] PM-21879: Move SpanStyleUtil and StringResExtensions to UI module (#5238) --- .../feature/checkemail/CheckEmailScreen.kt | 2 +- .../createaccount/CreateAccountScreen.kt | 2 +- .../MasterPasswordGuidanceScreen.kt | 1 - .../StartRegistrationScreen.kt | 2 +- .../components/text/BitwardenHyperTextLink.kt | 4 +- .../importlogins/ImportLoginsScreen.kt | 3 +- .../components/ImportLoginsInstructionStep.kt | 1 - .../feature/qrcodescan/QrCodeScanScreen.kt | 2 +- .../accountsetup/SetupAutofillScreenTest.kt | 2 +- .../accountsetup/SetupUnlockScreenTest.kt | 2 +- .../createaccount/CreateAccountScreenTest.kt | 2 +- .../EnterpriseSignOnScreenTest.kt | 2 +- .../auth/feature/landing/LandingScreenTest.kt | 2 +- .../ui/auth/feature/login/LoginScreenTest.kt | 2 +- .../LoginWithDeviceScreenTest.kt | 4 +- .../MasterPasswordHintScreenTest.kt | 2 +- .../RemovePasswordScreenTest.kt | 2 +- .../resetPassword/ResetPasswordScreenTest.kt | 4 +- .../setpassword/SetPasswordScreenTest.kt | 2 +- .../StartRegistrationScreenTest.kt | 2 +- .../trusteddevice/TrustedDeviceScreenTest.kt | 2 +- .../vaultunlock/VaultUnlockScreenTest.kt | 2 +- .../feature/search/SearchScreenTest.kt | 6 +-- .../util/SearchTypeDataExtensionsTest.kt | 2 +- .../AccountSecurityScreenTest.kt | 2 +- .../PendingRequestsScreenTest.kt | 2 +- .../appearance/AppearanceScreenTest.kt | 2 +- .../settings/autofill/AutoFillScreenTest.kt | 2 +- .../blockautofill/BlockAutoFillScreenTest.kt | 2 +- .../util/UriMatchTypeExtensionsTest.kt | 2 +- .../exportvault/ExportVaultScreenTest.kt | 2 +- .../FlightRecorderScreenTest.kt | 4 +- .../recordedlogs/RecordedLogsScreenTest.kt | 4 +- .../addedit/FolderAddEditScreenTest.kt | 2 +- .../feature/settings/other/OtherScreenTest.kt | 2 +- .../util/ExportVaultFormatExtensionTest.kt | 2 +- .../util/VaultTimeoutActionExtensionsTest.kt | 2 +- .../util/VaultTimeoutExtensionsTest.kt | 2 +- .../util/ServiceTypeExtensionsTest.kt | 2 +- .../ui/tools/feature/send/SendScreenTest.kt | 4 +- .../send/addedit/AddEditSendScreenTest.kt | 6 +-- .../send/viewsend/ViewSendScreenTest.kt | 4 +- .../bitwarden/ui/util/ComposeTextHelper.kt | 13 +++++ .../feature/addedit/VaultAddEditScreenTest.kt | 14 +++--- .../attachments/AttachmentsScreenTest.kt | 8 ++-- .../importlogins/ImportLoginsScreenTest.kt | 2 +- .../vault/feature/item/VaultItemScreenTest.kt | 12 ++--- .../feature/item/util/VaultItemTestUtil.kt | 4 +- .../itemlisting/VaultItemListingScreenTest.kt | 8 ++-- .../ManualCodeEntryScreenTests.kt | 4 +- .../VaultMoveToOrganizationScreenTest.kt | 2 +- .../qrcodescan/QrCodeScanScreenTest.kt | 2 +- .../ui/vault/feature/vault/VaultScreenTest.kt | 6 +-- .../util/VaultFilterDataExtensionsTest.kt | 2 +- .../VerificationCodeScreenTest.kt | 2 +- .../util/VaultCardBrandExtensionsTest.kt | 2 +- .../util/DefaultSaveOptionExtensionsTest.kt | 2 +- ui/build.gradle.kts | 2 + .../ui/platform/base}/util/SpanStyleUtil.kt | 2 +- .../platform/base/util/StringResExtensions.kt | 4 +- .../base/util/StringResExtensionsTest.kt | 48 ++++++++----------- .../res/values/strings_for_tests_only.xml | 0 .../bitwarden/ui/util/ComposeTestHelpers.kt | 12 +---- 63 files changed, 125 insertions(+), 131 deletions(-) create mode 100644 app/src/test/java/com/x8bit/bitwarden/ui/util/ComposeTextHelper.kt rename {app/src/main/java/com/x8bit/bitwarden/ui/platform => ui/src/main/kotlin/com/bitwarden/ui/platform/base}/util/SpanStyleUtil.kt (95%) rename {app/src/main/java/com/x8bit => ui/src/main/kotlin/com}/bitwarden/ui/platform/base/util/StringResExtensions.kt (97%) rename app/src/test/java/com/x8bit/bitwarden/ui/platform/base/util/StringRestExtensionsTest.kt => ui/src/test/kotlin/com/bitwarden/ui/platform/base/util/StringResExtensionsTest.kt (72%) rename {app => ui}/src/test/res/values/strings_for_tests_only.xml (100%) rename {app/src/test/java/com/x8bit => ui/src/testFixtures/kotlin/com}/bitwarden/ui/util/ComposeTestHelpers.kt (94%) diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/checkemail/CheckEmailScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/checkemail/CheckEmailScreen.kt index a2b6711b71..83f5d47b70 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/checkemail/CheckEmailScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/checkemail/CheckEmailScreen.kt @@ -32,11 +32,11 @@ import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.bitwarden.ui.platform.base.util.EventsEffect import com.bitwarden.ui.platform.base.util.standardHorizontalMargin +import com.bitwarden.ui.platform.base.util.toAnnotatedString import com.bitwarden.ui.platform.components.util.rememberVectorPainter import com.bitwarden.ui.platform.theme.BitwardenTheme import com.x8bit.bitwarden.R import com.x8bit.bitwarden.ui.auth.feature.checkemail.handlers.rememberCheckEmailHandler -import com.x8bit.bitwarden.ui.platform.base.util.toAnnotatedString import com.x8bit.bitwarden.ui.platform.components.appbar.BitwardenTopAppBar import com.x8bit.bitwarden.ui.platform.components.button.BitwardenFilledButton import com.x8bit.bitwarden.ui.platform.components.button.BitwardenOutlinedButton diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/createaccount/CreateAccountScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/createaccount/CreateAccountScreen.kt index b165000421..7debaf7003 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/createaccount/CreateAccountScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/createaccount/CreateAccountScreen.kt @@ -35,6 +35,7 @@ import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.bitwarden.ui.platform.base.util.EventsEffect import com.bitwarden.ui.platform.base.util.standardHorizontalMargin +import com.bitwarden.ui.platform.base.util.toAnnotatedString import com.bitwarden.ui.platform.components.model.CardStyle import com.bitwarden.ui.platform.components.util.rememberVectorPainter import com.bitwarden.ui.platform.theme.BitwardenTheme @@ -54,7 +55,6 @@ import com.x8bit.bitwarden.ui.auth.feature.createaccount.CreateAccountAction.Sub import com.x8bit.bitwarden.ui.auth.feature.createaccount.CreateAccountAction.TermsClick import com.x8bit.bitwarden.ui.auth.feature.createaccount.CreateAccountEvent.NavigateToPrivacyPolicy import com.x8bit.bitwarden.ui.auth.feature.createaccount.CreateAccountEvent.NavigateToTerms -import com.x8bit.bitwarden.ui.platform.base.util.toAnnotatedString import com.x8bit.bitwarden.ui.platform.components.appbar.BitwardenTopAppBar import com.x8bit.bitwarden.ui.platform.components.button.BitwardenTextButton import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenBasicDialog diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/masterpasswordguidance/MasterPasswordGuidanceScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/masterpasswordguidance/MasterPasswordGuidanceScreen.kt index ed1579e44d..ecb036f5ea 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/masterpasswordguidance/MasterPasswordGuidanceScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/masterpasswordguidance/MasterPasswordGuidanceScreen.kt @@ -28,7 +28,6 @@ import com.bitwarden.ui.platform.base.util.toAnnotatedString import com.bitwarden.ui.platform.components.util.rememberVectorPainter import com.bitwarden.ui.platform.theme.BitwardenTheme import com.x8bit.bitwarden.R -import com.x8bit.bitwarden.ui.platform.base.util.toAnnotatedString import com.x8bit.bitwarden.ui.platform.components.appbar.BitwardenTopAppBar import com.x8bit.bitwarden.ui.platform.components.card.BitwardenActionCard import com.x8bit.bitwarden.ui.platform.components.card.BitwardenContentCard diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/startregistration/StartRegistrationScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/startregistration/StartRegistrationScreen.kt index 338a849b46..4fa5675529 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/startregistration/StartRegistrationScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/startregistration/StartRegistrationScreen.kt @@ -44,6 +44,7 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.bitwarden.data.repository.model.Environment import com.bitwarden.ui.platform.base.util.EventsEffect import com.bitwarden.ui.platform.base.util.standardHorizontalMargin +import com.bitwarden.ui.platform.base.util.toAnnotatedString import com.bitwarden.ui.platform.components.model.CardStyle import com.bitwarden.ui.platform.components.util.rememberVectorPainter import com.bitwarden.ui.platform.theme.BitwardenTheme @@ -53,7 +54,6 @@ import com.x8bit.bitwarden.ui.auth.feature.startregistration.StartRegistrationEv import com.x8bit.bitwarden.ui.auth.feature.startregistration.StartRegistrationEvent.NavigateToTerms import com.x8bit.bitwarden.ui.auth.feature.startregistration.handlers.StartRegistrationHandler import com.x8bit.bitwarden.ui.auth.feature.startregistration.handlers.rememberStartRegistrationHandler -import com.x8bit.bitwarden.ui.platform.base.util.toAnnotatedString import com.x8bit.bitwarden.ui.platform.components.appbar.BitwardenTopAppBar import com.x8bit.bitwarden.ui.platform.components.button.BitwardenFilledButton import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenBasicDialog diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/text/BitwardenHyperTextLink.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/text/BitwardenHyperTextLink.kt index 14d055282a..13bbfa26fe 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/text/BitwardenHyperTextLink.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/text/BitwardenHyperTextLink.kt @@ -10,9 +10,9 @@ import androidx.compose.ui.semantics.customActions import androidx.compose.ui.semantics.semantics import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.style.TextAlign +import com.bitwarden.ui.platform.base.util.spanStyleOf +import com.bitwarden.ui.platform.base.util.toAnnotatedString import com.bitwarden.ui.platform.theme.BitwardenTheme -import com.x8bit.bitwarden.ui.platform.base.util.toAnnotatedString -import com.x8bit.bitwarden.ui.platform.util.spanStyleOf /** * Uses an annotated string resource to create a string with clickable text. diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/importlogins/ImportLoginsScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/importlogins/ImportLoginsScreen.kt index 82aa0ebdc5..8b7d58f6f5 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/importlogins/ImportLoginsScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/importlogins/ImportLoginsScreen.kt @@ -39,13 +39,12 @@ import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.bitwarden.annotation.OmitFromCoverage import com.bitwarden.ui.platform.base.util.EventsEffect +import com.bitwarden.ui.platform.base.util.bitwardenBoldSpanStyle import com.bitwarden.ui.platform.base.util.standardHorizontalMargin import com.bitwarden.ui.platform.base.util.toAnnotatedString import com.bitwarden.ui.platform.components.util.rememberVectorPainter import com.bitwarden.ui.platform.theme.BitwardenTheme import com.x8bit.bitwarden.R -import com.x8bit.bitwarden.ui.platform.base.util.bitwardenBoldSpanStyle -import com.x8bit.bitwarden.ui.platform.base.util.toAnnotatedString import com.x8bit.bitwarden.ui.platform.components.appbar.BitwardenTopAppBar import com.x8bit.bitwarden.ui.platform.components.appbar.NavigationIcon import com.x8bit.bitwarden.ui.platform.components.bottomsheet.BitwardenModalBottomSheet diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/importlogins/components/ImportLoginsInstructionStep.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/importlogins/components/ImportLoginsInstructionStep.kt index 4463da8732..4101a5df61 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/importlogins/components/ImportLoginsInstructionStep.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/importlogins/components/ImportLoginsInstructionStep.kt @@ -23,7 +23,6 @@ import com.bitwarden.ui.platform.base.util.standardHorizontalMargin import com.bitwarden.ui.platform.base.util.toAnnotatedString import com.bitwarden.ui.platform.theme.BitwardenTheme import com.x8bit.bitwarden.R -import com.x8bit.bitwarden.ui.platform.base.util.toAnnotatedString import com.x8bit.bitwarden.ui.platform.components.button.BitwardenFilledButton import com.x8bit.bitwarden.ui.platform.components.button.BitwardenOutlinedButton import com.x8bit.bitwarden.ui.platform.components.card.BitwardenContentCard diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/qrcodescan/QrCodeScanScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/qrcodescan/QrCodeScanScreen.kt index 4b157dbf58..d5cf814b6b 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/qrcodescan/QrCodeScanScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/qrcodescan/QrCodeScanScreen.kt @@ -52,6 +52,7 @@ import androidx.core.content.ContextCompat import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.LocalLifecycleOwner import com.bitwarden.ui.platform.base.util.EventsEffect +import com.bitwarden.ui.platform.base.util.toAnnotatedString import com.bitwarden.ui.platform.components.util.rememberVectorPainter import com.bitwarden.ui.platform.model.WindowSize import com.bitwarden.ui.platform.theme.BitwardenTheme @@ -59,7 +60,6 @@ import com.bitwarden.ui.platform.theme.LocalBitwardenColorScheme import com.bitwarden.ui.platform.theme.color.darkBitwardenColorScheme import com.bitwarden.ui.platform.util.rememberWindowSize import com.x8bit.bitwarden.R -import com.x8bit.bitwarden.ui.platform.base.util.toAnnotatedString import com.x8bit.bitwarden.ui.platform.components.appbar.BitwardenTopAppBar import com.x8bit.bitwarden.ui.platform.components.scaffold.BitwardenScaffold import com.x8bit.bitwarden.ui.vault.feature.qrcodescan.util.QrCodeAnalyzer 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 897b1c242b..371c923df6 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,9 +10,9 @@ 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.bitwarden.ui.util.assertNoDialogExists 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 import io.mockk.mockk import io.mockk.verify 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 61ceb4b08a..949ffd403b 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,11 +16,11 @@ 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.bitwarden.ui.util.assertNoDialogExists 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 -import com.x8bit.bitwarden.ui.util.assertNoDialogExists import io.mockk.every import io.mockk.just import io.mockk.mockk 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 ff51ba1d40..ae7509d8f0 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 @@ -18,6 +18,7 @@ import androidx.compose.ui.test.performTextInput import androidx.core.net.toUri import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow import com.bitwarden.ui.util.asText +import com.bitwarden.ui.util.performCustomAccessibilityAction import com.x8bit.bitwarden.ui.auth.feature.completeregistration.PasswordStrengthState import com.x8bit.bitwarden.ui.auth.feature.createaccount.CreateAccountAction.AcceptPoliciesToggle import com.x8bit.bitwarden.ui.auth.feature.createaccount.CreateAccountAction.CheckDataBreachesToggle @@ -29,7 +30,6 @@ import com.x8bit.bitwarden.ui.auth.feature.createaccount.CreateAccountAction.Pas import com.x8bit.bitwarden.ui.auth.feature.createaccount.CreateAccountAction.SubmitClick 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 import io.mockk.just import io.mockk.mockk 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 16404a802c..931ebab72d 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,9 +14,9 @@ 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.bitwarden.ui.util.assertNoDialogExists 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 import io.mockk.just import io.mockk.mockk 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 30880c9115..57a413674e 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,11 +19,11 @@ 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.bitwarden.ui.util.assertNoDialogExists 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 -import com.x8bit.bitwarden.ui.util.assertNoDialogExists import com.x8bit.bitwarden.ui.util.assertRemovalConfirmationDialogIsDisplayed import com.x8bit.bitwarden.ui.util.assertSwitcherIsDisplayed import com.x8bit.bitwarden.ui.util.assertSwitcherIsNotDisplayed 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 b3bf32f429..18b4740ee0 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,12 +15,12 @@ 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.bitwarden.ui.util.assertNoDialogExists 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 import com.x8bit.bitwarden.ui.util.assertLogoutConfirmationDialogIsDisplayed -import com.x8bit.bitwarden.ui.util.assertNoDialogExists import com.x8bit.bitwarden.ui.util.assertRemovalConfirmationDialogIsDisplayed import com.x8bit.bitwarden.ui.util.assertSwitcherIsDisplayed import com.x8bit.bitwarden.ui.util.assertSwitcherIsNotDisplayed 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 237a2dd66a..3963fa55e8 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 @@ -12,12 +12,12 @@ 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.bitwarden.ui.util.assertNoDialogExists +import com.bitwarden.ui.util.isProgressBar import com.x8bit.bitwarden.R import com.x8bit.bitwarden.ui.auth.feature.loginwithdevice.model.LoginWithDeviceType 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 import io.mockk.every import io.mockk.just import io.mockk.mockk 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 4019be7c89..56732e57e2 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,8 +6,8 @@ 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.bitwarden.ui.util.assertNoDialogExists import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest -import com.x8bit.bitwarden.ui.util.assertNoDialogExists import io.mockk.every import io.mockk.mockk import io.mockk.verify 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 266a3aa183..7c37cb0661 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 @@ -14,9 +14,9 @@ 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.bitwarden.ui.util.assertNoDialogExists import com.x8bit.bitwarden.R import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest -import com.x8bit.bitwarden.ui.util.assertNoDialogExists import io.mockk.every import io.mockk.just import io.mockk.mockk 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 aef377a00e..54828e8a07 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 @@ -13,6 +13,8 @@ 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.bitwarden.ui.util.assertNoDialogExists +import com.bitwarden.ui.util.performCustomAccessibilityAction import com.x8bit.bitwarden.data.auth.datasource.disk.model.ForcePasswordResetReason import com.x8bit.bitwarden.ui.auth.feature.completeregistration.PasswordStrengthState import com.x8bit.bitwarden.ui.auth.feature.resetpassword.ResetPasswordAction @@ -21,8 +23,6 @@ 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.BitwardenComposeTest -import com.x8bit.bitwarden.ui.util.assertNoDialogExists -import com.x8bit.bitwarden.ui.util.performCustomAccessibilityAction import io.mockk.every import io.mockk.mockk import io.mockk.verify 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 0462092280..89a425213f 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,8 +11,8 @@ 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.bitwarden.ui.util.assertNoDialogExists import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest -import com.x8bit.bitwarden.ui.util.assertNoDialogExists import io.mockk.every import io.mockk.mockk import io.mockk.verify 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 5658e0c12a..e0e3720787 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 @@ -15,11 +15,11 @@ import androidx.core.net.toUri import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow import com.bitwarden.data.repository.model.Environment import com.bitwarden.ui.util.asText +import com.bitwarden.ui.util.performCustomAccessibilityAction 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.BitwardenComposeTest import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager -import com.x8bit.bitwarden.ui.util.performCustomAccessibilityAction import io.mockk.every import io.mockk.just import io.mockk.mockk 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 b6c39bc608..95bb791641 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,8 +12,8 @@ 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.bitwarden.ui.util.assertNoDialogExists import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest -import com.x8bit.bitwarden.ui.util.assertNoDialogExists import io.mockk.every import io.mockk.mockk import io.mockk.verify 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 8ca0b72f8f..d4d83bfbcd 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 @@ -20,6 +20,7 @@ import androidx.compose.ui.test.performTextInput import androidx.compose.ui.test.requestFocus import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow import com.bitwarden.ui.util.asText +import com.bitwarden.ui.util.assertNoDialogExists import com.x8bit.bitwarden.R import com.x8bit.bitwarden.data.auth.repository.model.VaultUnlockType import com.x8bit.bitwarden.data.util.advanceTimeByAndRunCurrent @@ -31,7 +32,6 @@ 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 import com.x8bit.bitwarden.ui.util.assertLogoutConfirmationDialogIsDisplayed -import com.x8bit.bitwarden.ui.util.assertNoDialogExists import com.x8bit.bitwarden.ui.util.assertRemovalConfirmationDialogIsDisplayed import com.x8bit.bitwarden.ui.util.assertSwitcherIsDisplayed import com.x8bit.bitwarden.ui.util.assertSwitcherIsNotDisplayed 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 34582931bc..e443ed55ee 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 @@ -20,6 +20,9 @@ import androidx.core.net.toUri import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow import com.bitwarden.send.SendType import com.bitwarden.ui.util.asText +import com.bitwarden.ui.util.assertMasterPasswordDialogDisplayed +import com.bitwarden.ui.util.assertNoDialogExists +import com.bitwarden.ui.util.isProgressBar import com.bitwarden.vault.CipherType import com.x8bit.bitwarden.data.platform.manager.util.AppResumeStateManager import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest @@ -31,9 +34,6 @@ import com.x8bit.bitwarden.ui.tools.feature.send.addedit.AddEditSendRoute import com.x8bit.bitwarden.ui.tools.feature.send.addedit.ModeType import com.x8bit.bitwarden.ui.tools.feature.send.model.SendItemType import com.x8bit.bitwarden.ui.tools.feature.send.viewsend.ViewSendRoute -import com.x8bit.bitwarden.ui.util.assertMasterPasswordDialogDisplayed -import com.x8bit.bitwarden.ui.util.assertNoDialogExists -import com.x8bit.bitwarden.ui.util.isProgressBar import com.x8bit.bitwarden.ui.vault.feature.addedit.VaultAddEditArgs import com.x8bit.bitwarden.ui.vault.feature.item.VaultItemArgs import com.x8bit.bitwarden.ui.vault.feature.itemlisting.model.ListingItemOverflowAction diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/search/util/SearchTypeDataExtensionsTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/search/util/SearchTypeDataExtensionsTest.kt index d3b251ce46..eb13f8e34f 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/search/util/SearchTypeDataExtensionsTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/search/util/SearchTypeDataExtensionsTest.kt @@ -2,6 +2,7 @@ package com.x8bit.bitwarden.ui.platform.feature.search.util import android.net.Uri import com.bitwarden.send.SendView +import com.bitwarden.ui.util.asText import com.bitwarden.vault.CipherRepromptType import com.bitwarden.vault.CipherType import com.bitwarden.vault.CipherView @@ -11,7 +12,6 @@ import com.x8bit.bitwarden.R import com.x8bit.bitwarden.data.vault.datasource.sdk.model.createMockCipherView import com.x8bit.bitwarden.data.vault.datasource.sdk.model.createMockSdkFido2CredentialList import com.x8bit.bitwarden.data.vault.datasource.sdk.model.createMockSendView -import com.bitwarden.ui.util.asText import com.x8bit.bitwarden.ui.platform.feature.search.SearchState import com.x8bit.bitwarden.ui.platform.feature.search.SearchTypeData import com.x8bit.bitwarden.ui.platform.feature.search.model.AutofillSelectionOption 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 3906a023d2..720cccbd78 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 @@ -21,6 +21,7 @@ import androidx.compose.ui.test.performTextInput import androidx.core.net.toUri import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow import com.bitwarden.ui.util.asText +import com.bitwarden.ui.util.assertNoDialogExists 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.BitwardenComposeTest @@ -28,7 +29,6 @@ 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 import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager -import com.x8bit.bitwarden.ui.util.assertNoDialogExists import io.mockk.coEvery import io.mockk.every import io.mockk.just 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 697f66e6fe..55ceb00903 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 @@ -12,12 +12,12 @@ import androidx.compose.ui.test.performClick import androidx.compose.ui.test.performScrollTo import androidx.compose.ui.test.performSemanticsAction import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow +import com.bitwarden.ui.util.assertNoDialogExists 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.BitwardenComposeTest import com.x8bit.bitwarden.ui.platform.manager.permissions.FakePermissionManager -import com.x8bit.bitwarden.ui.util.assertNoDialogExists import io.mockk.every import io.mockk.just import io.mockk.mockk 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 4fe02945c3..b5ab4a923c 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,9 +12,9 @@ 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.bitwarden.ui.util.assertNoDialogExists 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 import io.mockk.mockk import io.mockk.verify 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 82ef1d1ca8..c86065faef 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 @@ -15,12 +15,12 @@ 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.bitwarden.ui.util.assertNoDialogExists 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.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 import io.mockk.every import io.mockk.just import io.mockk.mockk 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 a67a750080..69bc3c2f3e 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 @@ -10,8 +10,8 @@ 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.bitwarden.ui.util.assertNoDialogExists import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest -import com.x8bit.bitwarden.ui.util.assertNoDialogExists import io.mockk.every import io.mockk.mockk import io.mockk.verify diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/autofill/util/UriMatchTypeExtensionsTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/autofill/util/UriMatchTypeExtensionsTest.kt index ca0dd1d50a..db17c9ebf1 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/autofill/util/UriMatchTypeExtensionsTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/autofill/util/UriMatchTypeExtensionsTest.kt @@ -1,8 +1,8 @@ package com.x8bit.bitwarden.ui.platform.feature.settings.autofill.util +import com.bitwarden.ui.util.asText import com.x8bit.bitwarden.R import com.x8bit.bitwarden.data.platform.repository.model.UriMatchType -import com.bitwarden.ui.util.asText import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Test 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 8fdafbfd48..fe494a7c59 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 @@ -16,11 +16,11 @@ 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.bitwarden.ui.util.assertNoDialogExists import com.x8bit.bitwarden.ui.auth.feature.completeregistration.PasswordStrengthState 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 import io.mockk.every import io.mockk.mockk import io.mockk.verify 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 df649d0fca..3df1f2d151 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 @@ -10,11 +10,11 @@ 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.bitwarden.ui.util.assertNoDialogExists +import com.bitwarden.ui.util.performCustomAccessibilityAction import com.x8bit.bitwarden.data.platform.repository.model.FlightRecorderDuration 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 import io.mockk.every import io.mockk.just import io.mockk.mockk 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 86966de6bf..f6d74a3bd8 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 @@ -17,6 +17,8 @@ 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.bitwarden.ui.util.assertNoDialogExists +import com.bitwarden.ui.util.isProgressBar import com.x8bit.bitwarden.R import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest import com.x8bit.bitwarden.ui.platform.feature.settings.flightrecorder.recordedLogs.RecordedLogsAction @@ -25,8 +27,6 @@ import com.x8bit.bitwarden.ui.platform.feature.settings.flightrecorder.recordedL import com.x8bit.bitwarden.ui.platform.feature.settings.flightrecorder.recordedLogs.RecordedLogsState import com.x8bit.bitwarden.ui.platform.feature.settings.flightrecorder.recordedLogs.RecordedLogsViewModel import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager -import com.x8bit.bitwarden.ui.util.assertNoDialogExists -import com.x8bit.bitwarden.ui.util.isProgressBar import io.mockk.every import io.mockk.just import io.mockk.mockk 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 d2f997ad5b..75bf6d3fd8 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,9 +13,9 @@ 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.bitwarden.ui.util.assertNoDialogExists 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 import io.mockk.mockk import io.mockk.verify 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 83abb8edbb..c672721742 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 @@ -12,9 +12,9 @@ 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.bitwarden.ui.util.assertNoDialogExists import com.x8bit.bitwarden.data.platform.repository.model.ClearClipboardFrequency import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest -import com.x8bit.bitwarden.ui.util.assertNoDialogExists import io.mockk.every import io.mockk.mockk import io.mockk.verify diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/platform/util/ExportVaultFormatExtensionTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/platform/util/ExportVaultFormatExtensionTest.kt index a7bb1de654..0fd2e8343d 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/platform/util/ExportVaultFormatExtensionTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/platform/util/ExportVaultFormatExtensionTest.kt @@ -1,7 +1,7 @@ package com.x8bit.bitwarden.ui.platform.util -import com.x8bit.bitwarden.R import com.bitwarden.ui.util.asText +import com.x8bit.bitwarden.R import com.x8bit.bitwarden.ui.platform.feature.settings.exportvault.model.ExportVaultFormat import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Test diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/platform/util/VaultTimeoutActionExtensionsTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/platform/util/VaultTimeoutActionExtensionsTest.kt index ab8d7e9a4e..2e7c030533 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/platform/util/VaultTimeoutActionExtensionsTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/platform/util/VaultTimeoutActionExtensionsTest.kt @@ -1,8 +1,8 @@ package com.x8bit.bitwarden.ui.platform.util +import com.bitwarden.ui.util.asText import com.x8bit.bitwarden.R import com.x8bit.bitwarden.data.platform.repository.model.VaultTimeoutAction -import com.bitwarden.ui.util.asText import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Test diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/platform/util/VaultTimeoutExtensionsTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/platform/util/VaultTimeoutExtensionsTest.kt index cd0c9e79fa..7634057cbf 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/platform/util/VaultTimeoutExtensionsTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/platform/util/VaultTimeoutExtensionsTest.kt @@ -1,8 +1,8 @@ package com.x8bit.bitwarden.ui.platform.util +import com.bitwarden.ui.util.asText import com.x8bit.bitwarden.R import com.x8bit.bitwarden.data.platform.repository.model.VaultTimeout -import com.bitwarden.ui.util.asText import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Test diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/tools/feature/generator/util/ServiceTypeExtensionsTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/tools/feature/generator/util/ServiceTypeExtensionsTest.kt index cf1afdeccd..f412475151 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/tools/feature/generator/util/ServiceTypeExtensionsTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/tools/feature/generator/util/ServiceTypeExtensionsTest.kt @@ -2,8 +2,8 @@ package com.x8bit.bitwarden.ui.tools.feature.generator.util import com.bitwarden.generators.ForwarderServiceType import com.bitwarden.generators.UsernameGeneratorRequest -import com.x8bit.bitwarden.R import com.bitwarden.ui.util.asText +import com.x8bit.bitwarden.R import com.x8bit.bitwarden.ui.tools.feature.generator.GeneratorState.MainType.Username.UsernameType.ForwardedEmailAlias.ServiceType import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Test 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 de1348fbd5..1d4e793610 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 @@ -24,6 +24,8 @@ import androidx.compose.ui.test.performScrollToNode import androidx.core.net.toUri import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow import com.bitwarden.ui.util.asText +import com.bitwarden.ui.util.assertNoDialogExists +import com.bitwarden.ui.util.isProgressBar 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 @@ -31,8 +33,6 @@ import com.x8bit.bitwarden.ui.tools.feature.send.addedit.AddEditSendRoute import com.x8bit.bitwarden.ui.tools.feature.send.addedit.ModeType import com.x8bit.bitwarden.ui.tools.feature.send.model.SendItemType import com.x8bit.bitwarden.ui.tools.feature.send.viewsend.ViewSendRoute -import com.x8bit.bitwarden.ui.util.assertNoDialogExists -import com.x8bit.bitwarden.ui.util.isProgressBar import io.mockk.every import io.mockk.just import io.mockk.mockk diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/tools/feature/send/addedit/AddEditSendScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/tools/feature/send/addedit/AddEditSendScreenTest.kt index 2edc9cf855..d508b454b1 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/tools/feature/send/addedit/AddEditSendScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/tools/feature/send/addedit/AddEditSendScreenTest.kt @@ -23,15 +23,15 @@ 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.bitwarden.ui.util.assertNoDialogExists +import com.bitwarden.ui.util.isEditableText +import com.bitwarden.ui.util.isProgressBar 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 import com.x8bit.bitwarden.ui.tools.feature.send.addedit.model.AddEditSendType import com.x8bit.bitwarden.ui.tools.feature.send.model.SendItemType -import com.x8bit.bitwarden.ui.util.assertNoDialogExists -import com.x8bit.bitwarden.ui.util.isEditableText -import com.x8bit.bitwarden.ui.util.isProgressBar import io.mockk.every import io.mockk.just import io.mockk.mockk 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 25538f0432..0c0cc26820 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,13 +13,13 @@ 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.bitwarden.ui.util.assertNoDialogExists +import com.bitwarden.ui.util.isProgressBar 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.addedit.AddEditSendRoute import com.x8bit.bitwarden.ui.tools.feature.send.addedit.ModeType import com.x8bit.bitwarden.ui.tools.feature.send.model.SendItemType -import com.x8bit.bitwarden.ui.util.assertNoDialogExists -import com.x8bit.bitwarden.ui.util.isProgressBar import io.mockk.every import io.mockk.just import io.mockk.mockk diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/util/ComposeTextHelper.kt b/app/src/test/java/com/x8bit/bitwarden/ui/util/ComposeTextHelper.kt new file mode 100644 index 0000000000..3b2a8c6a9d --- /dev/null +++ b/app/src/test/java/com/x8bit/bitwarden/ui/util/ComposeTextHelper.kt @@ -0,0 +1,13 @@ +package com.x8bit.bitwarden.ui.util + +import androidx.compose.ui.semantics.getOrNull +import androidx.compose.ui.test.SemanticsMatcher +import com.x8bit.bitwarden.ui.platform.components.coachmark.IsCoachMarkToolTipKey + +/** + * A [SemanticsMatcher] user to find Popup nodes used specifically for CoachMarkToolTips + */ +val isCoachMarkToolTip: SemanticsMatcher + get() = SemanticsMatcher("Node is used to show tool tip for active coach mark.") { + it.config.getOrNull(IsCoachMarkToolTipKey) == true + } 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 58ca27b72f..98437e926c 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 @@ -41,6 +41,13 @@ import androidx.compose.ui.test.performTouchInput import androidx.core.net.toUri import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow import com.bitwarden.ui.util.asText +import com.bitwarden.ui.util.assertNoDialogExists +import com.bitwarden.ui.util.assertScrollableNodeDoesNotExist +import com.bitwarden.ui.util.isProgressBar +import com.bitwarden.ui.util.onAllNodesWithContentDescriptionAfterScroll +import com.bitwarden.ui.util.onAllNodesWithTextAfterScroll +import com.bitwarden.ui.util.onNodeWithContentDescriptionAfterScroll +import com.bitwarden.ui.util.onNodeWithTextAfterScroll import com.bitwarden.vault.UriMatchType import com.x8bit.bitwarden.data.util.advanceTimeByAndRunCurrent import com.x8bit.bitwarden.data.vault.datasource.sdk.model.createMockCipherView @@ -52,14 +59,7 @@ 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 import com.x8bit.bitwarden.ui.tools.feature.generator.model.GeneratorMode -import com.x8bit.bitwarden.ui.util.assertNoDialogExists -import com.x8bit.bitwarden.ui.util.assertScrollableNodeDoesNotExist import com.x8bit.bitwarden.ui.util.isCoachMarkToolTip -import com.x8bit.bitwarden.ui.util.isProgressBar -import com.x8bit.bitwarden.ui.util.onAllNodesWithContentDescriptionAfterScroll -import com.x8bit.bitwarden.ui.util.onAllNodesWithTextAfterScroll -import com.x8bit.bitwarden.ui.util.onNodeWithContentDescriptionAfterScroll -import com.x8bit.bitwarden.ui.util.onNodeWithTextAfterScroll import com.x8bit.bitwarden.ui.vault.feature.addedit.model.CustomFieldAction import com.x8bit.bitwarden.ui.vault.feature.addedit.model.CustomFieldType import com.x8bit.bitwarden.ui.vault.feature.addedit.model.UriItem 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 a4e66995b3..51e7402726 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 @@ -13,13 +13,13 @@ 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.bitwarden.ui.util.assertNoDialogExists +import com.bitwarden.ui.util.isProgressBar +import com.bitwarden.ui.util.onNodeWithContentDescriptionAfterScroll +import com.bitwarden.ui.util.onNodeWithTextAfterScroll import com.x8bit.bitwarden.data.vault.datasource.sdk.model.createMockCipherView 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 -import com.x8bit.bitwarden.ui.util.onNodeWithContentDescriptionAfterScroll -import com.x8bit.bitwarden.ui.util.onNodeWithTextAfterScroll import io.mockk.every import io.mockk.just import io.mockk.mockk 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 e9454e664a..902343e01e 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 @@ -18,12 +18,12 @@ import androidx.compose.ui.test.performSemanticsAction import androidx.core.net.toUri import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow import com.bitwarden.ui.util.asText +import com.bitwarden.ui.util.assertNoDialogExists import com.x8bit.bitwarden.R import com.x8bit.bitwarden.data.util.advanceTimeByAndRunCurrent 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 import io.mockk.every import io.mockk.just import io.mockk.mockk 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 364a1304a4..25bca87f9e 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 @@ -29,17 +29,17 @@ import androidx.compose.ui.test.performTextInput import androidx.core.net.toUri import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow import com.bitwarden.ui.util.asText +import com.bitwarden.ui.util.assertNoDialogExists +import com.bitwarden.ui.util.assertScrollableNodeDoesNotExist +import com.bitwarden.ui.util.isProgressBar +import com.bitwarden.ui.util.onFirstNodeWithTextAfterScroll +import com.bitwarden.ui.util.onNodeWithContentDescriptionAfterScroll +import com.bitwarden.ui.util.onNodeWithTextAfterScroll import com.x8bit.bitwarden.R import com.x8bit.bitwarden.data.vault.datasource.sdk.model.createMockCipherView 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 -import com.x8bit.bitwarden.ui.util.assertScrollableNodeDoesNotExist -import com.x8bit.bitwarden.ui.util.isProgressBar -import com.x8bit.bitwarden.ui.util.onFirstNodeWithTextAfterScroll -import com.x8bit.bitwarden.ui.util.onNodeWithContentDescriptionAfterScroll -import com.x8bit.bitwarden.ui.util.onNodeWithTextAfterScroll import com.x8bit.bitwarden.ui.vault.feature.addedit.VaultAddEditArgs import com.x8bit.bitwarden.ui.vault.feature.item.model.TotpCodeItemData import com.x8bit.bitwarden.ui.vault.feature.item.model.VaultItemLocation diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/item/util/VaultItemTestUtil.kt b/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/item/util/VaultItemTestUtil.kt index 3656269aa9..d0dc9b3b93 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/item/util/VaultItemTestUtil.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/item/util/VaultItemTestUtil.kt @@ -1,6 +1,7 @@ package com.x8bit.bitwarden.ui.vault.feature.item.util import androidx.annotation.DrawableRes +import com.bitwarden.ui.util.asText import com.bitwarden.vault.AttachmentView import com.bitwarden.vault.CipherRepromptType import com.bitwarden.vault.CipherType @@ -13,9 +14,8 @@ import com.bitwarden.vault.LoginView import com.bitwarden.vault.PasswordHistoryView import com.bitwarden.vault.SshKeyView import com.x8bit.bitwarden.R -import com.x8bit.bitwarden.data.vault.datasource.sdk.model.createMockSdkFido2CredentialList -import com.bitwarden.ui.util.asText import com.x8bit.bitwarden.data.vault.datasource.sdk.model.createMockSdkCipherPermissions +import com.x8bit.bitwarden.data.vault.datasource.sdk.model.createMockSdkFido2CredentialList import com.x8bit.bitwarden.ui.platform.components.model.IconData import com.x8bit.bitwarden.ui.vault.feature.item.VaultItemState import com.x8bit.bitwarden.ui.vault.feature.item.model.TotpCodeItemData 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 b7f4e33e23..65e9105e43 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 @@ -22,6 +22,10 @@ import com.bitwarden.data.repository.util.baseWebSendUrl import com.bitwarden.send.SendType import com.bitwarden.ui.platform.base.util.toHostOrPathOrNull import com.bitwarden.ui.util.asText +import com.bitwarden.ui.util.assertMasterPasswordDialogDisplayed +import com.bitwarden.ui.util.assertNoDialogExists +import com.bitwarden.ui.util.isProgressBar +import com.bitwarden.ui.util.onNodeWithTextAfterScroll import com.bitwarden.vault.CipherType import com.x8bit.bitwarden.R import com.x8bit.bitwarden.data.autofill.model.AutofillSelectionData @@ -43,13 +47,9 @@ import com.x8bit.bitwarden.ui.tools.feature.send.model.SendItemType import com.x8bit.bitwarden.ui.tools.feature.send.viewsend.ViewSendRoute import com.x8bit.bitwarden.ui.util.assertLockOrLogoutDialogIsDisplayed import com.x8bit.bitwarden.ui.util.assertLogoutConfirmationDialogIsDisplayed -import com.x8bit.bitwarden.ui.util.assertMasterPasswordDialogDisplayed -import com.x8bit.bitwarden.ui.util.assertNoDialogExists import com.x8bit.bitwarden.ui.util.assertRemovalConfirmationDialogIsDisplayed import com.x8bit.bitwarden.ui.util.assertSwitcherIsDisplayed import com.x8bit.bitwarden.ui.util.assertSwitcherIsNotDisplayed -import com.x8bit.bitwarden.ui.util.isProgressBar -import com.x8bit.bitwarden.ui.util.onNodeWithTextAfterScroll import com.x8bit.bitwarden.ui.util.performAccountClick import com.x8bit.bitwarden.ui.util.performAccountIconClick import com.x8bit.bitwarden.ui.util.performAccountLongClick 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 18fb93a948..85b407bb27 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 @@ -17,12 +17,12 @@ import androidx.compose.ui.test.performTextInput import androidx.test.core.app.ApplicationProvider import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow import com.bitwarden.ui.util.asText +import com.bitwarden.ui.util.assertNoDialogExists +import com.bitwarden.ui.util.performCustomAccessibilityAction 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 -import com.x8bit.bitwarden.ui.util.performCustomAccessibilityAction import io.mockk.every import io.mockk.mockk import io.mockk.slot 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 3a9862ee90..fdc6d8eb27 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,8 +15,8 @@ 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.bitwarden.ui.util.onNodeWithContentDescriptionAfterScroll 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 import io.mockk.every 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 97fe623e58..a8df412f1f 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,8 +3,8 @@ 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.bitwarden.ui.util.performCustomAccessibilityAction 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 import io.mockk.mockk 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 2fe6b0af77..a3abb4bb59 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 @@ -23,6 +23,9 @@ import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow import com.bitwarden.data.repository.model.Environment import com.bitwarden.data.repository.util.baseIconUrl import com.bitwarden.ui.util.asText +import com.bitwarden.ui.util.assertNoDialogExists +import com.bitwarden.ui.util.assertScrollableNodeDoesNotExist +import com.bitwarden.ui.util.onNodeWithTextAfterScroll import com.x8bit.bitwarden.R import com.x8bit.bitwarden.data.util.advanceTimeByAndRunCurrent import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest @@ -34,12 +37,9 @@ import com.x8bit.bitwarden.ui.platform.manager.review.AppReviewManager import com.x8bit.bitwarden.ui.platform.manager.snackbar.SnackbarRelay import com.x8bit.bitwarden.ui.util.assertLockOrLogoutDialogIsDisplayed import com.x8bit.bitwarden.ui.util.assertLogoutConfirmationDialogIsDisplayed -import com.x8bit.bitwarden.ui.util.assertNoDialogExists import com.x8bit.bitwarden.ui.util.assertRemovalConfirmationDialogIsDisplayed -import com.x8bit.bitwarden.ui.util.assertScrollableNodeDoesNotExist import com.x8bit.bitwarden.ui.util.assertSwitcherIsDisplayed import com.x8bit.bitwarden.ui.util.assertSwitcherIsNotDisplayed -import com.x8bit.bitwarden.ui.util.onNodeWithTextAfterScroll import com.x8bit.bitwarden.ui.util.performAccountClick import com.x8bit.bitwarden.ui.util.performAccountIconClick import com.x8bit.bitwarden.ui.util.performAccountLongClick diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/vault/util/VaultFilterDataExtensionsTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/vault/util/VaultFilterDataExtensionsTest.kt index 9f63dbd5d4..0cbd0fee24 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/vault/util/VaultFilterDataExtensionsTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/vault/util/VaultFilterDataExtensionsTest.kt @@ -1,7 +1,7 @@ package com.x8bit.bitwarden.ui.vault.feature.vault.util -import com.x8bit.bitwarden.R import com.bitwarden.ui.util.asText +import com.x8bit.bitwarden.R import com.x8bit.bitwarden.ui.vault.feature.vault.model.VaultFilterData import com.x8bit.bitwarden.ui.vault.feature.vault.model.VaultFilterType import org.junit.jupiter.api.Assertions.assertEquals 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 21be00c5a7..06e918687a 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 @@ -17,9 +17,9 @@ import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow import com.bitwarden.data.repository.model.Environment import com.bitwarden.data.repository.util.baseIconUrl import com.bitwarden.ui.util.asText +import com.bitwarden.ui.util.assertNoDialogExists import com.x8bit.bitwarden.data.platform.manager.util.AppResumeStateManager 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 import com.x8bit.bitwarden.ui.vault.model.VaultItemCipherType diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/vault/util/VaultCardBrandExtensionsTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/vault/util/VaultCardBrandExtensionsTest.kt index 5012e6c048..8ea5eb4292 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/vault/util/VaultCardBrandExtensionsTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/vault/util/VaultCardBrandExtensionsTest.kt @@ -1,7 +1,7 @@ package com.x8bit.bitwarden.ui.vault.util -import com.x8bit.bitwarden.R import com.bitwarden.ui.util.asText +import com.x8bit.bitwarden.R import com.x8bit.bitwarden.ui.vault.feature.addedit.util.SELECT_TEXT import com.x8bit.bitwarden.ui.vault.model.VaultCardBrand import org.junit.jupiter.api.Assertions.assertEquals diff --git a/authenticator/src/test/java/com/bitwarden/authenticator/ui/platform/util/DefaultSaveOptionExtensionsTest.kt b/authenticator/src/test/java/com/bitwarden/authenticator/ui/platform/util/DefaultSaveOptionExtensionsTest.kt index 52fdb55467..506f0aab5c 100644 --- a/authenticator/src/test/java/com/bitwarden/authenticator/ui/platform/util/DefaultSaveOptionExtensionsTest.kt +++ b/authenticator/src/test/java/com/bitwarden/authenticator/ui/platform/util/DefaultSaveOptionExtensionsTest.kt @@ -1,8 +1,8 @@ package com.bitwarden.authenticator.ui.platform.util import com.bitwarden.authenticator.R -import com.bitwarden.ui.util.asText import com.bitwarden.authenticator.ui.platform.feature.settings.data.model.DefaultSaveOption +import com.bitwarden.ui.util.asText import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Test diff --git a/ui/build.gradle.kts b/ui/build.gradle.kts index 587d164352..88bdcd6617 100644 --- a/ui/build.gradle.kts +++ b/ui/build.gradle.kts @@ -72,6 +72,7 @@ dependencies { testImplementation(libs.junit.vintage) testImplementation(libs.mockk.mockk) testImplementation(libs.robolectric.robolectric) + testImplementation(libs.androidx.compose.ui.test) testFixturesImplementation(libs.androidx.activity.compose) testFixturesImplementation(libs.androidx.compose.ui.test) @@ -93,5 +94,6 @@ tasks { maxParallelForks = Runtime.getRuntime().availableProcessors() @Suppress("UselessCallOnNotNull") jvmArgs = jvmArgs.orEmpty() + "-XX:+UseParallelGC" + android.sourceSets["main"].res.srcDirs("src/test/res") } } diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/util/SpanStyleUtil.kt b/ui/src/main/kotlin/com/bitwarden/ui/platform/base/util/SpanStyleUtil.kt similarity index 95% rename from app/src/main/java/com/x8bit/bitwarden/ui/platform/util/SpanStyleUtil.kt rename to ui/src/main/kotlin/com/bitwarden/ui/platform/base/util/SpanStyleUtil.kt index 0daccc8fbd..d2eaebcbc5 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/util/SpanStyleUtil.kt +++ b/ui/src/main/kotlin/com/bitwarden/ui/platform/base/util/SpanStyleUtil.kt @@ -1,4 +1,4 @@ -package com.x8bit.bitwarden.ui.platform.util +package com.bitwarden.ui.platform.base.util import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.SpanStyle diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/base/util/StringResExtensions.kt b/ui/src/main/kotlin/com/bitwarden/ui/platform/base/util/StringResExtensions.kt similarity index 97% rename from app/src/main/java/com/x8bit/bitwarden/ui/platform/base/util/StringResExtensions.kt rename to ui/src/main/kotlin/com/bitwarden/ui/platform/base/util/StringResExtensions.kt index 003f1e7b3a..08501c4537 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/base/util/StringResExtensions.kt +++ b/ui/src/main/kotlin/com/bitwarden/ui/platform/base/util/StringResExtensions.kt @@ -1,4 +1,4 @@ -package com.x8bit.bitwarden.ui.platform.base.util +package com.bitwarden.ui.platform.base.util import android.text.Annotation import android.text.SpannableStringBuilder @@ -14,9 +14,7 @@ import androidx.compose.ui.text.LinkAnnotation import androidx.compose.ui.text.SpanStyle import androidx.compose.ui.text.TextLinkStyles import androidx.core.text.getSpans -import com.bitwarden.ui.platform.base.util.toAnnotatedString import com.bitwarden.ui.platform.theme.BitwardenTheme -import com.x8bit.bitwarden.ui.platform.util.spanStyleOf /** * Creates an [AnnotatedString] from a string resource allowing for optional arguments diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/platform/base/util/StringRestExtensionsTest.kt b/ui/src/test/kotlin/com/bitwarden/ui/platform/base/util/StringResExtensionsTest.kt similarity index 72% rename from app/src/test/java/com/x8bit/bitwarden/ui/platform/base/util/StringRestExtensionsTest.kt rename to ui/src/test/kotlin/com/bitwarden/ui/platform/base/util/StringResExtensionsTest.kt index 8836e5ad8e..82f76bb8d2 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/platform/base/util/StringRestExtensionsTest.kt +++ b/ui/src/test/kotlin/com/bitwarden/ui/platform/base/util/StringResExtensionsTest.kt @@ -1,26 +1,24 @@ -package com.x8bit.bitwarden.ui.platform.base.util +package com.bitwarden.ui.platform.base.util import androidx.compose.material3.Text import androidx.compose.ui.semantics.SemanticsProperties 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.BitwardenComposeTest -import com.x8bit.bitwarden.ui.util.assertLinkAnnotationIsAppliedAndInvokeClickAction +import com.bitwarden.ui.R +import com.bitwarden.ui.platform.base.BaseComposeTest +import com.bitwarden.ui.util.assertLinkAnnotationIsAppliedAndInvokeClickAction import org.junit.Assert.assertTrue import org.junit.Test -class StringRestExtensionsTest : BitwardenComposeTest() { - @Suppress("MaxLineLength") +class StringResExtensionsTest : BaseComposeTest() { @Test fun `toAnnotatedString should add Clickable LinkAnnotation to highlighted string`() { var textClickCalled = false - setContent { - val annotatedString = - R.string.test_for_single_link_annotation.toAnnotatedString { - textClickCalled = true - } + setTestContent { + val annotatedString = R.string.test_for_single_link_annotation.toAnnotatedString { + textClickCalled = true + } Text(text = annotatedString) } composeTestRule.assertLinkAnnotationIsAppliedAndInvokeClickAction( @@ -29,12 +27,10 @@ class StringRestExtensionsTest : BitwardenComposeTest() { assertTrue(textClickCalled) } - @Suppress("MaxLineLength") @Test fun `toAnnotatedString should add multiple Clickable LinkAnnotations to highlighted string`() { - setContent { - val annotatedString = - R.string.test_for_multi_link_annotation.toAnnotatedString() + setTestContent { + val annotatedString = R.string.test_for_multi_link_annotation.toAnnotatedString() Text(text = annotatedString) } composeTestRule.assertLinkAnnotationIsAppliedAndInvokeClickAction( @@ -45,7 +41,7 @@ class StringRestExtensionsTest : BitwardenComposeTest() { @Test fun `no link annotations should be applied to non annotated string resource`() { - setContent { + setTestContent { Text(text = R.string.test_for_string_with_no_annotations.toAnnotatedString()) } @@ -65,13 +61,13 @@ class StringRestExtensionsTest : BitwardenComposeTest() { @Test fun `string with args should only use the arguments available in the string`() { - setContent { + setTestContent { Text( text = - R.string.test_for_string_with_annotation_and_arg_annotation - .toAnnotatedString( - args = arrayOf("vault.bitwarden.com", "i should not exist"), - ), + R.string.test_for_string_with_annotation_and_arg_annotation + .toAnnotatedString( + args = arrayOf("vault.bitwarden.com", "i should not exist"), + ), ) } @@ -89,7 +85,7 @@ class StringRestExtensionsTest : BitwardenComposeTest() { @Test fun `string with arg annotations but no passed in args should just append empty string`() { - setContent { + setTestContent { Text( text = R.string.test_for_string_with_annotation_and_arg_annotation .toAnnotatedString(), @@ -101,14 +97,12 @@ class StringRestExtensionsTest : BitwardenComposeTest() { .assertIsDisplayed() } - @Suppress("MaxLineLength") @Test fun `string with no annotations with args should just be handled as normal annotated string`() { - setContent { + setTestContent { Text( - text = R.string.test_for_string_with_no_annotations_with_format_arg.toAnnotatedString( - args = arrayOf("this"), - ), + text = R.string.test_for_string_with_no_annotations_with_format_arg + .toAnnotatedString(args = arrayOf("this")), ) } diff --git a/app/src/test/res/values/strings_for_tests_only.xml b/ui/src/test/res/values/strings_for_tests_only.xml similarity index 100% rename from app/src/test/res/values/strings_for_tests_only.xml rename to ui/src/test/res/values/strings_for_tests_only.xml diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/util/ComposeTestHelpers.kt b/ui/src/testFixtures/kotlin/com/bitwarden/ui/util/ComposeTestHelpers.kt similarity index 94% rename from app/src/test/java/com/x8bit/bitwarden/ui/util/ComposeTestHelpers.kt rename to ui/src/testFixtures/kotlin/com/bitwarden/ui/util/ComposeTestHelpers.kt index ebee5291d4..500fae9030 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/util/ComposeTestHelpers.kt +++ b/ui/src/testFixtures/kotlin/com/bitwarden/ui/util/ComposeTestHelpers.kt @@ -1,4 +1,4 @@ -package com.x8bit.bitwarden.ui.util +package com.bitwarden.ui.util import androidx.compose.ui.semantics.SemanticsActions import androidx.compose.ui.semantics.SemanticsProperties @@ -24,7 +24,6 @@ import androidx.compose.ui.test.onNodeWithText import androidx.compose.ui.test.performScrollToNode import androidx.compose.ui.test.printToString import androidx.compose.ui.text.LinkAnnotation -import com.x8bit.bitwarden.ui.platform.components.coachmark.IsCoachMarkToolTipKey import org.junit.Assert.assertEquals import org.junit.Assert.assertNotNull import org.junit.jupiter.api.assertThrows @@ -46,15 +45,6 @@ val isProgressBar: SemanticsMatcher ?: false } -/** - * A [SemanticsMatcher] user to find Popup nodes used specifically for CoachMarkToolTips - */ -val isCoachMarkToolTip: SemanticsMatcher - get() = SemanticsMatcher("Node is used to show tool tip for active coach mark.") { - it.config - .getOrNull(IsCoachMarkToolTipKey) == true - } - /** * Asserts that no dialog currently exists. */