mirror of
https://github.com/bitwarden/android.git
synced 2026-06-11 00:56:24 -05:00
Merge branch 'PM-37255/fill-assist-data-layer' into PM-37255/fill-assist-integration
This commit is contained in:
@@ -63,8 +63,13 @@ class FillAssistManagerImpl(
|
||||
|
||||
override fun syncIfNecessary() {
|
||||
if (!featureFlagManager.getFeatureFlag(FlagKey.FillAssistTargetingRules)) return
|
||||
val serverUrl = serverConfigRepository.serverConfigStateFlow.value
|
||||
?.serverData?.environment?.fillAssistRulesUrl ?: return
|
||||
val serverUrl = serverConfigRepository
|
||||
.serverConfigStateFlow
|
||||
.value
|
||||
?.serverData
|
||||
?.environment
|
||||
?.fillAssistRulesUrl
|
||||
?: return
|
||||
val lastFetch = fillAssistDiskSource.getLastFetchTimestamp(serverUrl) ?: 0L
|
||||
if (clock.millis() - lastFetch < UPDATE_INTERVAL_MS) return
|
||||
if (!syncJob.isCompleted) return
|
||||
|
||||
@@ -46,7 +46,6 @@ import com.bitwarden.network.model.OrganizationAutoEnrollStatusResponseJson
|
||||
import com.bitwarden.network.model.OrganizationKeysResponseJson
|
||||
import com.bitwarden.network.model.OrganizationType
|
||||
import com.bitwarden.network.model.PasswordHintResponseJson
|
||||
import com.bitwarden.network.model.PolicyTypeJson
|
||||
import com.bitwarden.network.model.PreLoginResponseJson
|
||||
import com.bitwarden.network.model.PrevalidateSsoResponseJson
|
||||
import com.bitwarden.network.model.RefreshTokenResponseJson
|
||||
@@ -57,7 +56,6 @@ import com.bitwarden.network.model.ResetPasswordRequestJson
|
||||
import com.bitwarden.network.model.SendVerificationEmailRequestJson
|
||||
import com.bitwarden.network.model.SendVerificationEmailResponseJson
|
||||
import com.bitwarden.network.model.SetPasswordRequestJson
|
||||
import com.bitwarden.network.model.SyncResponseJson
|
||||
import com.bitwarden.network.model.TrustedDeviceUserDecryptionOptionsJson
|
||||
import com.bitwarden.network.model.TwoFactorAuthMethod
|
||||
import com.bitwarden.network.model.TwoFactorDataModel
|
||||
@@ -69,12 +67,13 @@ import com.bitwarden.network.model.VerifyEmailTokenResponseJson
|
||||
import com.bitwarden.network.model.createMockAccountKeysJson
|
||||
import com.bitwarden.network.model.createMockAccountKeysJsonWithNullFields
|
||||
import com.bitwarden.network.model.createMockOrganizationNetwork
|
||||
import com.bitwarden.network.model.createMockPolicy
|
||||
import com.bitwarden.network.service.AccountsService
|
||||
import com.bitwarden.network.service.DevicesService
|
||||
import com.bitwarden.network.service.HaveIBeenPwnedService
|
||||
import com.bitwarden.network.service.IdentityService
|
||||
import com.bitwarden.network.service.OrganizationService
|
||||
import com.bitwarden.policies.PolicyType
|
||||
import com.bitwarden.policies.PolicyView
|
||||
import com.bitwarden.ui.platform.resource.BitwardenString
|
||||
import com.x8bit.bitwarden.data.auth.datasource.disk.model.AccountJson
|
||||
import com.x8bit.bitwarden.data.auth.datasource.disk.model.AccountTokensJson
|
||||
@@ -148,6 +147,7 @@ import com.x8bit.bitwarden.data.platform.manager.model.NotificationLogoutData
|
||||
import com.x8bit.bitwarden.data.platform.repository.SettingsRepository
|
||||
import com.x8bit.bitwarden.data.platform.repository.util.FakeEnvironmentRepository
|
||||
import com.x8bit.bitwarden.data.vault.datasource.sdk.VaultSdkSource
|
||||
import com.x8bit.bitwarden.data.vault.datasource.sdk.model.createMockPolicyView
|
||||
import com.x8bit.bitwarden.data.vault.repository.VaultRepository
|
||||
import com.x8bit.bitwarden.data.vault.repository.model.VaultUnlockData
|
||||
import com.x8bit.bitwarden.data.vault.repository.model.VaultUnlockResult
|
||||
@@ -168,8 +168,6 @@ import kotlinx.coroutines.test.runTest
|
||||
import kotlinx.serialization.json.JsonNull
|
||||
import kotlinx.serialization.json.JsonObject
|
||||
import kotlinx.serialization.json.JsonPrimitive
|
||||
import kotlinx.serialization.json.buildJsonObject
|
||||
import kotlinx.serialization.json.put
|
||||
import org.junit.jupiter.api.AfterEach
|
||||
import org.junit.jupiter.api.Assertions.assertEquals
|
||||
import org.junit.jupiter.api.Assertions.assertFalse
|
||||
@@ -266,14 +264,14 @@ class AuthRepositoryTest {
|
||||
|
||||
private val mutableLogoutFlow = bufferedMutableSharedFlow<NotificationLogoutData>()
|
||||
private val mutableSyncOrgKeysFlow = bufferedMutableSharedFlow<String>()
|
||||
private val mutableActivePolicyFlow = bufferedMutableSharedFlow<List<SyncResponseJson.Policy>>()
|
||||
private val mutableActivePolicyFlow = bufferedMutableSharedFlow<List<PolicyView>>()
|
||||
private val pushManager: PushManager = mockk {
|
||||
every { logoutFlow } returns mutableLogoutFlow
|
||||
every { syncOrgKeysFlow } returns mutableSyncOrgKeysFlow
|
||||
}
|
||||
private val policyManager: PolicyManager = mockk {
|
||||
every {
|
||||
getActivePoliciesFlow(type = PolicyTypeJson.MASTER_PASSWORD)
|
||||
getActivePoliciesFlow(type = PolicyType.MASTER_PASSWORD)
|
||||
} returns mutableActivePolicyFlow
|
||||
}
|
||||
private val logsManager: LogsManager = mockk {
|
||||
@@ -470,18 +468,20 @@ class AuthRepositoryTest {
|
||||
// Set policies that will fail the password.
|
||||
mutableActivePolicyFlow.emit(
|
||||
listOf(
|
||||
createMockPolicy(
|
||||
type = PolicyTypeJson.MASTER_PASSWORD,
|
||||
isEnabled = true,
|
||||
data = buildJsonObject {
|
||||
put(key = "minLength", value = 100)
|
||||
put(key = "minComplexity", value = null)
|
||||
put(key = "requireUpper", value = null)
|
||||
put(key = "requireLower", value = null)
|
||||
put(key = "requireNumbers", value = null)
|
||||
put(key = "requireSpecial", value = null)
|
||||
put(key = "enforceOnLogin", value = true)
|
||||
},
|
||||
createMockPolicyView(
|
||||
type = PolicyType.MASTER_PASSWORD,
|
||||
enabled = true,
|
||||
data = """
|
||||
{
|
||||
"minLength":100,
|
||||
"minComplexity":null,
|
||||
"requireUpper":null,
|
||||
"requireLower":null,
|
||||
"requireNumbers":null,
|
||||
"requireSpecial":null,
|
||||
"enforceOnLogin":true
|
||||
}
|
||||
""",
|
||||
),
|
||||
),
|
||||
)
|
||||
@@ -7344,20 +7344,22 @@ class AuthRepositoryTest {
|
||||
requireSpecial: Boolean = false,
|
||||
) {
|
||||
every {
|
||||
policyManager.getActivePolicies(type = PolicyTypeJson.MASTER_PASSWORD)
|
||||
policyManager.getActivePolicies(type = PolicyType.MASTER_PASSWORD)
|
||||
} returns listOf(
|
||||
createMockPolicy(
|
||||
type = PolicyTypeJson.MASTER_PASSWORD,
|
||||
isEnabled = true,
|
||||
data = buildJsonObject {
|
||||
put(key = "minLength", value = minLength)
|
||||
put(key = "minComplexity", value = minComplexity)
|
||||
put(key = "requireUpper", value = requireUpper)
|
||||
put(key = "requireLower", value = requireLower)
|
||||
put(key = "requireNumbers", value = requireNumbers)
|
||||
put(key = "requireSpecial", value = requireSpecial)
|
||||
put(key = "enforceOnLogin", value = true)
|
||||
},
|
||||
createMockPolicyView(
|
||||
type = PolicyType.MASTER_PASSWORD,
|
||||
enabled = true,
|
||||
data = """
|
||||
{
|
||||
"minLength":$minLength,
|
||||
"minComplexity":$minComplexity,
|
||||
"requireUpper":$requireUpper,
|
||||
"requireLower":$requireLower,
|
||||
"requireNumbers":$requireNumbers,
|
||||
"requireSpecial":$requireSpecial,
|
||||
"enforceOnLogin":true
|
||||
}
|
||||
""",
|
||||
),
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user