Skip to content
Snippets Groups Projects
Verified Commit ed95312c authored by Mikolai Gütschow's avatar Mikolai Gütschow
Browse files

test introductions with three accounts

parent 7ac9672e
No related branches found
No related tags found
1 merge request!69Introduction support
...@@ -281,6 +281,9 @@ constructor( ...@@ -281,6 +281,9 @@ constructor(
else -> else ->
throw IllegalArgumentException("Only introduction requests are supported for the time being.") throw IllegalArgumentException("Only introduction requests are supported for the time being.")
} }
// reload all messages to also show request response message
// todo: might be better to have an event to react to, also for (all) outgoing messages
loadMessages(txn, contactItem.value!!)
} }
} }
} }
...@@ -5,11 +5,13 @@ import org.briarproject.bramble.BrambleCoreEagerSingletons ...@@ -5,11 +5,13 @@ import org.briarproject.bramble.BrambleCoreEagerSingletons
import org.briarproject.bramble.BrambleCoreModule import org.briarproject.bramble.BrambleCoreModule
import org.briarproject.bramble.api.account.AccountManager import org.briarproject.bramble.api.account.AccountManager
import org.briarproject.bramble.api.contact.ContactManager import org.briarproject.bramble.api.contact.ContactManager
import org.briarproject.bramble.api.event.EventBus
import org.briarproject.bramble.api.identity.IdentityManager import org.briarproject.bramble.api.identity.IdentityManager
import org.briarproject.bramble.api.lifecycle.LifecycleManager import org.briarproject.bramble.api.lifecycle.LifecycleManager
import org.briarproject.bramble.api.lifecycle.ShutdownManager import org.briarproject.bramble.api.lifecycle.ShutdownManager
import org.briarproject.briar.BriarCoreEagerSingletons import org.briarproject.briar.BriarCoreEagerSingletons
import org.briarproject.briar.BriarCoreModule import org.briarproject.briar.BriarCoreModule
import org.briarproject.briar.api.introduction.IntroductionManager
import org.briarproject.briar.api.test.TestDataCreator import org.briarproject.briar.api.test.TestDataCreator
import org.briarproject.briar.desktop.testdata.DeterministicTestDataCreator import org.briarproject.briar.desktop.testdata.DeterministicTestDataCreator
import org.briarproject.briar.desktop.ui.BriarUi import org.briarproject.briar.desktop.ui.BriarUi
...@@ -28,8 +30,12 @@ internal interface BriarDesktopTestApp : BrambleCoreEagerSingletons, BriarCoreEa ...@@ -28,8 +30,12 @@ internal interface BriarDesktopTestApp : BrambleCoreEagerSingletons, BriarCoreEa
fun getBriarUi(): BriarUi fun getBriarUi(): BriarUi
fun getEventBus(): EventBus
fun getIdentityManager(): IdentityManager fun getIdentityManager(): IdentityManager
fun getIntroductionManager(): IntroductionManager
fun getContactManager(): ContactManager fun getContactManager(): ContactManager
fun getSecureRandom(): SecureRandom fun getSecureRandom(): SecureRandom
......
...@@ -23,13 +23,17 @@ object TestUtils { ...@@ -23,13 +23,17 @@ object TestUtils {
forEachIndexed { i, app1 -> forEachIndexed { i, app1 ->
forEachIndexed inner@{ k, app2 -> forEachIndexed inner@{ k, app2 ->
if (i >= k) return@inner if (i >= k) return@inner
val cm1 = app1.getContactManager() connectApps(app1, app2)
val cm2 = app2.getContactManager()
val name1 = app1.getIdentityManager().localAuthor.name
val name2 = app2.getIdentityManager().localAuthor.name
cm1.addPendingContact(cm2.handshakeLink, name2)
cm2.addPendingContact(cm1.handshakeLink, name1)
} }
} }
} }
internal fun connectApps(app1: BriarDesktopTestApp, app2: BriarDesktopTestApp) {
val cm1 = app1.getContactManager()
val cm2 = app2.getContactManager()
val name1 = app1.getIdentityManager().localAuthor.name
val name2 = app2.getIdentityManager().localAuthor.name
cm1.addPendingContact(cm2.handshakeLink, name2)
cm2.addPendingContact(cm1.handshakeLink, name1)
}
} }
package org.briarproject.briar.desktop
import org.briarproject.bramble.api.contact.Contact
import org.briarproject.bramble.api.contact.event.ContactAddedEvent
import org.briarproject.briar.desktop.TestUtils.connectApps
fun main() = RunWithMultipleTemporaryAccounts(listOf("alice", "bob", "eve")) {
val alice = this[0]
val bob = this[1]
val eve = this[2]
listOf(bob, eve).forEach {
it.getDeterministicTestDataCreator().createTestData(1, 2, 0, 0, 0)
connectApps(alice, it)
}
// alice introduces eve to bob
alice.run {
var eve: Contact? = null
var bob: Contact? = null
getEventBus().addListener {
when (it) {
is ContactAddedEvent -> {
val contact = getContactManager().getContact(it.contactId)
when (contact.author.name) {
"eve" -> eve = contact
"bob" -> bob = contact
}
if (eve != null && bob != null) {
getIntroductionManager().makeIntroduction(eve!!, bob!!, "Eve and Bob")
}
}
}
}
}
}.run()
...@@ -82,8 +82,7 @@ class DeterministicTestDataCreatorImpl @Inject internal constructor( ...@@ -82,8 +82,7 @@ class DeterministicTestDataCreatorImpl @Inject internal constructor(
numPrivateGroups: Int, numPrivateGroups: Int,
numPrivateGroupPosts: Int, numPrivateGroupPosts: Int,
) { ) {
require(numContacts != 0) require(numContacts != 0 || numPrivateGroups != 0)
require(numPrivateGroups != 0)
require(!(avatarPercent < 0 || avatarPercent > 100)) require(!(avatarPercent < 0 || avatarPercent > 100))
ioExecutor.execute { ioExecutor.execute {
try { try {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment