mirror of
https://github.com/oxen-io/session-android.git
synced 2025-02-17 13:38:26 +00:00
feat: add more testing functionality for the expected current / updated expiry configuration upon merging libsession updates
This commit is contained in:
parent
f6a736bd13
commit
acb1181db0
@ -11,16 +11,19 @@ import network.loki.messenger.libsession_util.ConversationVolatileConfig
|
||||
import network.loki.messenger.libsession_util.util.Contact
|
||||
import network.loki.messenger.libsession_util.util.Conversation
|
||||
import network.loki.messenger.libsession_util.util.ExpiryMode
|
||||
import org.hamcrest.CoreMatchers.equalTo
|
||||
import org.hamcrest.CoreMatchers.instanceOf
|
||||
import org.hamcrest.MatcherAssert.assertThat
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.mockito.kotlin.any
|
||||
import org.mockito.kotlin.argThat
|
||||
import org.mockito.kotlin.argWhere
|
||||
import org.mockito.kotlin.eq
|
||||
import org.mockito.kotlin.spy
|
||||
import org.mockito.kotlin.verify
|
||||
import org.session.libsession.messaging.MessagingModuleConfiguration
|
||||
import org.session.libsession.messaging.messages.ExpirationConfiguration
|
||||
import org.session.libsession.snode.SnodeAPI
|
||||
import org.session.libsession.utilities.Address
|
||||
import org.session.libsession.utilities.TextSecurePreferences
|
||||
@ -110,7 +113,7 @@ class LibSessionTests {
|
||||
fakePollNewConfig(contacts, newContactMerge)
|
||||
verify(storageSpy).addLibSessionContacts(argThat {
|
||||
first().let { it.id == newContactId && it.approved } && size == 1
|
||||
}, 0)
|
||||
}, any())
|
||||
verify(storageSpy).setRecipientApproved(argThat { address.serialize() == newContactId }, eq(true))
|
||||
}
|
||||
|
||||
@ -135,17 +138,58 @@ class LibSessionTests {
|
||||
val contacts = MessagingModuleConfiguration.shared.configFactory.contacts!!
|
||||
val newContactMerge = buildContactMessage(listOf(newContact))
|
||||
val newVolatileMerge = buildVolatileMessage(listOf(newConvo))
|
||||
val expConfig = ExpirationConfiguration()
|
||||
val recipientAddress = Address.fromSerialized(randomRecipient)
|
||||
fakePollNewConfig(contacts, newContactMerge)
|
||||
fakePollNewConfig(volatiles, newVolatileMerge)
|
||||
val threadId = storageSpy.getThreadId(recipientAddress)!!
|
||||
// whenever(storageSpy.getExpirationConfiguration(eq(threadId))).thenReturn(expConfig)
|
||||
// doNothing().whenever(storageSpy).setExpirationConfiguration(any())
|
||||
// verify(storageSpy).getExpirationConfiguration(eq(threadId))
|
||||
verify(storageSpy).setExpirationConfiguration(argWhere { config ->
|
||||
config.expiryMode is ExpiryMode.AfterSend
|
||||
&& config.expiryMode.expirySeconds == 1000L
|
||||
})
|
||||
val threadId = storageSpy.getThreadId(Address.fromSerialized(randomRecipient))!!
|
||||
val newExpiry = storageSpy.getExpirationConfiguration(threadId)!!
|
||||
assertThat(newExpiry.expiryMode, instanceOf(ExpiryMode.AfterSend::class.java))
|
||||
assertThat(newExpiry.expiryMode.expirySeconds, equalTo(1000))
|
||||
assertThat(newExpiry.expiryMode.expiryMillis, equalTo(1000000))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun test_overwrite_config() {
|
||||
val app = InstrumentationRegistry.getInstrumentation().targetContext.applicationContext as ApplicationContext
|
||||
val storageSpy = spy(app.storage)
|
||||
app.storage = storageSpy
|
||||
|
||||
// Initial state
|
||||
val randomRecipient = randomSessionId()
|
||||
val currentContact = Contact(
|
||||
id = randomRecipient,
|
||||
approved = true,
|
||||
expiryMode = ExpiryMode.NONE
|
||||
)
|
||||
val newConvo = Conversation.OneToOne(
|
||||
randomRecipient,
|
||||
SnodeAPI.nowWithOffset,
|
||||
false
|
||||
)
|
||||
val volatiles = MessagingModuleConfiguration.shared.configFactory.convoVolatile!!
|
||||
val contacts = MessagingModuleConfiguration.shared.configFactory.contacts!!
|
||||
val newContactMerge = buildContactMessage(listOf(currentContact))
|
||||
val newVolatileMerge = buildVolatileMessage(listOf(newConvo))
|
||||
fakePollNewConfig(contacts, newContactMerge)
|
||||
fakePollNewConfig(volatiles, newVolatileMerge)
|
||||
verify(storageSpy).setExpirationConfiguration(argWhere { config ->
|
||||
config.expiryMode == ExpiryMode.NONE
|
||||
})
|
||||
val threadId = storageSpy.getThreadId(Address.fromSerialized(randomRecipient))!!
|
||||
val currentExpiryConfig = storageSpy.getExpirationConfiguration(threadId)!!
|
||||
assertThat(currentExpiryConfig.expiryMode, equalTo(ExpiryMode.NONE))
|
||||
assertThat(currentExpiryConfig.expiryMode.expirySeconds, equalTo(0))
|
||||
assertThat(currentExpiryConfig.expiryMode.expiryMillis, equalTo(0))
|
||||
// Set new state and overwrite
|
||||
val updatedContact = currentContact.copy(expiryMode = ExpiryMode.AfterSend(1000))
|
||||
val updateContactMerge = buildContactMessage(listOf(updatedContact))
|
||||
fakePollNewConfig(contacts, updateContactMerge)
|
||||
val updatedExpiryConfig = storageSpy.getExpirationConfiguration(threadId)!!
|
||||
assertThat(updatedExpiryConfig.expiryMode, instanceOf(ExpiryMode.AfterSend::class.java))
|
||||
assertThat(updatedExpiryConfig.expiryMode.expirySeconds, equalTo(1000))
|
||||
}
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user