[PM-15609] Move FIDO2 origin validation logic to Fido2OriginManager (#4426)

This commit is contained in:
Patrick Honkonen
2024-12-11 13:17:51 -05:00
committed by GitHub
parent 7b3ad98698
commit d9ef87e21f
13 changed files with 643 additions and 462 deletions

View File

@@ -16,6 +16,7 @@ import com.x8bit.bitwarden.data.auth.util.getPasswordlessRequestDataIntentOrNull
import com.x8bit.bitwarden.data.autofill.accessibility.manager.AccessibilitySelectionManager
import com.x8bit.bitwarden.data.autofill.accessibility.manager.AccessibilitySelectionManagerImpl
import com.x8bit.bitwarden.data.autofill.fido2.manager.Fido2CredentialManager
import com.x8bit.bitwarden.data.autofill.fido2.manager.Fido2OriginManager
import com.x8bit.bitwarden.data.autofill.fido2.model.Fido2CreateCredentialRequest
import com.x8bit.bitwarden.data.autofill.fido2.model.Fido2CredentialAssertionRequest
import com.x8bit.bitwarden.data.autofill.fido2.model.Fido2GetCredentialsRequest
@@ -121,6 +122,9 @@ class MainViewModelTest : BaseViewModelTest() {
every { isUserVerified } returns true
every { isUserVerified = any() } just runs
}
private val fido2OriginManager = mockk<Fido2OriginManager> {
coEvery { validateOrigin(any(), any()) } returns Fido2ValidateOriginResult.Success(null)
}
private val savedStateHandle = SavedStateHandle()
@BeforeEach
@@ -614,11 +618,11 @@ class MainViewModelTest : BaseViewModelTest() {
)
coEvery {
fido2CredentialManager.validateOrigin(
fido2OriginManager.validateOrigin(
fido2CreateCredentialRequest.callingAppInfo,
fido2CreateCredentialRequest.requestJson,
)
} returns Fido2ValidateOriginResult.Success
} returns Fido2ValidateOriginResult.Success(null)
viewModel.trySendAction(
MainAction.ReceiveFirstIntent(
@@ -668,11 +672,11 @@ class MainViewModelTest : BaseViewModelTest() {
mockFido2CreateCredentialRequest = fido2CreateCredentialRequest,
)
coEvery {
fido2CredentialManager.validateOrigin(
fido2OriginManager.validateOrigin(
fido2CreateCredentialRequest.callingAppInfo,
fido2CreateCredentialRequest.requestJson,
)
} returns Fido2ValidateOriginResult.Success
} returns Fido2ValidateOriginResult.Success(null)
viewModel.trySendAction(
MainAction.ReceiveFirstIntent(
@@ -698,11 +702,11 @@ class MainViewModelTest : BaseViewModelTest() {
mockFido2CreateCredentialRequest = fido2CreateCredentialRequest,
)
coEvery {
fido2CredentialManager.validateOrigin(
fido2OriginManager.validateOrigin(
fido2CreateCredentialRequest.callingAppInfo,
fido2CreateCredentialRequest.requestJson,
)
} returns Fido2ValidateOriginResult.Success
} returns Fido2ValidateOriginResult.Success(null)
viewModel.trySendAction(
MainAction.ReceiveFirstIntent(