mirror of
https://github.com/bitwarden/android.git
synced 2026-02-03 18:17:54 -06:00
Cleanup organizations (#6391)
This commit is contained in:
parent
9463cf646b
commit
66316e4bd2
@ -1,7 +1,6 @@
|
||||
package com.x8bit.bitwarden.data.auth.repository
|
||||
|
||||
import com.bitwarden.network.model.GetTokenResponseJson
|
||||
import com.bitwarden.network.model.SyncResponseJson
|
||||
import com.bitwarden.network.model.TwoFactorDataModel
|
||||
import com.x8bit.bitwarden.data.auth.datasource.disk.model.ForcePasswordResetReason
|
||||
import com.x8bit.bitwarden.data.auth.datasource.disk.model.OnboardingStatus
|
||||
@ -17,6 +16,7 @@ import com.x8bit.bitwarden.data.auth.repository.model.LeaveOrganizationResult
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.LoginResult
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.LogoutReason
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.NewSsoUserResult
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.Organization
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.PasswordHintResult
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.PasswordStrengthResult
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.PolicyInformation
|
||||
@ -126,7 +126,7 @@ interface AuthRepository :
|
||||
/**
|
||||
* The organization for the active user.
|
||||
*/
|
||||
val organizations: List<SyncResponseJson.Profile.Organization>
|
||||
val organizations: List<Organization>
|
||||
|
||||
/**
|
||||
* Whether or not the welcome carousel should be displayed, based on the feature flag and
|
||||
|
||||
@ -72,6 +72,7 @@ import com.x8bit.bitwarden.data.auth.repository.model.LeaveOrganizationResult
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.LoginResult
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.LogoutReason
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.NewSsoUserResult
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.Organization
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.PasswordHintResult
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.PasswordStrengthResult
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.PolicyInformation
|
||||
@ -96,6 +97,7 @@ import com.x8bit.bitwarden.data.auth.repository.util.SsoCallbackResult
|
||||
import com.x8bit.bitwarden.data.auth.repository.util.WebAuthResult
|
||||
import com.x8bit.bitwarden.data.auth.repository.util.activeUserIdChangesFlow
|
||||
import com.x8bit.bitwarden.data.auth.repository.util.policyInformation
|
||||
import com.x8bit.bitwarden.data.auth.repository.util.toOrganizations
|
||||
import com.x8bit.bitwarden.data.auth.repository.util.toRemovedPasswordUserStateJson
|
||||
import com.x8bit.bitwarden.data.auth.repository.util.toSdkParams
|
||||
import com.x8bit.bitwarden.data.auth.repository.util.toUserState
|
||||
@ -288,8 +290,11 @@ class AuthRepositoryImpl(
|
||||
?.profile
|
||||
?.forcePasswordResetReason
|
||||
|
||||
override val organizations: List<SyncResponseJson.Profile.Organization>
|
||||
get() = activeUserId?.let { authDiskSource.getOrganizations(it) }.orEmpty()
|
||||
override val organizations: List<Organization>
|
||||
get() = activeUserId
|
||||
?.let { authDiskSource.getOrganizations(it) }
|
||||
.orEmpty()
|
||||
.toOrganizations()
|
||||
|
||||
override val showWelcomeCarousel: Boolean
|
||||
get() = !settingsRepository.hasUserLoggedInOrCreatedAccount
|
||||
@ -975,8 +980,8 @@ class AuthRepositoryImpl(
|
||||
val keyConnectorUrl = organizations
|
||||
.find {
|
||||
it.shouldUseKeyConnector &&
|
||||
it.type != OrganizationType.OWNER &&
|
||||
it.type != OrganizationType.ADMIN
|
||||
it.role != OrganizationType.OWNER &&
|
||||
it.role != OrganizationType.ADMIN
|
||||
}
|
||||
?.keyConnectorUrl
|
||||
?: return RemovePasswordResult.Error(
|
||||
|
||||
@ -14,14 +14,16 @@ import com.bitwarden.network.model.OrganizationType
|
||||
* @property keyConnectorUrl The key connector domain (if applicable).
|
||||
* @property userIsClaimedByOrganization Indicates that the user is claimed by the organization.
|
||||
* @property limitItemDeletion Indicates that the organization limits item deletion.
|
||||
* @property shouldUseEvents Indicates if the organization uses tracking events.
|
||||
*/
|
||||
data class Organization(
|
||||
val id: String,
|
||||
val name: String?,
|
||||
val name: String,
|
||||
val shouldManageResetPassword: Boolean,
|
||||
val shouldUseKeyConnector: Boolean,
|
||||
val role: OrganizationType,
|
||||
val keyConnectorUrl: String?,
|
||||
val userIsClaimedByOrganization: Boolean,
|
||||
val limitItemDeletion: Boolean = false,
|
||||
val limitItemDeletion: Boolean,
|
||||
val shouldUseEvents: Boolean,
|
||||
)
|
||||
|
||||
@ -13,26 +13,30 @@ private val JSON = Json {
|
||||
}
|
||||
|
||||
/**
|
||||
* Maps the given [SyncResponseJson.Profile.Organization] to an [Organization].
|
||||
* Maps the given [SyncResponseJson.Profile.Organization] to an [Organization] or `null` if the
|
||||
* [SyncResponseJson.Profile.Organization.name] is not present.
|
||||
*/
|
||||
fun SyncResponseJson.Profile.Organization.toOrganization(): Organization =
|
||||
Organization(
|
||||
id = this.id,
|
||||
name = this.name,
|
||||
shouldUseKeyConnector = this.shouldUseKeyConnector,
|
||||
role = this.type,
|
||||
shouldManageResetPassword = this.permissions.shouldManageResetPassword,
|
||||
keyConnectorUrl = this.keyConnectorUrl,
|
||||
userIsClaimedByOrganization = this.userIsClaimedByOrganization,
|
||||
limitItemDeletion = this.limitItemDeletion,
|
||||
)
|
||||
fun SyncResponseJson.Profile.Organization.toOrganization(): Organization? =
|
||||
this.name?.let {
|
||||
Organization(
|
||||
id = this.id,
|
||||
name = it,
|
||||
shouldUseKeyConnector = this.shouldUseKeyConnector,
|
||||
role = this.type,
|
||||
shouldManageResetPassword = this.permissions.shouldManageResetPassword,
|
||||
keyConnectorUrl = this.keyConnectorUrl,
|
||||
userIsClaimedByOrganization = this.userIsClaimedByOrganization,
|
||||
limitItemDeletion = this.limitItemDeletion,
|
||||
shouldUseEvents = this.shouldUseEvents,
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* Maps the given list of [SyncResponseJson.Profile.Organization] to a list of
|
||||
* [Organization]s.
|
||||
*/
|
||||
fun List<SyncResponseJson.Profile.Organization>.toOrganizations(): List<Organization> =
|
||||
this.map { it.toOrganization() }
|
||||
this.mapNotNull { it.toOrganization() }
|
||||
|
||||
/**
|
||||
* Convert the JSON data of the [SyncResponseJson.Policy] object into [PolicyInformation] data.
|
||||
|
||||
@ -11,7 +11,7 @@ import com.bitwarden.network.model.KeyConnectorUserDecryptionOptionsJson
|
||||
import com.bitwarden.network.model.TrustedDeviceUserDecryptionOptionsJson
|
||||
import com.bitwarden.network.model.UserDecryptionOptionsJson
|
||||
import com.bitwarden.network.model.createMockAccountKeysJson
|
||||
import com.bitwarden.network.model.createMockOrganization
|
||||
import com.bitwarden.network.model.createMockOrganizationNetwork
|
||||
import com.bitwarden.network.model.createMockPolicy
|
||||
import com.x8bit.bitwarden.data.auth.datasource.disk.model.AccountJson
|
||||
import com.x8bit.bitwarden.data.auth.datasource.disk.model.AccountTokensJson
|
||||
@ -296,7 +296,7 @@ class AuthDiskSourceTest {
|
||||
)
|
||||
authDiskSource.storeOrganizations(
|
||||
userId = userId,
|
||||
organizations = listOf(createMockOrganization(1)),
|
||||
organizations = listOf(createMockOrganizationNetwork(number = 1)),
|
||||
)
|
||||
authDiskSource.storePolicies(
|
||||
userId = userId,
|
||||
@ -1048,8 +1048,8 @@ class AuthDiskSourceTest {
|
||||
val organizationsBaseKey = "bwPreferencesStorage:organizations"
|
||||
val mockUserId = "mockUserId"
|
||||
val mockOrganizations = listOf(
|
||||
createMockOrganization(0),
|
||||
createMockOrganization(1),
|
||||
createMockOrganizationNetwork(number = 0),
|
||||
createMockOrganizationNetwork(number = 1),
|
||||
)
|
||||
val mockOrganizationsMap = mockOrganizations.associateBy { it.id }
|
||||
fakeSharedPreferences
|
||||
@ -1070,8 +1070,8 @@ class AuthDiskSourceTest {
|
||||
fun `getOrganizationsFlow should react to changes in getOrganizations`() = runTest {
|
||||
val mockUserId = "mockUserId"
|
||||
val mockOrganizations = listOf(
|
||||
createMockOrganization(0),
|
||||
createMockOrganization(1),
|
||||
createMockOrganizationNetwork(number = 0),
|
||||
createMockOrganizationNetwork(number = 1),
|
||||
)
|
||||
authDiskSource.getOrganizationsFlow(userId = mockUserId).test {
|
||||
// The initial values of the Flow and the property are in sync
|
||||
@ -1092,8 +1092,8 @@ class AuthDiskSourceTest {
|
||||
val organizationsBaseKey = "bwPreferencesStorage:organizations"
|
||||
val mockUserId = "mockUserId"
|
||||
val mockOrganizations = listOf(
|
||||
createMockOrganization(0),
|
||||
createMockOrganization(1),
|
||||
createMockOrganizationNetwork(number = 0),
|
||||
createMockOrganizationNetwork(number = 1),
|
||||
)
|
||||
val mockOrganizationsMap = mockOrganizations.associateBy { it.id }
|
||||
authDiskSource.storeOrganizations(
|
||||
|
||||
@ -7,7 +7,7 @@ import com.bitwarden.data.datasource.disk.model.EnvironmentUrlDataJson
|
||||
import com.bitwarden.network.model.GetTokenResponseJson
|
||||
import com.bitwarden.network.model.KdfTypeJson
|
||||
import com.bitwarden.network.model.PolicyTypeJson
|
||||
import com.bitwarden.network.model.createMockOrganization
|
||||
import com.bitwarden.network.model.createMockOrganizationNetwork
|
||||
import com.bitwarden.network.model.createMockPolicy
|
||||
import com.x8bit.bitwarden.data.auth.datasource.disk.model.AccountJson
|
||||
import com.x8bit.bitwarden.data.auth.datasource.disk.model.UserStateJson
|
||||
@ -301,7 +301,7 @@ private val FIRST_TIME_STATE = FirstTimeState(
|
||||
showImportLoginsCard = true,
|
||||
)
|
||||
|
||||
private val ORGANIZATIONS = listOf(createMockOrganization(number = 0))
|
||||
private val ORGANIZATIONS = listOf(createMockOrganizationNetwork(number = 0))
|
||||
private val USER_ORGANIZATIONS = listOf(
|
||||
UserOrganizations(
|
||||
userId = USER_ID_1,
|
||||
|
||||
@ -61,7 +61,7 @@ import com.bitwarden.network.model.VerifyEmailTokenRequestJson
|
||||
import com.bitwarden.network.model.VerifyEmailTokenResponseJson
|
||||
import com.bitwarden.network.model.createMockAccountKeysJson
|
||||
import com.bitwarden.network.model.createMockAccountKeysJsonWithNullFields
|
||||
import com.bitwarden.network.model.createMockOrganization
|
||||
import com.bitwarden.network.model.createMockOrganizationNetwork
|
||||
import com.bitwarden.network.model.createMockPolicy
|
||||
import com.bitwarden.network.service.AccountsService
|
||||
import com.bitwarden.network.service.DevicesService
|
||||
@ -99,6 +99,7 @@ import com.x8bit.bitwarden.data.auth.repository.model.LeaveOrganizationResult
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.LoginResult
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.LogoutReason
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.NewSsoUserResult
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.Organization
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.PasswordHintResult
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.PasswordStrengthResult
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.PrevalidateSsoResult
|
||||
@ -115,6 +116,7 @@ import com.x8bit.bitwarden.data.auth.repository.model.ValidatePasswordResult
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.ValidatePinResult
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.VerifiedOrganizationDomainSsoDetailsResult
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.VerifyOtpResult
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.createMockOrganization
|
||||
import com.x8bit.bitwarden.data.auth.repository.util.DuoCallbackTokenResult
|
||||
import com.x8bit.bitwarden.data.auth.repository.util.SsoCallbackResult
|
||||
import com.x8bit.bitwarden.data.auth.repository.util.WebAuthResult
|
||||
@ -610,7 +612,7 @@ class AuthRepositoryTest {
|
||||
|
||||
@Test
|
||||
fun `organizations should return an empty list when there is no active user`() = runTest {
|
||||
assertEquals(emptyList<SyncResponseJson.Profile.Organization>(), repository.organizations)
|
||||
assertEquals(emptyList<Organization>(), repository.organizations)
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -618,9 +620,9 @@ class AuthRepositoryTest {
|
||||
fakeAuthDiskSource.userState = SINGLE_USER_STATE_1
|
||||
fakeAuthDiskSource.storeOrganizations(
|
||||
userId = USER_ID_1,
|
||||
organizations = ORGANIZATIONS,
|
||||
organizations = listOf(createMockOrganizationNetwork(number = 0)),
|
||||
)
|
||||
assertEquals(ORGANIZATIONS, repository.organizations)
|
||||
assertEquals(listOf(createMockOrganization(number = 0)), repository.organizations)
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -5257,18 +5259,12 @@ class AuthRepositoryTest {
|
||||
fakeAuthDiskSource.userState = SINGLE_USER_STATE_1
|
||||
fakeAuthDiskSource.storeUserKey(userId = USER_ID_1, userKey = ENCRYPTED_USER_KEY)
|
||||
val organizations = listOf(
|
||||
mockk<SyncResponseJson.Profile.Organization> {
|
||||
every { id } returns "orgId"
|
||||
every { name } returns "orgName"
|
||||
every { permissions } returns mockk {
|
||||
every { shouldManageResetPassword } returns false
|
||||
}
|
||||
every { shouldUseKeyConnector } returns true
|
||||
every { type } returns OrganizationType.USER
|
||||
every { keyConnectorUrl } returns null
|
||||
every { userIsClaimedByOrganization } returns false
|
||||
every { limitItemDeletion } returns false
|
||||
},
|
||||
createMockOrganizationNetwork(
|
||||
number = 1,
|
||||
shouldUseKeyConnector = true,
|
||||
type = OrganizationType.USER,
|
||||
keyConnectorUrl = null,
|
||||
),
|
||||
)
|
||||
fakeAuthDiskSource.storeOrganizations(userId = USER_ID_1, organizations = organizations)
|
||||
|
||||
@ -5288,18 +5284,12 @@ class AuthRepositoryTest {
|
||||
val url = "www.example.com"
|
||||
val error = Throwable("Fail!")
|
||||
val organizations = listOf(
|
||||
mockk<SyncResponseJson.Profile.Organization> {
|
||||
every { id } returns "orgId"
|
||||
every { name } returns "orgName"
|
||||
every { permissions } returns mockk {
|
||||
every { shouldManageResetPassword } returns false
|
||||
}
|
||||
every { shouldUseKeyConnector } returns true
|
||||
every { type } returns OrganizationType.USER
|
||||
every { keyConnectorUrl } returns url
|
||||
every { userIsClaimedByOrganization } returns false
|
||||
every { limitItemDeletion } returns false
|
||||
},
|
||||
createMockOrganizationNetwork(
|
||||
number = 1,
|
||||
shouldUseKeyConnector = true,
|
||||
type = OrganizationType.USER,
|
||||
keyConnectorUrl = url,
|
||||
),
|
||||
)
|
||||
fakeAuthDiskSource.storeOrganizations(userId = USER_ID_1, organizations = organizations)
|
||||
coEvery {
|
||||
@ -5327,18 +5317,12 @@ class AuthRepositoryTest {
|
||||
val error = Throwable("Fail!")
|
||||
val expectedResult = MigrateExistingUserToKeyConnectorResult.Error(error)
|
||||
val organizations = listOf(
|
||||
mockk<SyncResponseJson.Profile.Organization> {
|
||||
every { id } returns "orgId"
|
||||
every { name } returns "orgName"
|
||||
every { permissions } returns mockk {
|
||||
every { shouldManageResetPassword } returns false
|
||||
}
|
||||
every { shouldUseKeyConnector } returns true
|
||||
every { type } returns OrganizationType.USER
|
||||
every { keyConnectorUrl } returns url
|
||||
every { userIsClaimedByOrganization } returns false
|
||||
every { limitItemDeletion } returns false
|
||||
},
|
||||
createMockOrganizationNetwork(
|
||||
number = 1,
|
||||
shouldUseKeyConnector = true,
|
||||
type = OrganizationType.USER,
|
||||
keyConnectorUrl = url,
|
||||
),
|
||||
)
|
||||
fakeAuthDiskSource.storeOrganizations(userId = USER_ID_1, organizations = organizations)
|
||||
coEvery {
|
||||
@ -5369,18 +5353,12 @@ class AuthRepositoryTest {
|
||||
val url = "www.example.com"
|
||||
val expectedResult = MigrateExistingUserToKeyConnectorResult.WrongPasswordError
|
||||
val organizations = listOf(
|
||||
mockk<SyncResponseJson.Profile.Organization> {
|
||||
every { id } returns "orgId"
|
||||
every { name } returns "orgName"
|
||||
every { permissions } returns mockk {
|
||||
every { shouldManageResetPassword } returns false
|
||||
}
|
||||
every { shouldUseKeyConnector } returns true
|
||||
every { type } returns OrganizationType.USER
|
||||
every { keyConnectorUrl } returns url
|
||||
every { userIsClaimedByOrganization } returns false
|
||||
every { limitItemDeletion } returns false
|
||||
},
|
||||
createMockOrganizationNetwork(
|
||||
number = 1,
|
||||
shouldUseKeyConnector = true,
|
||||
type = OrganizationType.USER,
|
||||
keyConnectorUrl = url,
|
||||
),
|
||||
)
|
||||
fakeAuthDiskSource.storeOrganizations(userId = USER_ID_1, organizations = organizations)
|
||||
coEvery {
|
||||
@ -5410,18 +5388,12 @@ class AuthRepositoryTest {
|
||||
fakeAuthDiskSource.storeUserKey(userId = USER_ID_1, userKey = ENCRYPTED_USER_KEY)
|
||||
val url = "www.example.com"
|
||||
val organizations = listOf(
|
||||
mockk<SyncResponseJson.Profile.Organization> {
|
||||
every { id } returns "orgId"
|
||||
every { name } returns "orgName"
|
||||
every { permissions } returns mockk {
|
||||
every { shouldManageResetPassword } returns false
|
||||
}
|
||||
every { shouldUseKeyConnector } returns true
|
||||
every { type } returns OrganizationType.USER
|
||||
every { keyConnectorUrl } returns url
|
||||
every { userIsClaimedByOrganization } returns false
|
||||
every { limitItemDeletion } returns false
|
||||
},
|
||||
createMockOrganizationNetwork(
|
||||
number = 1,
|
||||
shouldUseKeyConnector = true,
|
||||
type = OrganizationType.USER,
|
||||
keyConnectorUrl = url,
|
||||
),
|
||||
)
|
||||
fakeAuthDiskSource.storeOrganizations(userId = USER_ID_1, organizations = organizations)
|
||||
coEvery {
|
||||
@ -7501,7 +7473,6 @@ class AuthRepositoryTest {
|
||||
private const val USER_ID_1 = "2a135b23-e1fb-42c9-bec3-573857bc8181"
|
||||
private const val USER_ID_2 = "b9d32ec0-6497-4582-9798-b350f53bfa02"
|
||||
private const val ORGANIZATION_IDENTIFIER = "organizationIdentifier"
|
||||
private val ORGANIZATIONS = listOf(createMockOrganization(number = 0))
|
||||
private val ACCOUNT_KEYS = createMockAccountKeysJson(number = 1)
|
||||
private val ACCOUNT_KEYS_WITH_NULL_FIELDS =
|
||||
createMockAccountKeysJsonWithNullFields(number = 1)
|
||||
|
||||
@ -0,0 +1,31 @@
|
||||
package com.x8bit.bitwarden.data.auth.repository.model
|
||||
|
||||
import com.bitwarden.network.model.OrganizationType
|
||||
|
||||
/**
|
||||
* Creates a mock [Organization] with a given parameters.
|
||||
*/
|
||||
@Suppress("LongParameterList")
|
||||
fun createMockOrganization(
|
||||
number: Int,
|
||||
id: String = "mockId-$number",
|
||||
name: String = "mockName-$number",
|
||||
shouldManageResetPassword: Boolean = false,
|
||||
shouldUseKeyConnector: Boolean = false,
|
||||
role: OrganizationType = OrganizationType.ADMIN,
|
||||
keyConnectorUrl: String? = "mockKeyConnectorUrl-$number",
|
||||
userIsClaimedByOrganization: Boolean = false,
|
||||
limitItemDeletion: Boolean = false,
|
||||
shouldUseEvents: Boolean = false,
|
||||
): Organization =
|
||||
Organization(
|
||||
id = id,
|
||||
name = name,
|
||||
shouldManageResetPassword = shouldManageResetPassword,
|
||||
shouldUseKeyConnector = shouldUseKeyConnector,
|
||||
role = role,
|
||||
keyConnectorUrl = keyConnectorUrl,
|
||||
userIsClaimedByOrganization = userIsClaimedByOrganization,
|
||||
limitItemDeletion = limitItemDeletion,
|
||||
shouldUseEvents = shouldUseEvents,
|
||||
)
|
||||
@ -1,19 +1,18 @@
|
||||
package com.x8bit.bitwarden.data.auth.repository.util
|
||||
|
||||
import app.cash.turbine.test
|
||||
import com.bitwarden.network.model.OrganizationType
|
||||
import com.bitwarden.network.model.createMockOrganization
|
||||
import com.bitwarden.network.model.createMockOrganizationNetwork
|
||||
import com.x8bit.bitwarden.data.auth.datasource.disk.AuthDiskSource
|
||||
import com.x8bit.bitwarden.data.auth.datasource.disk.model.AccountJson
|
||||
import com.x8bit.bitwarden.data.auth.datasource.disk.model.AccountTokensJson
|
||||
import com.x8bit.bitwarden.data.auth.datasource.disk.model.OnboardingStatus
|
||||
import com.x8bit.bitwarden.data.auth.datasource.disk.model.UserStateJson
|
||||
import com.x8bit.bitwarden.data.auth.datasource.disk.util.FakeAuthDiskSource
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.Organization
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.UserAccountTokens
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.UserKeyConnectorState
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.UserOrganizations
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.UserSwitchingData
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.createMockOrganization
|
||||
import io.mockk.every
|
||||
import io.mockk.mockk
|
||||
import kotlinx.coroutines.test.runTest
|
||||
@ -171,15 +170,15 @@ class AuthDiskSourceExtensionsTest {
|
||||
userState = userStateJson
|
||||
storeOrganizations(
|
||||
userId = "userId1",
|
||||
organizations = listOf(createMockOrganization(number = 1)),
|
||||
organizations = listOf(createMockOrganizationNetwork(number = 1)),
|
||||
)
|
||||
storeOrganizations(
|
||||
userId = "userId2",
|
||||
organizations = listOf(createMockOrganization(number = 2)),
|
||||
organizations = listOf(createMockOrganizationNetwork(number = 2)),
|
||||
)
|
||||
storeOrganizations(
|
||||
userId = "userId3",
|
||||
organizations = listOf(createMockOrganization(number = 3)),
|
||||
organizations = listOf(createMockOrganizationNetwork(number = 3)),
|
||||
)
|
||||
}
|
||||
|
||||
@ -188,43 +187,19 @@ class AuthDiskSourceExtensionsTest {
|
||||
UserOrganizations(
|
||||
userId = "userId1",
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
id = "mockId-1",
|
||||
name = "mockName-1",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = "mockKeyConnectorUrl-1",
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
createMockOrganization(number = 1),
|
||||
),
|
||||
),
|
||||
UserOrganizations(
|
||||
userId = "userId2",
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
id = "mockId-2",
|
||||
name = "mockName-2",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = "mockKeyConnectorUrl-2",
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
createMockOrganization(number = 2),
|
||||
),
|
||||
),
|
||||
UserOrganizations(
|
||||
userId = "userId3",
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
id = "mockId-3",
|
||||
name = "mockName-3",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = "mockKeyConnectorUrl-3",
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
createMockOrganization(number = 3),
|
||||
),
|
||||
),
|
||||
),
|
||||
@ -355,7 +330,7 @@ class AuthDiskSourceExtensionsTest {
|
||||
userState = userStateJson
|
||||
storeOrganizations(
|
||||
userId = "userId1",
|
||||
organizations = listOf(createMockOrganization(number = 1)),
|
||||
organizations = listOf(createMockOrganizationNetwork(number = 1)),
|
||||
)
|
||||
}
|
||||
|
||||
@ -365,15 +340,7 @@ class AuthDiskSourceExtensionsTest {
|
||||
UserOrganizations(
|
||||
userId = "userId1",
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
id = "mockId-1",
|
||||
name = "mockName-1",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = "mockKeyConnectorUrl-1",
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
createMockOrganization(number = 1),
|
||||
),
|
||||
),
|
||||
UserOrganizations(
|
||||
@ -390,7 +357,7 @@ class AuthDiskSourceExtensionsTest {
|
||||
|
||||
authDiskSource.storeOrganizations(
|
||||
userId = "userId2",
|
||||
organizations = listOf(createMockOrganization(number = 2)),
|
||||
organizations = listOf(createMockOrganizationNetwork(number = 2)),
|
||||
)
|
||||
|
||||
assertEquals(
|
||||
@ -398,29 +365,13 @@ class AuthDiskSourceExtensionsTest {
|
||||
UserOrganizations(
|
||||
userId = "userId1",
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
id = "mockId-1",
|
||||
name = "mockName-1",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = "mockKeyConnectorUrl-1",
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
createMockOrganization(number = 1),
|
||||
),
|
||||
),
|
||||
UserOrganizations(
|
||||
userId = "userId2",
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
id = "mockId-2",
|
||||
name = "mockName-2",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = "mockKeyConnectorUrl-2",
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
createMockOrganization(number = 2),
|
||||
),
|
||||
),
|
||||
UserOrganizations(
|
||||
|
||||
@ -2,11 +2,11 @@ package com.x8bit.bitwarden.data.auth.repository.util
|
||||
|
||||
import com.bitwarden.network.model.OrganizationType
|
||||
import com.bitwarden.network.model.PolicyTypeJson
|
||||
import com.bitwarden.network.model.createMockOrganization
|
||||
import com.bitwarden.network.model.createMockOrganizationNetwork
|
||||
import com.bitwarden.network.model.createMockPermissions
|
||||
import com.bitwarden.network.model.createMockPolicy
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.Organization
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.PolicyInformation
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.createMockOrganization
|
||||
import kotlinx.serialization.json.Json
|
||||
import kotlinx.serialization.json.encodeToJsonElement
|
||||
import kotlinx.serialization.json.jsonObject
|
||||
@ -18,16 +18,8 @@ class SyncResponseJsonExtensionsTest {
|
||||
@Test
|
||||
fun `toOrganization should output the correct organization`() {
|
||||
assertEquals(
|
||||
Organization(
|
||||
id = "mockId-1",
|
||||
name = "mockName-1",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = "mockKeyConnectorUrl-1",
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
createMockOrganization(number = 1).toOrganization(),
|
||||
createMockOrganization(number = 1),
|
||||
createMockOrganizationNetwork(number = 1).toOrganization(),
|
||||
)
|
||||
}
|
||||
|
||||
@ -35,28 +27,19 @@ class SyncResponseJsonExtensionsTest {
|
||||
fun `toOrganizations should output the correct list of organizations`() {
|
||||
assertEquals(
|
||||
listOf(
|
||||
Organization(
|
||||
id = "mockId-1",
|
||||
name = "mockName-1",
|
||||
shouldManageResetPassword = false,
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
shouldUseKeyConnector = true,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = "mockKeyConnectorUrl-1",
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
Organization(
|
||||
id = "mockId-2",
|
||||
name = "mockName-2",
|
||||
createMockOrganization(
|
||||
number = 2,
|
||||
shouldManageResetPassword = true,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.USER,
|
||||
keyConnectorUrl = "mockKeyConnectorUrl-2",
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
listOf(
|
||||
createMockOrganization(number = 1, shouldUseKeyConnector = true),
|
||||
createMockOrganization(
|
||||
createMockOrganizationNetwork(number = 1, shouldUseKeyConnector = true),
|
||||
createMockOrganizationNetwork(
|
||||
number = 2,
|
||||
type = OrganizationType.USER,
|
||||
permissions = createMockPermissions(shouldManageResetPassword = true),
|
||||
|
||||
@ -17,12 +17,12 @@ import com.x8bit.bitwarden.data.auth.datasource.disk.model.AccountTokensJson
|
||||
import com.x8bit.bitwarden.data.auth.datasource.disk.model.ForcePasswordResetReason
|
||||
import com.x8bit.bitwarden.data.auth.datasource.disk.model.OnboardingStatus
|
||||
import com.x8bit.bitwarden.data.auth.datasource.disk.model.UserStateJson
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.Organization
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.UserAccountTokens
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.UserKeyConnectorState
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.UserOrganizations
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.UserState
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.VaultUnlockType
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.createMockOrganization
|
||||
import com.x8bit.bitwarden.data.auth.util.KdfParamsConstants.DEFAULT_PBKDF2_ITERATIONS
|
||||
import com.x8bit.bitwarden.data.platform.manager.model.FirstTimeState
|
||||
import com.x8bit.bitwarden.data.vault.repository.model.VaultUnlockData
|
||||
@ -373,14 +373,11 @@ class UserStateJsonExtensionsTest {
|
||||
isVaultUnlocked = true,
|
||||
needsPasswordReset = false,
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "organizationId",
|
||||
name = "organizationName",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
isBiometricsEnabled = false,
|
||||
@ -441,14 +438,11 @@ class UserStateJsonExtensionsTest {
|
||||
UserOrganizations(
|
||||
userId = "activeUserId",
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "organizationId",
|
||||
name = "organizationName",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
),
|
||||
@ -488,14 +482,11 @@ class UserStateJsonExtensionsTest {
|
||||
isVaultUnlocked = false,
|
||||
needsPasswordReset = false,
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "organizationId",
|
||||
name = "organizationName",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
isBiometricsEnabled = true,
|
||||
@ -552,14 +543,11 @@ class UserStateJsonExtensionsTest {
|
||||
UserOrganizations(
|
||||
userId = "activeUserId",
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "organizationId",
|
||||
name = "organizationName",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
),
|
||||
@ -600,14 +588,11 @@ class UserStateJsonExtensionsTest {
|
||||
isVaultUnlocked = false,
|
||||
needsPasswordReset = false,
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "organizationId",
|
||||
name = "organizationName",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
isBiometricsEnabled = false,
|
||||
@ -672,14 +657,11 @@ class UserStateJsonExtensionsTest {
|
||||
UserOrganizations(
|
||||
userId = "activeUserId",
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "organizationId",
|
||||
name = "organizationName",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
),
|
||||
@ -720,14 +702,11 @@ class UserStateJsonExtensionsTest {
|
||||
isVaultUnlocked = false,
|
||||
needsPasswordReset = false,
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "organizationId",
|
||||
name = "organizationName",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
isBiometricsEnabled = false,
|
||||
@ -792,14 +771,11 @@ class UserStateJsonExtensionsTest {
|
||||
UserOrganizations(
|
||||
userId = "activeUserId",
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "organizationId",
|
||||
name = "organizationName",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
),
|
||||
@ -840,14 +816,11 @@ class UserStateJsonExtensionsTest {
|
||||
isVaultUnlocked = false,
|
||||
needsPasswordReset = false,
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "organizationId",
|
||||
name = "organizationName",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
isBiometricsEnabled = false,
|
||||
@ -912,14 +885,12 @@ class UserStateJsonExtensionsTest {
|
||||
UserOrganizations(
|
||||
userId = "activeUserId",
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "organizationId",
|
||||
name = "organizationName",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
),
|
||||
@ -959,16 +930,15 @@ class UserStateJsonExtensionsTest {
|
||||
isVaultUnlocked = false,
|
||||
needsPasswordReset = false,
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "organizationId",
|
||||
name = "organizationName",
|
||||
// Key part of the result #1, this is true or the role is owner or
|
||||
// admin
|
||||
shouldManageResetPassword = true,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.USER,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
isBiometricsEnabled = false,
|
||||
@ -1036,14 +1006,13 @@ class UserStateJsonExtensionsTest {
|
||||
UserOrganizations(
|
||||
userId = "activeUserId",
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "organizationId",
|
||||
name = "organizationName",
|
||||
shouldManageResetPassword = true,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.USER,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
),
|
||||
@ -1247,16 +1216,12 @@ class UserStateJsonExtensionsTest {
|
||||
isVaultUnlocked = false,
|
||||
needsPasswordReset = false,
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "organizationId",
|
||||
name = "organizationName",
|
||||
// Key part of the result #1, this is true or the role is owner or
|
||||
// admin
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.USER,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
isBiometricsEnabled = false,
|
||||
@ -1323,14 +1288,12 @@ class UserStateJsonExtensionsTest {
|
||||
UserOrganizations(
|
||||
userId = "activeUserId",
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "organizationId",
|
||||
name = "organizationName",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.USER,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
),
|
||||
@ -1371,14 +1334,11 @@ class UserStateJsonExtensionsTest {
|
||||
isVaultUnlocked = false,
|
||||
needsPasswordReset = false,
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "organizationId",
|
||||
name = "organizationName",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
isBiometricsEnabled = false,
|
||||
@ -1445,14 +1405,11 @@ class UserStateJsonExtensionsTest {
|
||||
UserOrganizations(
|
||||
userId = "activeUserId",
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "organizationId",
|
||||
name = "organizationName",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
),
|
||||
@ -1493,14 +1450,11 @@ class UserStateJsonExtensionsTest {
|
||||
isVaultUnlocked = true,
|
||||
needsPasswordReset = false,
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "organizationId",
|
||||
name = "organizationName",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
isBiometricsEnabled = false,
|
||||
@ -1561,14 +1515,11 @@ class UserStateJsonExtensionsTest {
|
||||
UserOrganizations(
|
||||
userId = "activeUserId",
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "organizationId",
|
||||
name = "organizationName",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
),
|
||||
@ -1617,14 +1568,11 @@ class UserStateJsonExtensionsTest {
|
||||
isVaultUnlocked = true,
|
||||
needsPasswordReset = false,
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "organizationId",
|
||||
name = "organizationName",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
isBiometricsEnabled = false,
|
||||
@ -1685,14 +1633,11 @@ class UserStateJsonExtensionsTest {
|
||||
UserOrganizations(
|
||||
userId = "activeUserId",
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "organizationId",
|
||||
name = "organizationName",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
@ -4,7 +4,7 @@ import app.cash.turbine.test
|
||||
import com.bitwarden.network.model.OrganizationType
|
||||
import com.bitwarden.network.model.PolicyTypeJson
|
||||
import com.bitwarden.network.model.SyncResponseJson
|
||||
import com.bitwarden.network.model.createMockOrganization
|
||||
import com.bitwarden.network.model.createMockOrganizationNetwork
|
||||
import com.bitwarden.network.model.createMockPolicy
|
||||
import com.x8bit.bitwarden.data.auth.datasource.disk.AuthDiskSource
|
||||
import com.x8bit.bitwarden.data.auth.datasource.disk.model.UserStateJson
|
||||
@ -42,12 +42,12 @@ class PolicyManagerTest {
|
||||
val userStateJson = mockk<UserStateJson> {
|
||||
every { activeUserId } returns USER_ID
|
||||
}
|
||||
val organizationsOne = createMockOrganization(
|
||||
val organizationsOne = createMockOrganizationNetwork(
|
||||
number = 1,
|
||||
isEnabled = true,
|
||||
shouldUsePolicies = true,
|
||||
)
|
||||
val organizationsTwo = createMockOrganization(
|
||||
val organizationsTwo = createMockOrganizationNetwork(
|
||||
number = 2,
|
||||
isEnabled = true,
|
||||
shouldUsePolicies = true,
|
||||
@ -100,7 +100,7 @@ class PolicyManagerTest {
|
||||
every {
|
||||
authDiskSource.getOrganizations(USER_ID)
|
||||
} returns listOf(
|
||||
createMockOrganization(
|
||||
createMockOrganizationNetwork(
|
||||
number = 3,
|
||||
isEnabled = true,
|
||||
),
|
||||
@ -126,7 +126,7 @@ class PolicyManagerTest {
|
||||
every {
|
||||
authDiskSource.getOrganizations(USER_ID)
|
||||
} returns listOf(
|
||||
createMockOrganization(
|
||||
createMockOrganizationNetwork(
|
||||
number = 3,
|
||||
isEnabled = false,
|
||||
),
|
||||
@ -153,7 +153,7 @@ class PolicyManagerTest {
|
||||
every {
|
||||
authDiskSource.getOrganizations(USER_ID)
|
||||
} returns listOf(
|
||||
createMockOrganization(
|
||||
createMockOrganizationNetwork(
|
||||
number = 3,
|
||||
isEnabled = false,
|
||||
shouldUsePolicies = true,
|
||||
@ -177,7 +177,7 @@ class PolicyManagerTest {
|
||||
every {
|
||||
authDiskSource.getOrganizations(USER_ID)
|
||||
} returns listOf(
|
||||
createMockOrganization(
|
||||
createMockOrganizationNetwork(
|
||||
number = 3,
|
||||
isEnabled = true,
|
||||
shouldUsePolicies = true,
|
||||
@ -205,7 +205,7 @@ class PolicyManagerTest {
|
||||
every {
|
||||
authDiskSource.getOrganizations(USER_ID)
|
||||
} returns listOf(
|
||||
createMockOrganization(
|
||||
createMockOrganizationNetwork(
|
||||
number = 3,
|
||||
isEnabled = true,
|
||||
shouldUsePolicies = true,
|
||||
@ -252,7 +252,7 @@ class PolicyManagerTest {
|
||||
every {
|
||||
authDiskSource.getOrganizations(USER_ID)
|
||||
} returns listOf(
|
||||
createMockOrganization(
|
||||
createMockOrganizationNetwork(
|
||||
number = 3,
|
||||
isEnabled = true,
|
||||
shouldUsePolicies = true,
|
||||
@ -308,7 +308,7 @@ class PolicyManagerTest {
|
||||
every {
|
||||
authDiskSource.getOrganizations(USER_ID)
|
||||
} returns listOf(
|
||||
createMockOrganization(
|
||||
createMockOrganizationNetwork(
|
||||
number = 1,
|
||||
isEnabled = true,
|
||||
shouldUsePolicies = true,
|
||||
@ -338,7 +338,7 @@ class PolicyManagerTest {
|
||||
every {
|
||||
authDiskSource.getOrganizations(USER_ID)
|
||||
} returns listOf(
|
||||
createMockOrganization(
|
||||
createMockOrganizationNetwork(
|
||||
number = 1,
|
||||
isEnabled = true,
|
||||
shouldUsePolicies = true,
|
||||
@ -377,19 +377,19 @@ class PolicyManagerTest {
|
||||
every {
|
||||
authDiskSource.getOrganizations(USER_ID)
|
||||
} returns listOf(
|
||||
createMockOrganization(
|
||||
createMockOrganizationNetwork(
|
||||
number = 1,
|
||||
isEnabled = true,
|
||||
shouldUsePolicies = true,
|
||||
type = OrganizationType.USER,
|
||||
),
|
||||
createMockOrganization(
|
||||
createMockOrganizationNetwork(
|
||||
number = 2,
|
||||
isEnabled = true,
|
||||
shouldUsePolicies = true,
|
||||
type = OrganizationType.USER,
|
||||
),
|
||||
createMockOrganization(
|
||||
createMockOrganizationNetwork(
|
||||
number = 3,
|
||||
isEnabled = true,
|
||||
shouldUsePolicies = true,
|
||||
@ -442,13 +442,13 @@ class PolicyManagerTest {
|
||||
every {
|
||||
authDiskSource.getOrganizations(USER_ID)
|
||||
} returns listOf(
|
||||
createMockOrganization(
|
||||
createMockOrganizationNetwork(
|
||||
number = 1,
|
||||
isEnabled = true,
|
||||
shouldUsePolicies = false, // This org does NOT use policies
|
||||
type = OrganizationType.USER,
|
||||
),
|
||||
createMockOrganization(
|
||||
createMockOrganizationNetwork(
|
||||
number = 2,
|
||||
isEnabled = true,
|
||||
shouldUsePolicies = true, // This org uses policies
|
||||
|
||||
@ -6,11 +6,11 @@ import com.bitwarden.core.data.util.advanceTimeByAndRunCurrent
|
||||
import com.bitwarden.core.data.util.asSuccess
|
||||
import com.bitwarden.network.model.OrganizationEventJson
|
||||
import com.bitwarden.network.model.OrganizationEventType
|
||||
import com.bitwarden.network.model.createMockOrganization
|
||||
import com.bitwarden.network.service.EventService
|
||||
import com.bitwarden.vault.CipherView
|
||||
import com.x8bit.bitwarden.data.auth.repository.AuthRepository
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.AuthState
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.createMockOrganization
|
||||
import com.x8bit.bitwarden.data.platform.datasource.disk.EventDiskSource
|
||||
import com.x8bit.bitwarden.data.platform.manager.model.OrganizationEvent
|
||||
import com.x8bit.bitwarden.data.util.FakeLifecycleOwner
|
||||
@ -172,7 +172,7 @@ class OrganizationEventManagerTest {
|
||||
@Test
|
||||
fun `trackEvent should do nothing if the cipher does not belong to an organization that uses events`() {
|
||||
mutableAuthStateFlow.value = AuthState.Authenticated(accessToken = "access-token")
|
||||
val organization = createMockOrganization(number = 1).copy(shouldUseEvents = true)
|
||||
val organization = createMockOrganization(number = 1, shouldUseEvents = true)
|
||||
every { authRepository.organizations } returns listOf(organization)
|
||||
val cipherView = createMockCipherView(number = 1)
|
||||
mutableVaultItemStateFlow.value = DataState.Loaded(data = cipherView)
|
||||
@ -191,7 +191,8 @@ class OrganizationEventManagerTest {
|
||||
@Test
|
||||
fun `trackEvent should add the event to disk if the ciphers organization allows it`() {
|
||||
mutableAuthStateFlow.value = AuthState.Authenticated(accessToken = "access-token")
|
||||
val organization = createMockOrganization(number = 1).copy(
|
||||
val organization = createMockOrganization(
|
||||
number = 1,
|
||||
id = "mockOrganizationId-1",
|
||||
shouldUseEvents = true,
|
||||
)
|
||||
|
||||
@ -15,8 +15,8 @@ import com.bitwarden.network.model.createMockCipher
|
||||
import com.bitwarden.network.model.createMockCollection
|
||||
import com.bitwarden.network.model.createMockDomains
|
||||
import com.bitwarden.network.model.createMockFolder
|
||||
import com.bitwarden.network.model.createMockOrganization
|
||||
import com.bitwarden.network.model.createMockOrganizationKeys
|
||||
import com.bitwarden.network.model.createMockOrganizationNetwork
|
||||
import com.bitwarden.network.model.createMockPolicy
|
||||
import com.bitwarden.network.model.createMockProfile
|
||||
import com.bitwarden.network.model.createMockSend
|
||||
@ -742,7 +742,7 @@ class VaultSyncManagerTest {
|
||||
)
|
||||
fakeAuthDiskSource.assertOrganizations(
|
||||
userId = userId,
|
||||
organizations = listOf(createMockOrganization(number = 1)),
|
||||
organizations = listOf(createMockOrganizationNetwork(number = 1)),
|
||||
)
|
||||
fakeAuthDiskSource.assertPolicies(
|
||||
userId = userId,
|
||||
|
||||
@ -4,7 +4,7 @@ import com.bitwarden.collections.Collection
|
||||
import com.bitwarden.collections.CollectionType
|
||||
import com.bitwarden.network.model.CollectionTypeJson
|
||||
import com.bitwarden.network.model.SyncResponseJson
|
||||
import com.bitwarden.network.model.createMockOrganization
|
||||
import com.bitwarden.network.model.createMockOrganizationNetwork
|
||||
import com.x8bit.bitwarden.data.vault.datasource.sdk.model.createMockCollectionView
|
||||
import org.junit.Test
|
||||
import org.junit.jupiter.api.Assertions.assertEquals
|
||||
@ -147,8 +147,8 @@ class VaultSdkCollectionExtensionsTest {
|
||||
expected,
|
||||
list.sortAlphabeticallyByTypeAndOrganization(
|
||||
userOrganizations = listOf(
|
||||
createMockOrganization(number = 1),
|
||||
createMockOrganization(number = 2),
|
||||
createMockOrganizationNetwork(number = 1),
|
||||
createMockOrganizationNetwork(number = 2),
|
||||
),
|
||||
),
|
||||
)
|
||||
|
||||
@ -10,9 +10,9 @@ import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.data.auth.datasource.disk.model.OnboardingStatus
|
||||
import com.x8bit.bitwarden.data.auth.repository.AuthRepository
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.LeaveOrganizationResult
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.Organization
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.RemovePasswordResult
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.UserState
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.createMockOrganization
|
||||
import com.x8bit.bitwarden.data.platform.manager.model.FirstTimeState
|
||||
import io.mockk.coEvery
|
||||
import io.mockk.coVerify
|
||||
@ -84,36 +84,37 @@ class RemovePasswordViewModelTest : BaseViewModelTest() {
|
||||
|
||||
@Test
|
||||
@Suppress("MaxLineLength")
|
||||
fun `ContinueClick with input and remove password wrong password error with should show error dialog with message`() = runTest {
|
||||
val password = "123"
|
||||
val initialState = DEFAULT_STATE.copy(input = password)
|
||||
val viewModel = createViewModel(state = initialState)
|
||||
coEvery {
|
||||
authRepository.removePassword(masterPassword = password)
|
||||
} returns RemovePasswordResult.WrongPasswordError
|
||||
fun `ContinueClick with input and remove password wrong password error with should show error dialog with message`() =
|
||||
runTest {
|
||||
val password = "123"
|
||||
val initialState = DEFAULT_STATE.copy(input = password)
|
||||
val viewModel = createViewModel(state = initialState)
|
||||
coEvery {
|
||||
authRepository.removePassword(masterPassword = password)
|
||||
} returns RemovePasswordResult.WrongPasswordError
|
||||
|
||||
viewModel.stateFlow.test {
|
||||
assertEquals(initialState, awaitItem())
|
||||
viewModel.trySendAction(RemovePasswordAction.ContinueClick)
|
||||
assertEquals(
|
||||
initialState.copy(
|
||||
dialogState = RemovePasswordState.DialogState.Loading(
|
||||
title = BitwardenString.deleting.asText(),
|
||||
viewModel.stateFlow.test {
|
||||
assertEquals(initialState, awaitItem())
|
||||
viewModel.trySendAction(RemovePasswordAction.ContinueClick)
|
||||
assertEquals(
|
||||
initialState.copy(
|
||||
dialogState = RemovePasswordState.DialogState.Loading(
|
||||
title = BitwardenString.deleting.asText(),
|
||||
),
|
||||
),
|
||||
),
|
||||
awaitItem(),
|
||||
)
|
||||
assertEquals(
|
||||
initialState.copy(
|
||||
dialogState = RemovePasswordState.DialogState.Error(
|
||||
title = BitwardenString.an_error_has_occurred.asText(),
|
||||
message = BitwardenString.invalid_master_password.asText(),
|
||||
awaitItem(),
|
||||
)
|
||||
assertEquals(
|
||||
initialState.copy(
|
||||
dialogState = RemovePasswordState.DialogState.Error(
|
||||
title = BitwardenString.an_error_has_occurred.asText(),
|
||||
message = BitwardenString.invalid_master_password.asText(),
|
||||
),
|
||||
),
|
||||
),
|
||||
awaitItem(),
|
||||
)
|
||||
awaitItem(),
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `ContinueClick with input and remove password success should dismiss dialog`() = runTest {
|
||||
@ -288,14 +289,12 @@ private val DEFAULT_ACCOUNT = UserState.Account(
|
||||
needsPasswordReset = false,
|
||||
isBiometricsEnabled = false,
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
id = "mockId-1",
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
name = ORGANIZATION_NAME,
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = true,
|
||||
role = OrganizationType.USER,
|
||||
keyConnectorUrl = KEY_CONNECTOR_URL,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
needsMasterPassword = false,
|
||||
|
||||
@ -15,8 +15,8 @@ import com.bitwarden.ui.platform.manager.share.model.ShareData
|
||||
import com.x8bit.bitwarden.data.auth.datasource.disk.model.OnboardingStatus
|
||||
import com.x8bit.bitwarden.data.auth.repository.AuthRepository
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.AuthState
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.Organization
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.UserState
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.createMockOrganization
|
||||
import com.x8bit.bitwarden.data.autofill.model.AutofillSaveItem
|
||||
import com.x8bit.bitwarden.data.autofill.model.AutofillSelectionData
|
||||
import com.x8bit.bitwarden.data.credentials.model.CreateCredentialRequest
|
||||
@ -405,14 +405,13 @@ class RootNavViewModelTest : BaseViewModelTest() {
|
||||
needsPasswordReset = false,
|
||||
isBiometricsEnabled = false,
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "orgId",
|
||||
name = "orgName",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = true,
|
||||
role = OrganizationType.USER,
|
||||
keyConnectorUrl = "bitwarden.com",
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
needsMasterPassword = false,
|
||||
|
||||
@ -16,10 +16,10 @@ import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.data.auth.datasource.disk.model.OnboardingStatus
|
||||
import com.x8bit.bitwarden.data.auth.repository.AuthRepository
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.LogoutReason
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.Organization
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.PolicyInformation
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.UserFingerprintResult
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.UserState
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.createMockOrganization
|
||||
import com.x8bit.bitwarden.data.platform.error.NoActiveUserException
|
||||
import com.x8bit.bitwarden.data.platform.manager.FirstTimeActionManager
|
||||
import com.x8bit.bitwarden.data.platform.manager.PolicyManager
|
||||
@ -914,41 +914,32 @@ private val DEFAULT_USER_STATE = UserState(
|
||||
needsPasswordReset = false,
|
||||
isBiometricsEnabled = false,
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "organizationUser",
|
||||
name = "Organization User",
|
||||
shouldUseKeyConnector = false,
|
||||
shouldManageResetPassword = false,
|
||||
role = OrganizationType.USER,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "organizationAdmin",
|
||||
name = "Organization Admin",
|
||||
shouldUseKeyConnector = false,
|
||||
shouldManageResetPassword = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "organizationOwner",
|
||||
name = "Organization Owner",
|
||||
shouldUseKeyConnector = false,
|
||||
shouldManageResetPassword = false,
|
||||
role = OrganizationType.OWNER,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "organizationCustom",
|
||||
name = "Organization Owner",
|
||||
shouldUseKeyConnector = false,
|
||||
shouldManageResetPassword = false,
|
||||
role = OrganizationType.CUSTOM,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
needsMasterPassword = false,
|
||||
|
||||
@ -13,7 +13,6 @@ import com.bitwarden.core.data.manager.toast.ToastManager
|
||||
import com.bitwarden.core.data.repository.model.DataState
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.bitwarden.data.repository.model.Environment
|
||||
import com.bitwarden.network.model.OrganizationType
|
||||
import com.bitwarden.network.model.PolicyTypeJson
|
||||
import com.bitwarden.network.model.createMockPolicy
|
||||
import com.bitwarden.send.SendView
|
||||
@ -33,11 +32,11 @@ import com.bitwarden.vault.UriMatchType
|
||||
import com.x8bit.bitwarden.data.auth.datasource.disk.model.OnboardingStatus
|
||||
import com.x8bit.bitwarden.data.auth.repository.AuthRepository
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.BreachCountResult
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.Organization
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.UserState
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.ValidatePasswordResult
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.ValidatePinResult
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.VaultUnlockType
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.createMockOrganization
|
||||
import com.x8bit.bitwarden.data.autofill.model.AutofillSaveItem
|
||||
import com.x8bit.bitwarden.data.autofill.model.AutofillSelectionData
|
||||
import com.x8bit.bitwarden.data.credentials.manager.BitwardenCredentialManager
|
||||
@ -5031,15 +5030,11 @@ class VaultAddEditViewModelTest : BaseViewModelTest() {
|
||||
isVaultUnlocked = false,
|
||||
needsPasswordReset = false,
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "organizationId",
|
||||
name = "organizationName",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
limitItemDeletion = false,
|
||||
),
|
||||
),
|
||||
isBiometricsEnabled = true,
|
||||
|
||||
@ -2,7 +2,6 @@ package com.x8bit.bitwarden.ui.vault.feature.addedit.util
|
||||
|
||||
import com.bitwarden.collections.CollectionType
|
||||
import com.bitwarden.data.repository.model.Environment
|
||||
import com.bitwarden.network.model.OrganizationType
|
||||
import com.bitwarden.ui.platform.resource.BitwardenString
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.bitwarden.vault.CardView
|
||||
@ -19,9 +18,9 @@ import com.bitwarden.vault.SecureNoteType
|
||||
import com.bitwarden.vault.SecureNoteView
|
||||
import com.bitwarden.vault.SshKeyView
|
||||
import com.x8bit.bitwarden.data.auth.datasource.disk.model.OnboardingStatus
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.Organization
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.UserState
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.VaultUnlockType
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.createMockOrganization
|
||||
import com.x8bit.bitwarden.data.platform.manager.model.FirstTimeState
|
||||
import com.x8bit.bitwarden.data.vault.datasource.sdk.model.createMockCipherView
|
||||
import com.x8bit.bitwarden.data.vault.datasource.sdk.model.createMockCollectionView
|
||||
@ -702,14 +701,11 @@ class CipherViewExtensionsTest {
|
||||
isVaultUnlocked = false,
|
||||
needsPasswordReset = false,
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "mockOrganizationId-1",
|
||||
name = "organizationName",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
isBiometricsEnabled = true,
|
||||
|
||||
@ -4,7 +4,6 @@ import app.cash.turbine.test
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.bitwarden.cxf.model.ImportCredentialsRequestData
|
||||
import com.bitwarden.data.repository.model.Environment
|
||||
import com.bitwarden.network.model.OrganizationType
|
||||
import com.bitwarden.network.model.PolicyTypeJson
|
||||
import com.bitwarden.network.model.SyncResponseJson
|
||||
import com.bitwarden.network.model.createMockPolicy
|
||||
@ -13,8 +12,8 @@ import com.bitwarden.ui.platform.resource.BitwardenString
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.data.auth.datasource.disk.model.OnboardingStatus
|
||||
import com.x8bit.bitwarden.data.auth.repository.AuthRepository
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.Organization
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.UserState
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.createMockOrganization
|
||||
import com.x8bit.bitwarden.data.platform.manager.PolicyManager
|
||||
import com.x8bit.bitwarden.data.platform.manager.SpecialCircumstanceManager
|
||||
import com.x8bit.bitwarden.data.platform.manager.model.FirstTimeState
|
||||
@ -166,14 +165,11 @@ class SelectAccountViewModelTest : BaseViewModelTest() {
|
||||
val accountInOrg = DEFAULT_ACCOUNT.copy(
|
||||
isExportable = false,
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = organizationId,
|
||||
name = "organizationName",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
)
|
||||
@ -200,14 +196,11 @@ class SelectAccountViewModelTest : BaseViewModelTest() {
|
||||
val organizationId = "mockOrganizationId-1"
|
||||
val accountInOrg = DEFAULT_ACCOUNT.copy(
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = organizationId,
|
||||
name = "organizationName",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
)
|
||||
|
||||
@ -17,8 +17,8 @@ import com.bitwarden.vault.CipherListViewType
|
||||
import com.bitwarden.vault.DecryptCipherListResult
|
||||
import com.x8bit.bitwarden.data.auth.datasource.disk.model.OnboardingStatus
|
||||
import com.x8bit.bitwarden.data.auth.repository.AuthRepository
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.Organization
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.UserState
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.createMockOrganization
|
||||
import com.x8bit.bitwarden.data.platform.manager.PolicyManager
|
||||
import com.x8bit.bitwarden.data.platform.manager.SpecialCircumstanceManager
|
||||
import com.x8bit.bitwarden.data.platform.manager.model.FirstTimeState
|
||||
@ -443,14 +443,12 @@ private val DEFAULT_USER_STATE = UserState(
|
||||
needsPasswordReset = false,
|
||||
isBiometricsEnabled = false,
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "mockOrganizationId-1",
|
||||
name = "Organization User",
|
||||
shouldUseKeyConnector = false,
|
||||
shouldManageResetPassword = false,
|
||||
role = OrganizationType.USER,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
needsMasterPassword = false,
|
||||
|
||||
@ -17,8 +17,8 @@ import com.bitwarden.network.model.OrganizationType
|
||||
import com.bitwarden.ui.platform.resource.BitwardenString
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.data.auth.datasource.disk.model.OnboardingStatus
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.Organization
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.UserState
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.createMockOrganization
|
||||
import com.x8bit.bitwarden.data.platform.manager.model.FirstTimeState
|
||||
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
|
||||
import com.x8bit.bitwarden.ui.vault.feature.exportitems.model.AccountSelectionListItem
|
||||
@ -246,14 +246,12 @@ private val DEFAULT_USER_STATE = UserState(
|
||||
needsPasswordReset = false,
|
||||
isBiometricsEnabled = false,
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = DEFAULT_ORGANIZATION_ID,
|
||||
name = "Organization User",
|
||||
shouldUseKeyConnector = false,
|
||||
shouldManageResetPassword = false,
|
||||
role = OrganizationType.USER,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
needsMasterPassword = false,
|
||||
|
||||
@ -11,12 +11,12 @@ import com.bitwarden.ui.platform.resource.BitwardenString
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.data.auth.datasource.disk.model.OnboardingStatus
|
||||
import com.x8bit.bitwarden.data.auth.repository.AuthRepository
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.Organization
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.RequestOtpResult
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.SwitchAccountResult
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.UserState
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.ValidatePasswordResult
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.VerifyOtpResult
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.createMockOrganization
|
||||
import com.x8bit.bitwarden.data.platform.manager.PolicyManager
|
||||
import com.x8bit.bitwarden.data.platform.manager.model.FirstTimeState
|
||||
import com.x8bit.bitwarden.data.vault.repository.VaultRepository
|
||||
@ -731,14 +731,12 @@ private val DEFAULT_USER_STATE = UserState(
|
||||
needsPasswordReset = false,
|
||||
isBiometricsEnabled = false,
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = DEFAULT_ORGANIZATION_ID,
|
||||
name = "Organization User",
|
||||
shouldUseKeyConnector = false,
|
||||
shouldManageResetPassword = false,
|
||||
role = OrganizationType.USER,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
needsMasterPassword = false,
|
||||
@ -762,14 +760,12 @@ private val DEFAULT_USER_STATE = UserState(
|
||||
needsPasswordReset = false,
|
||||
isBiometricsEnabled = false,
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = DEFAULT_ORGANIZATION_ID,
|
||||
name = "Organization User Two",
|
||||
shouldUseKeyConnector = false,
|
||||
shouldManageResetPassword = false,
|
||||
role = OrganizationType.USER,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
needsMasterPassword = false,
|
||||
|
||||
@ -27,8 +27,8 @@ import com.bitwarden.vault.FolderView
|
||||
import com.x8bit.bitwarden.data.auth.datasource.disk.model.OnboardingStatus
|
||||
import com.x8bit.bitwarden.data.auth.repository.AuthRepository
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.BreachCountResult
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.Organization
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.UserState
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.createMockOrganization
|
||||
import com.x8bit.bitwarden.data.platform.manager.FeatureFlagManager
|
||||
import com.x8bit.bitwarden.data.platform.manager.clipboard.BitwardenClipboardManager
|
||||
import com.x8bit.bitwarden.data.platform.manager.event.OrganizationEventManager
|
||||
@ -2403,11 +2403,10 @@ class VaultItemViewModelTest : BaseViewModelTest() {
|
||||
accounts = listOf(
|
||||
DEFAULT_USER_ACCOUNT.copy(
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "mockOrganizationId",
|
||||
name = "mockOrganizationName",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.OWNER,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = true,
|
||||
@ -2466,11 +2465,10 @@ class VaultItemViewModelTest : BaseViewModelTest() {
|
||||
accounts = listOf(
|
||||
DEFAULT_USER_ACCOUNT.copy(
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "mockOrganizationId",
|
||||
name = "mockOrganizationName",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.OWNER,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = true,
|
||||
@ -2528,14 +2526,12 @@ class VaultItemViewModelTest : BaseViewModelTest() {
|
||||
accounts = listOf(
|
||||
DEFAULT_USER_ACCOUNT.copy(
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "mockOrganizationId",
|
||||
name = "mockOrganizationName",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.OWNER,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
),
|
||||
@ -2803,14 +2799,12 @@ class VaultItemViewModelTest : BaseViewModelTest() {
|
||||
needsPasswordReset = false,
|
||||
isBiometricsEnabled = false,
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "organiationId",
|
||||
name = "Test Organization",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.USER,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
needsMasterPassword = false,
|
||||
|
||||
@ -11,10 +11,10 @@ import com.bitwarden.ui.platform.resource.BitwardenString
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.data.auth.datasource.disk.model.OnboardingStatus
|
||||
import com.x8bit.bitwarden.data.auth.repository.AuthRepository
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.Organization
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.RevokeFromOrganizationResult
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.UserState
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.VaultUnlockType
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.createMockOrganization
|
||||
import com.x8bit.bitwarden.data.platform.manager.event.OrganizationEventManager
|
||||
import com.x8bit.bitwarden.data.platform.manager.model.FirstTimeState
|
||||
import com.x8bit.bitwarden.data.platform.manager.model.OrganizationEvent
|
||||
@ -267,15 +267,12 @@ class LeaveOrganizationViewModelTest : BaseViewModelTest() {
|
||||
private const val ORGANIZATION_ID = "organization-id-1"
|
||||
private const val ORGANIZATION_NAME = "Test Organization"
|
||||
|
||||
private val DEFAULT_ORGANIZATION = Organization(
|
||||
private val DEFAULT_ORGANIZATION = createMockOrganization(
|
||||
number = 1,
|
||||
id = ORGANIZATION_ID,
|
||||
name = ORGANIZATION_NAME,
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.USER,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
limitItemDeletion = false,
|
||||
)
|
||||
|
||||
private val DEFAULT_USER_STATE = UserState(
|
||||
|
||||
@ -5,7 +5,6 @@ import app.cash.turbine.test
|
||||
import com.bitwarden.collections.CollectionView
|
||||
import com.bitwarden.core.data.repository.model.DataState
|
||||
import com.bitwarden.data.repository.model.Environment
|
||||
import com.bitwarden.network.model.OrganizationType
|
||||
import com.bitwarden.ui.platform.base.BaseViewModelTest
|
||||
import com.bitwarden.ui.platform.components.snackbar.model.BitwardenSnackbarData
|
||||
import com.bitwarden.ui.platform.manager.snackbar.SnackbarRelayManager
|
||||
@ -15,8 +14,8 @@ import com.bitwarden.ui.util.concat
|
||||
import com.bitwarden.vault.CipherView
|
||||
import com.x8bit.bitwarden.data.auth.datasource.disk.model.OnboardingStatus
|
||||
import com.x8bit.bitwarden.data.auth.repository.AuthRepository
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.Organization
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.UserState
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.createMockOrganization
|
||||
import com.x8bit.bitwarden.data.platform.manager.model.FirstTimeState
|
||||
import com.x8bit.bitwarden.data.vault.datasource.sdk.model.createMockCipherView
|
||||
import com.x8bit.bitwarden.data.vault.datasource.sdk.model.createMockCollectionView
|
||||
@ -523,32 +522,23 @@ private val DEFAULT_USER_STATE = UserState(
|
||||
isBiometricsEnabled = false,
|
||||
needsMasterPassword = false,
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "mockOrganizationId-1",
|
||||
name = "mockOrganizationName-1",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "mockOrganizationId-2",
|
||||
name = "mockOrganizationName-2",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "mockOrganizationId-3",
|
||||
name = "mockOrganizationName-3",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
trustedDevice = null,
|
||||
|
||||
@ -1,12 +1,11 @@
|
||||
package com.x8bit.bitwarden.ui.vault.feature.movetoorganization.util
|
||||
|
||||
import com.bitwarden.data.repository.model.Environment
|
||||
import com.bitwarden.network.model.OrganizationType
|
||||
import com.bitwarden.ui.platform.resource.BitwardenString
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.data.auth.datasource.disk.model.OnboardingStatus
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.Organization
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.UserState
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.createMockOrganization
|
||||
import com.x8bit.bitwarden.data.platform.manager.model.FirstTimeState
|
||||
import com.x8bit.bitwarden.data.vault.datasource.sdk.model.createMockCipherView
|
||||
import com.x8bit.bitwarden.data.vault.datasource.sdk.model.createMockCollectionView
|
||||
@ -102,32 +101,23 @@ private fun createMockUserState(hasOrganizations: Boolean = true): UserState =
|
||||
needsMasterPassword = false,
|
||||
organizations = if (hasOrganizations) {
|
||||
listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "mockOrganizationId-1",
|
||||
name = "mockOrganizationName-1",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "mockOrganizationId-2",
|
||||
name = "mockOrganizationName-2",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "mockOrganizationId-3",
|
||||
name = "mockOrganizationName-3",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
)
|
||||
} else {
|
||||
|
||||
@ -7,7 +7,6 @@ import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.bitwarden.data.datasource.disk.model.FlightRecorderDataSet
|
||||
import com.bitwarden.data.repository.model.Environment
|
||||
import com.bitwarden.data.repository.util.baseIconUrl
|
||||
import com.bitwarden.network.model.OrganizationType
|
||||
import com.bitwarden.network.model.PolicyTypeJson
|
||||
import com.bitwarden.network.model.SyncResponseJson
|
||||
import com.bitwarden.network.model.createMockPolicy
|
||||
@ -23,11 +22,11 @@ import com.bitwarden.vault.CipherType
|
||||
import com.x8bit.bitwarden.data.auth.datasource.disk.model.OnboardingStatus
|
||||
import com.x8bit.bitwarden.data.auth.repository.AuthRepository
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.LogoutReason
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.Organization
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.SwitchAccountResult
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.UpdateKdfMinimumsResult
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.UserState
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.ValidatePasswordResult
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.createMockOrganization
|
||||
import com.x8bit.bitwarden.data.autofill.manager.browser.BrowserAutofillDialogManager
|
||||
import com.x8bit.bitwarden.data.platform.manager.CredentialExchangeRegistryManager
|
||||
import com.x8bit.bitwarden.data.platform.manager.FeatureFlagManager
|
||||
@ -340,14 +339,11 @@ class VaultViewModelTest : BaseViewModelTest() {
|
||||
isBiometricsEnabled = false,
|
||||
needsMasterPassword = false,
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "organiationId",
|
||||
name = "Test Organization",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
trustedDevice = null,
|
||||
@ -429,14 +425,11 @@ class VaultViewModelTest : BaseViewModelTest() {
|
||||
isBiometricsEnabled = false,
|
||||
needsMasterPassword = false,
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "organizationId",
|
||||
name = "Test Organization",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
trustedDevice = null,
|
||||
@ -960,14 +953,11 @@ class VaultViewModelTest : BaseViewModelTest() {
|
||||
accounts = listOf(
|
||||
DEFAULT_USER_STATE.accounts[0].copy(
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "testOrganizationId",
|
||||
name = "Test Organization",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
@ -2,11 +2,10 @@ package com.x8bit.bitwarden.ui.vault.feature.vault.util
|
||||
|
||||
import com.bitwarden.data.datasource.disk.model.EnvironmentUrlDataJson
|
||||
import com.bitwarden.data.repository.model.Environment
|
||||
import com.bitwarden.network.model.OrganizationType
|
||||
import com.bitwarden.ui.platform.components.account.model.AccountSummary
|
||||
import com.x8bit.bitwarden.data.auth.datasource.disk.model.OnboardingStatus
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.Organization
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.UserState
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.createMockOrganization
|
||||
import com.x8bit.bitwarden.data.platform.manager.model.FirstTimeState
|
||||
import com.x8bit.bitwarden.ui.vault.feature.vault.model.VaultFilterData
|
||||
import com.x8bit.bitwarden.ui.vault.feature.vault.model.VaultFilterType
|
||||
@ -76,14 +75,11 @@ class UserStateExtensionsTest {
|
||||
isBiometricsEnabled = false,
|
||||
needsMasterPassword = false,
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "organizationId",
|
||||
name = "organizationName",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
trustedDevice = null,
|
||||
@ -106,14 +102,11 @@ class UserStateExtensionsTest {
|
||||
isBiometricsEnabled = false,
|
||||
needsMasterPassword = false,
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "organizationId",
|
||||
name = "organizationName",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
trustedDevice = null,
|
||||
@ -140,14 +133,11 @@ class UserStateExtensionsTest {
|
||||
isBiometricsEnabled = false,
|
||||
needsMasterPassword = false,
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "organizationId",
|
||||
name = "organizationName",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
trustedDevice = null,
|
||||
@ -174,14 +164,11 @@ class UserStateExtensionsTest {
|
||||
isBiometricsEnabled = false,
|
||||
needsMasterPassword = false,
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "organizationId",
|
||||
name = "organizationName",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
trustedDevice = null,
|
||||
@ -223,14 +210,11 @@ class UserStateExtensionsTest {
|
||||
isBiometricsEnabled = false,
|
||||
needsMasterPassword = false,
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "organizationId",
|
||||
name = "organizationName",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
trustedDevice = null,
|
||||
@ -270,14 +254,11 @@ class UserStateExtensionsTest {
|
||||
isBiometricsEnabled = false,
|
||||
needsMasterPassword = false,
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "organizationId",
|
||||
name = "organizationName",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
trustedDevice = null,
|
||||
@ -321,14 +302,11 @@ class UserStateExtensionsTest {
|
||||
isBiometricsEnabled = false,
|
||||
needsMasterPassword = false,
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "organizationId",
|
||||
name = "organizationName",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
trustedDevice = null,
|
||||
@ -403,23 +381,17 @@ class UserStateExtensionsTest {
|
||||
isBiometricsEnabled = false,
|
||||
needsMasterPassword = false,
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "organizationId-B",
|
||||
name = "Organization B",
|
||||
shouldUseKeyConnector = false,
|
||||
shouldManageResetPassword = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "organizationId-A",
|
||||
name = "Organization A",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
trustedDevice = null,
|
||||
@ -466,23 +438,17 @@ class UserStateExtensionsTest {
|
||||
isBiometricsEnabled = false,
|
||||
needsMasterPassword = false,
|
||||
organizations = listOf(
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "organizationId-B",
|
||||
name = "Organization B",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
Organization(
|
||||
createMockOrganization(
|
||||
number = 1,
|
||||
id = "organizationId-A",
|
||||
name = "Organization A",
|
||||
shouldManageResetPassword = false,
|
||||
shouldUseKeyConnector = false,
|
||||
role = OrganizationType.ADMIN,
|
||||
keyConnectorUrl = null,
|
||||
userIsClaimedByOrganization = false,
|
||||
),
|
||||
),
|
||||
trustedDevice = null,
|
||||
|
||||
@ -10,7 +10,7 @@ import java.time.ZonedDateTime
|
||||
fun createMockProfile(
|
||||
number: Int,
|
||||
providerOrganizations: List<SyncResponseJson.Profile.Organization>? = listOf(
|
||||
createMockOrganization(number = number),
|
||||
createMockOrganizationNetwork(number = number),
|
||||
),
|
||||
isPremiumFromOrganization: Boolean = false,
|
||||
shouldForcePasswordReset: Boolean = false,
|
||||
@ -23,7 +23,7 @@ fun createMockProfile(
|
||||
culture: String? = "mockCulture-$number",
|
||||
name: String? = "mockName-$number",
|
||||
organizations: List<SyncResponseJson.Profile.Organization>? = listOf(
|
||||
createMockOrganization(number = number),
|
||||
createMockOrganizationNetwork(number = number),
|
||||
),
|
||||
shouldUseKeyConnector: Boolean = false,
|
||||
id: String = "mockId-$number",
|
||||
@ -62,7 +62,7 @@ fun createMockProfile(
|
||||
/**
|
||||
* Create a mock [SyncResponseJson.Profile.Organization] with a given [number].
|
||||
*/
|
||||
fun createMockOrganization(
|
||||
fun createMockOrganizationNetwork(
|
||||
number: Int,
|
||||
shouldUsePolicies: Boolean = false,
|
||||
shouldUseKeyConnector: Boolean = false,
|
||||
@ -137,7 +137,9 @@ fun createMockOrganization(
|
||||
*/
|
||||
fun createMockOrganizationKeys(
|
||||
number: Int,
|
||||
organization: SyncResponseJson.Profile.Organization = createMockOrganization(number = number),
|
||||
organization: SyncResponseJson.Profile.Organization = createMockOrganizationNetwork(
|
||||
number = number,
|
||||
),
|
||||
): Map<String, String> =
|
||||
mapOf(organization.id to requireNotNull(organization.key))
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user