BIT-1230: Show URI once for login items (#716)

This commit is contained in:
Ramsey Smith
2024-01-22 21:16:03 -07:00
committed by Álison Fernandes
parent 150fd159c3
commit b65671bce7
5 changed files with 23 additions and 16 deletions

View File

@@ -226,7 +226,8 @@ private fun Login.toEncryptedNetworkLogin(): SyncResponseJson.Cipher.Login =
ZonedDateTime.ofInstant(it, ZoneOffset.UTC)
},
shouldAutofillOnPageLoad = autofillOnPageLoad,
uri = uris?.firstOrNull()?.uri,
// uri needs to be null to avoid duplicating the first url entry for a login item.
uri = null,
username = username,
)

View File

@@ -5,14 +5,14 @@ import java.time.ZonedDateTime
/**
* Create a mock [CipherJsonRequest] with a given [number].
*/
fun createMockCipherJsonRequest(number: Int): CipherJsonRequest =
fun createMockCipherJsonRequest(number: Int, hasNullUri: Boolean = false): CipherJsonRequest =
CipherJsonRequest(
organizationId = "mockOrganizationId-$number",
folderId = "mockFolderId-$number",
name = "mockName-$number",
notes = "mockNotes-$number",
type = CipherTypeJson.LOGIN,
login = createMockLogin(number = number),
login = createMockLogin(number = number, hasNullUri = hasNullUri),
card = createMockCard(number = number),
fields = listOf(createMockField(number = number)),
identity = createMockIdentity(number = number),

View File

@@ -5,7 +5,7 @@ import java.time.ZonedDateTime
/**
* Create a mock [SyncResponseJson.Cipher] with a given [number].
*/
fun createMockCipher(number: Int): SyncResponseJson.Cipher =
fun createMockCipher(number: Int, hasNullUri: Boolean = false): SyncResponseJson.Cipher =
SyncResponseJson.Cipher(
id = "mockId-$number",
organizationId = "mockOrganizationId-$number",
@@ -14,7 +14,7 @@ fun createMockCipher(number: Int): SyncResponseJson.Cipher =
name = "mockName-$number",
notes = "mockNotes-$number",
type = CipherTypeJson.LOGIN,
login = createMockLogin(number = number),
login = createMockLogin(number = number, hasNullUri = hasNullUri),
creationDate = ZonedDateTime.parse("2023-10-27T12:00:00Z"),
deletedDate = ZonedDateTime.parse("2023-10-27T12:00:00Z"),
revisionDate = ZonedDateTime.parse("2023-10-27T12:00:00Z"),
@@ -114,13 +114,13 @@ fun createMockField(number: Int): SyncResponseJson.Cipher.Field =
/**
* Create a mock [SyncResponseJson.Cipher.Login] with a given [number].
*/
fun createMockLogin(number: Int): SyncResponseJson.Cipher.Login =
fun createMockLogin(number: Int, hasNullUri: Boolean = false): SyncResponseJson.Cipher.Login =
SyncResponseJson.Cipher.Login(
username = "mockUsername-$number",
password = "mockPassword-$number",
passwordRevisionDate = ZonedDateTime.parse("2023-10-27T12:00:00Z"),
shouldAutofillOnPageLoad = false,
uri = "mockUri-$number",
uri = if (hasNullUri) { null } else "mockUri-$number",
uris = listOf(createMockUri(number = number)),
totp = "mockTotp-$number",
)

View File

@@ -1381,7 +1381,7 @@ class VaultRepositoryTest {
} returns createMockSdkCipher(number = 1).asSuccess()
coEvery {
ciphersService.createCipher(
body = createMockCipherJsonRequest(number = 1),
body = createMockCipherJsonRequest(number = 1, hasNullUri = true),
)
} returns IllegalStateException().asFailure()
@@ -1409,7 +1409,7 @@ class VaultRepositoryTest {
val mockCipher = createMockCipher(number = 1)
coEvery {
ciphersService.createCipher(
body = createMockCipherJsonRequest(number = 1),
body = createMockCipherJsonRequest(number = 1, hasNullUri = true),
)
} returns mockCipher.asSuccess()
coEvery { vaultDiskSource.saveCipher(userId, mockCipher) } just runs
@@ -1461,7 +1461,7 @@ class VaultRepositoryTest {
coEvery {
ciphersService.updateCipher(
cipherId = cipherId,
body = createMockCipherJsonRequest(number = 1),
body = createMockCipherJsonRequest(number = 1, hasNullUri = true),
)
} returns IllegalStateException().asFailure()
@@ -1490,7 +1490,7 @@ class VaultRepositoryTest {
coEvery {
ciphersService.updateCipher(
cipherId = cipherId,
body = createMockCipherJsonRequest(number = 1),
body = createMockCipherJsonRequest(number = 1, hasNullUri = true),
)
} returns UpdateCipherResponseJson
.Invalid(
@@ -1530,7 +1530,7 @@ class VaultRepositoryTest {
coEvery {
ciphersService.updateCipher(
cipherId = cipherId,
body = createMockCipherJsonRequest(number = 1),
body = createMockCipherJsonRequest(number = 1, hasNullUri = true),
)
} returns UpdateCipherResponseJson
.Success(cipher = mockCipher)
@@ -2085,7 +2085,7 @@ class VaultRepositoryTest {
ciphersService.shareCipher(
cipherId = "mockId-1",
body = ShareCipherJsonRequest(
cipher = createMockCipherJsonRequest(number = 1),
cipher = createMockCipherJsonRequest(number = 1, hasNullUri = true),
collectionIds = listOf("mockId-1"),
),
)
@@ -2120,7 +2120,7 @@ class VaultRepositoryTest {
ciphersService.shareCipher(
cipherId = "mockId-1",
body = ShareCipherJsonRequest(
cipher = createMockCipherJsonRequest(number = 1),
cipher = createMockCipherJsonRequest(number = 1, hasNullUri = true),
collectionIds = listOf("mockId-1"),
),
)

View File

@@ -39,7 +39,10 @@ class VaultSdkCipherExtensionsTest {
val result = sdkCipher.toEncryptedNetworkCipherResponse()
assertEquals(
createMockCipher(number = 1),
createMockCipher(
number = 1,
hasNullUri = true,
),
result,
)
}
@@ -49,7 +52,10 @@ class VaultSdkCipherExtensionsTest {
val sdkCipher = createMockSdkCipher(number = 1)
val syncCipher = sdkCipher.toEncryptedNetworkCipher()
assertEquals(
createMockCipherJsonRequest(number = 1),
createMockCipherJsonRequest(
number = 1,
hasNullUri = true,
),
syncCipher,
)
}