Fix name collision clean up bug and flakey test.

This commit is contained in:
Cody Henthorne
2026-03-18 09:51:30 -04:00
committed by Michelle Tang
parent b62b5ea8ef
commit b4296c1e4b
2 changed files with 12 additions and 1 deletions

View File

@@ -14,6 +14,7 @@ import org.junit.Test
import org.junit.runner.RunWith
import org.signal.storageservice.storage.protos.groups.Member
import org.signal.storageservice.storage.protos.groups.local.DecryptedMember
import org.thoughtcrime.securesms.dependencies.AppDependencies
import org.thoughtcrime.securesms.mms.IncomingMessage
import org.thoughtcrime.securesms.profiles.ProfileName
import org.thoughtcrime.securesms.recipients.Recipient
@@ -53,6 +54,8 @@ class NameCollisionTablesTest {
setProfileName(bob, ProfileName.fromParts("Bob", "Android"))
setProfileName(alice, ProfileName.fromParts("Bob", "Android"))
AppDependencies.recipientCache.clear()
val actualAlice = SignalDatabase.nameCollisions.getCollisionsForThreadRecipientId(alice)
val actualBob = SignalDatabase.nameCollisions.getCollisionsForThreadRecipientId(bob)
@@ -80,6 +83,8 @@ class NameCollisionTablesTest {
setProfileName(charlie, ProfileName.fromParts("Bob", "Android"))
setProfileName(alice, ProfileName.fromParts("Alice", "Android"))
AppDependencies.recipientCache.clear()
val actualAlice = SignalDatabase.nameCollisions.getCollisionsForThreadRecipientId(alice)
val actualBob = SignalDatabase.nameCollisions.getCollisionsForThreadRecipientId(bob)
val actualCharlie = SignalDatabase.nameCollisions.getCollisionsForThreadRecipientId(charlie)
@@ -98,6 +103,8 @@ class NameCollisionTablesTest {
setProfileName(alice, ProfileName.fromParts("Alice", "Android"))
setProfileName(alice, ProfileName.fromParts("Bob", "Android"))
AppDependencies.recipientCache.clear()
val actualAlice = SignalDatabase.nameCollisions.getCollisionsForThreadRecipientId(alice)
assertThat(actualAlice).hasSize(2)
@@ -136,6 +143,8 @@ class NameCollisionTablesTest {
setProfileName(bob, ProfileName.fromParts("Bob", "Android"))
SignalDatabase.nameCollisions.markCollisionsForThreadRecipientDismissed(alice)
AppDependencies.recipientCache.clear()
val actualCollisions = SignalDatabase.nameCollisions.getCollisionsForThreadRecipientId(bob)
assertThat(actualCollisions).hasSize(2)
@@ -153,6 +162,8 @@ class NameCollisionTablesTest {
SignalDatabase.threads.getOrCreateThreadIdFor(Recipient.resolved(info.recipientId))
SignalDatabase.messages.insertProfileNameChangeMessages(alice, "Bob Android", "Alice Android")
AppDependencies.recipientCache.clear()
val collisions = SignalDatabase.nameCollisions.getCollisionsForThreadRecipientId(info.recipientId)
assertThat(collisions).hasSize(2)

View File

@@ -366,7 +366,7 @@ class NameCollisionTables(
writableDatabase
.delete(NameCollisionMembershipTable.TABLE_NAME)
.where("${NameCollisionMembershipTable.COLLISION_ID} = ?")
.where("${NameCollisionMembershipTable.COLLISION_ID} = ?", collision.id)
.run()
if (collision.members.size < 2) {