mirror of
https://github.com/bitwarden/android.git
synced 2025-12-10 09:56:45 -06:00
[PM-24598] Map AutofillSaveItem to VaultItemCipherType (#5714)
This commit is contained in:
parent
36e06cdac7
commit
4fb96cb782
@ -61,9 +61,9 @@ import com.x8bit.bitwarden.ui.tools.feature.send.addedit.ModeType
|
||||
import com.x8bit.bitwarden.ui.tools.feature.send.addedit.navigateToAddEditSend
|
||||
import com.x8bit.bitwarden.ui.vault.feature.addedit.VaultAddEditArgs
|
||||
import com.x8bit.bitwarden.ui.vault.feature.addedit.navigateToVaultAddEdit
|
||||
import com.x8bit.bitwarden.ui.vault.feature.addedit.util.toVaultItemCipherType
|
||||
import com.x8bit.bitwarden.ui.vault.feature.itemlisting.navigateToVaultItemListingAsRoot
|
||||
import com.x8bit.bitwarden.ui.vault.model.VaultAddEditType
|
||||
import com.x8bit.bitwarden.ui.vault.model.VaultItemCipherType
|
||||
import com.x8bit.bitwarden.ui.vault.model.VaultItemListingType
|
||||
import java.util.concurrent.atomic.AtomicReference
|
||||
|
||||
@ -225,7 +225,7 @@ fun RootNavScreen(
|
||||
navController.navigateToVaultAddEdit(
|
||||
args = VaultAddEditArgs(
|
||||
vaultAddEditType = VaultAddEditType.AddItem,
|
||||
vaultItemCipherType = VaultItemCipherType.LOGIN,
|
||||
vaultItemCipherType = currentState.autofillSaveItem.toVaultItemCipherType(),
|
||||
),
|
||||
navOptions = rootNavOptions,
|
||||
)
|
||||
|
||||
@ -5,6 +5,7 @@ import com.x8bit.bitwarden.data.autofill.model.AutofillSaveItem
|
||||
import com.x8bit.bitwarden.ui.vault.feature.addedit.VaultAddEditState
|
||||
import com.x8bit.bitwarden.ui.vault.feature.addedit.model.UriItem
|
||||
import com.x8bit.bitwarden.ui.vault.model.VaultCardExpirationMonth
|
||||
import com.x8bit.bitwarden.ui.vault.model.VaultItemCipherType
|
||||
import java.util.UUID
|
||||
|
||||
/**
|
||||
@ -54,3 +55,11 @@ fun AutofillSaveItem.toDefaultAddTypeContent(
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts an [AutofillSaveItem] to a [VaultItemCipherType].
|
||||
*/
|
||||
fun AutofillSaveItem.toVaultItemCipherType(): VaultItemCipherType = when (this) {
|
||||
is AutofillSaveItem.Card -> VaultItemCipherType.CARD
|
||||
is AutofillSaveItem.Login -> VaultItemCipherType.LOGIN
|
||||
}
|
||||
|
||||
@ -2,6 +2,7 @@ package com.x8bit.bitwarden.ui.platform.feature.rootnav
|
||||
|
||||
import androidx.navigation.navOptions
|
||||
import com.bitwarden.ui.platform.base.createMockNavHostController
|
||||
import com.x8bit.bitwarden.data.autofill.model.AutofillSaveItem
|
||||
import com.x8bit.bitwarden.data.autofill.model.AutofillSelectionData
|
||||
import com.x8bit.bitwarden.ui.auth.feature.accountsetup.SetupAutofillRoute
|
||||
import com.x8bit.bitwarden.ui.auth.feature.accountsetup.SetupCompleteRoute
|
||||
@ -242,9 +243,9 @@ class RootNavScreenTest : BitwardenComposeTest() {
|
||||
}
|
||||
}
|
||||
|
||||
// Make sure navigating to vault unlocked for autofill save works as expected:
|
||||
// Make sure navigating to vault unlocked for autofill save for login works as expected:
|
||||
rootNavStateFlow.value = RootNavState.VaultUnlockedForAutofillSave(
|
||||
autofillSaveItem = mockk(),
|
||||
autofillSaveItem = mockk<AutofillSaveItem.Login>(),
|
||||
)
|
||||
composeTestRule.runOnIdle {
|
||||
verify {
|
||||
@ -265,6 +266,29 @@ class RootNavScreenTest : BitwardenComposeTest() {
|
||||
}
|
||||
}
|
||||
|
||||
// Make sure navigating to vault unlocked for autofill save for card works as expected:
|
||||
rootNavStateFlow.value = RootNavState.VaultUnlockedForAutofillSave(
|
||||
autofillSaveItem = mockk<AutofillSaveItem.Card>(),
|
||||
)
|
||||
composeTestRule.runOnIdle {
|
||||
verify {
|
||||
mockNavHostController.navigate(
|
||||
route = VaultUnlockedGraphRoute,
|
||||
navOptions = expectedNavOptions,
|
||||
)
|
||||
mockNavHostController.navigate(
|
||||
route = VaultAddEditRoute(
|
||||
vaultAddEditMode = VaultAddEditMode.ADD,
|
||||
vaultItemId = null,
|
||||
vaultItemCipherType = VaultItemCipherType.CARD,
|
||||
selectedFolderId = null,
|
||||
selectedCollectionId = null,
|
||||
),
|
||||
navOptions = expectedNavOptions,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
// Make sure navigating to vault unlocked for autofill works as expected:
|
||||
rootNavStateFlow.value = RootNavState.VaultUnlockedForAutofillSelection(
|
||||
activeUserId = "userId",
|
||||
|
||||
@ -4,7 +4,9 @@ import com.x8bit.bitwarden.data.autofill.model.AutofillSaveItem
|
||||
import com.x8bit.bitwarden.ui.vault.feature.addedit.VaultAddEditState
|
||||
import com.x8bit.bitwarden.ui.vault.feature.addedit.model.UriItem
|
||||
import com.x8bit.bitwarden.ui.vault.model.VaultCardExpirationMonth
|
||||
import com.x8bit.bitwarden.ui.vault.model.VaultItemCipherType
|
||||
import io.mockk.every
|
||||
import io.mockk.mockk
|
||||
import io.mockk.mockkStatic
|
||||
import io.mockk.unmockkStatic
|
||||
import org.junit.jupiter.api.Assertions.assertEquals
|
||||
@ -76,4 +78,17 @@ class AutofillSaveItemExtensionsTest {
|
||||
.toDefaultAddTypeContent(isIndividualVaultDisabled = true),
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `toVaultItemCipherType should return the correct VaultItemCipherType`() {
|
||||
assertEquals(
|
||||
VaultItemCipherType.CARD,
|
||||
mockk<AutofillSaveItem.Card>().toVaultItemCipherType(),
|
||||
)
|
||||
|
||||
assertEquals(
|
||||
VaultItemCipherType.LOGIN,
|
||||
mockk<AutofillSaveItem.Login>().toVaultItemCipherType(),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user