mirror of
https://github.com/bitwarden/android.git
synced 2026-05-01 04:38:52 -05:00
[PM-15906] Implement single tap passkey flows (#4547)
This commit is contained in:
@@ -22,10 +22,10 @@ import com.x8bit.bitwarden.data.autofill.fido2.model.Fido2CredentialAssertionReq
|
||||
import com.x8bit.bitwarden.data.autofill.fido2.model.Fido2GetCredentialsRequest
|
||||
import com.x8bit.bitwarden.data.autofill.fido2.model.Fido2ValidateOriginResult
|
||||
import com.x8bit.bitwarden.data.autofill.fido2.model.createMockFido2CredentialAssertionRequest
|
||||
import com.x8bit.bitwarden.data.autofill.fido2.model.createMockFido2CredentialRequest
|
||||
import com.x8bit.bitwarden.data.autofill.fido2.model.createMockFido2CreateCredentialRequest
|
||||
import com.x8bit.bitwarden.data.autofill.fido2.model.createMockFido2GetCredentialsRequest
|
||||
import com.x8bit.bitwarden.data.autofill.fido2.util.getFido2AssertionRequestOrNull
|
||||
import com.x8bit.bitwarden.data.autofill.fido2.util.getFido2CredentialRequestOrNull
|
||||
import com.x8bit.bitwarden.data.autofill.fido2.util.getFido2CreateCredentialRequestOrNull
|
||||
import com.x8bit.bitwarden.data.autofill.fido2.util.getFido2GetCredentialsRequestOrNull
|
||||
import com.x8bit.bitwarden.data.autofill.manager.AutofillSelectionManager
|
||||
import com.x8bit.bitwarden.data.autofill.manager.AutofillSelectionManagerImpl
|
||||
@@ -139,7 +139,7 @@ class MainViewModelTest : BaseViewModelTest() {
|
||||
Intent::getAutofillSelectionDataOrNull,
|
||||
Intent::getCompleteRegistrationDataIntentOrNull,
|
||||
Intent::getFido2AssertionRequestOrNull,
|
||||
Intent::getFido2CredentialRequestOrNull,
|
||||
Intent::getFido2CreateCredentialRequestOrNull,
|
||||
Intent::getFido2GetCredentialsRequestOrNull,
|
||||
Intent::isAddTotpLoginItemFromAuthenticator,
|
||||
)
|
||||
@@ -159,7 +159,7 @@ class MainViewModelTest : BaseViewModelTest() {
|
||||
Intent::getAutofillSelectionDataOrNull,
|
||||
Intent::getCompleteRegistrationDataIntentOrNull,
|
||||
Intent::getFido2AssertionRequestOrNull,
|
||||
Intent::getFido2CredentialRequestOrNull,
|
||||
Intent::getFido2CreateCredentialRequestOrNull,
|
||||
Intent::getFido2GetCredentialsRequestOrNull,
|
||||
Intent::isAddTotpLoginItemFromAuthenticator,
|
||||
)
|
||||
@@ -647,6 +647,7 @@ class MainViewModelTest : BaseViewModelTest() {
|
||||
packageName = "com.x8bit.bitwarden",
|
||||
signingInfo = SigningInfo(),
|
||||
origin = "mockOrigin",
|
||||
isUserVerified = true,
|
||||
)
|
||||
val fido2Intent = createMockIntent(
|
||||
mockFido2CreateCredentialRequest = fido2CreateCredentialRequest,
|
||||
@@ -673,11 +674,13 @@ class MainViewModelTest : BaseViewModelTest() {
|
||||
)
|
||||
}
|
||||
|
||||
@Suppress("MaxLineLength")
|
||||
@Test
|
||||
fun `on ReceiveFirstIntent with fido2 request data should set the user to unverified`() {
|
||||
fun `on ReceiveFirstIntent with fido2 create request data should set the user verification based on request`() {
|
||||
val viewModel = createViewModel()
|
||||
val createCredentialRequest = createMockFido2CreateCredentialRequest(number = 1)
|
||||
val fido2Intent = createMockIntent(
|
||||
mockFido2CreateCredentialRequest = createMockFido2CredentialRequest(number = 1),
|
||||
mockFido2CreateCredentialRequest = createCredentialRequest,
|
||||
)
|
||||
|
||||
viewModel.trySendAction(
|
||||
@@ -687,7 +690,7 @@ class MainViewModelTest : BaseViewModelTest() {
|
||||
)
|
||||
|
||||
verify {
|
||||
fido2CredentialManager.isUserVerified = false
|
||||
fido2CredentialManager.isUserVerified = createCredentialRequest.isUserVerified ?: false
|
||||
}
|
||||
}
|
||||
|
||||
@@ -702,6 +705,7 @@ class MainViewModelTest : BaseViewModelTest() {
|
||||
packageName = "com.x8bit.bitwarden",
|
||||
signingInfo = SigningInfo(),
|
||||
origin = "mockOrigin",
|
||||
isUserVerified = true,
|
||||
)
|
||||
val mockIntent = createMockIntent(
|
||||
mockFido2CreateCredentialRequest = fido2CreateCredentialRequest,
|
||||
@@ -732,6 +736,7 @@ class MainViewModelTest : BaseViewModelTest() {
|
||||
packageName = "com.x8bit.bitwarden",
|
||||
signingInfo = SigningInfo(),
|
||||
origin = "mockOrigin",
|
||||
isUserVerified = true,
|
||||
)
|
||||
val mockIntent = createMockIntent(
|
||||
mockFido2CreateCredentialRequest = fido2CreateCredentialRequest,
|
||||
@@ -1139,7 +1144,7 @@ private fun createMockIntent(
|
||||
every { getAutofillSelectionDataOrNull() } returns mockAutofillSelectionData
|
||||
every { getCompleteRegistrationDataIntentOrNull() } returns mockCompleteRegistrationData
|
||||
every { getFido2AssertionRequestOrNull() } returns mockFido2CredentialAssertionRequest
|
||||
every { getFido2CredentialRequestOrNull() } returns mockFido2CreateCredentialRequest
|
||||
every { getFido2CreateCredentialRequestOrNull() } returns mockFido2CreateCredentialRequest
|
||||
every { getFido2GetCredentialsRequestOrNull() } returns mockFido2GetCredentialsRequest
|
||||
every { isMyVaultShortcut } returns mockIsMyVaultShortcut
|
||||
every { isPasswordGeneratorShortcut } returns mockIsPasswordGeneratorShortcut
|
||||
|
||||
Reference in New Issue
Block a user