Add ability to reject group invite by PNI.

This commit is contained in:
Cody Henthorne
2022-04-25 12:37:25 -04:00
parent e22560a794
commit 657a9c7b0a
41 changed files with 626 additions and 325 deletions

View File

@@ -39,6 +39,7 @@ import org.whispersystems.signalservice.api.groupsv2.ClientZkOperations
import org.whispersystems.signalservice.api.groupsv2.GroupsV2Api
import org.whispersystems.signalservice.api.groupsv2.GroupsV2Operations
import org.whispersystems.signalservice.api.push.ACI
import org.whispersystems.signalservice.api.push.PNI
import org.whispersystems.signalservice.api.push.ServiceId
import java.util.UUID
@@ -53,6 +54,7 @@ class GroupManagerV2Test_edit {
val groupId: GroupId.V2 = GroupId.v2(masterKey)
val selfAci: ACI = ACI.from(UUID.randomUUID())
val selfPni: PNI = PNI.from(UUID.randomUUID())
val otherSid: ServiceId = ServiceId.from(UUID.randomUUID())
val selfAndOthers: List<DecryptedMember> = listOf(member(selfAci), member(otherSid))
val others: List<DecryptedMember> = listOf(member(otherSid))
@@ -102,6 +104,7 @@ class GroupManagerV2Test_edit {
groupsV2Authorization,
groupsV2StateProcessor,
selfAci,
selfPni,
groupCandidateHelper,
sendGroupUpdateHelper
)
@@ -114,7 +117,7 @@ class GroupManagerV2Test_edit {
Mockito.doReturn(data.groupRecord).`when`(groupDatabase).getGroup(groupId)
Mockito.doReturn(data.groupRecord.get()).`when`(groupDatabase).requireGroup(groupId)
Mockito.doReturn(GroupManagerV2.RecipientAndThread(Recipient.UNKNOWN, 1)).`when`(sendGroupUpdateHelper).sendGroupUpdate(Mockito.eq(masterKey), Mockito.any(), Mockito.any())
Mockito.doReturn(GroupManagerV2.RecipientAndThread(Recipient.UNKNOWN, 1)).`when`(sendGroupUpdateHelper).sendGroupUpdate(Mockito.eq(masterKey), Mockito.any(), Mockito.any(), Mockito.anyBoolean())
Mockito.doReturn(data.groupChange!!).`when`(groupsV2API).patchGroup(Mockito.any(), Mockito.any(), Mockito.any())
}
@@ -136,7 +139,8 @@ class GroupManagerV2Test_edit {
members = listOf(
member(selfAci, role = Member.Role.ADMINISTRATOR),
member(otherSid)
)
),
serviceId = selfAci.toString()
)
groupChange(6) {
source(selfAci)

View File

@@ -51,11 +51,11 @@ import java.util.UUID
class GroupsV2StateProcessorTest {
companion object {
val masterKey = GroupMasterKey(fromStringCondensed("0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"))
val selfAci: ACI = ACI.from(UUID.randomUUID())
val otherSid: ServiceId = ServiceId.from(UUID.randomUUID())
val selfAndOthers: List<DecryptedMember> = listOf(member(selfAci), member(otherSid))
val others: List<DecryptedMember> = listOf(member(otherSid))
private val masterKey = GroupMasterKey(fromStringCondensed("0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"))
private val selfAci: ACI = ACI.from(UUID.randomUUID())
private val otherSid: ServiceId = ServiceId.from(UUID.randomUUID())
private val selfAndOthers: List<DecryptedMember> = listOf(member(selfAci), member(otherSid))
private val others: List<DecryptedMember> = listOf(member(otherSid))
}
private lateinit var groupDatabase: GroupDatabase
@@ -89,8 +89,7 @@ class GroupsV2StateProcessorTest {
}
private fun given(init: GroupStateTestData.() -> Unit) {
val data = GroupStateTestData(masterKey)
data.init()
val data = givenData(init)
doReturn(data.groupRecord).`when`(groupDatabase).getGroup(any(GroupId.V2::class.java))
doReturn(!data.groupRecord.isPresent).`when`(groupDatabase).isUnknownGroup(any())
@@ -109,6 +108,12 @@ class GroupsV2StateProcessorTest {
}
}
private fun givenData(init: GroupStateTestData.() -> Unit): GroupStateTestData {
val data = GroupStateTestData(masterKey)
data.init()
return data
}
@Test
fun `when local revision matches server revision, then return consistent or ahead`() {
given {