From f69e3846e379eb3863afc317716692befaa971e0 Mon Sep 17 00:00:00 2001 From: 0x330a <92654767+0x330a@users.noreply.github.com> Date: Wed, 18 Oct 2023 16:18:25 +1100 Subject: [PATCH] feat: increase testing for new group config types --- .../libsession_util/InstrumentedTests.kt | 30 +++++++++++++++++-- libsession-util/src/main/cpp/group_info.cpp | 1 + .../session/libsignal/utilities/SessionId.kt | 3 ++ 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/libsession-util/src/androidTest/java/network/loki/messenger/libsession_util/InstrumentedTests.kt b/libsession-util/src/androidTest/java/network/loki/messenger/libsession_util/InstrumentedTests.kt index ec04d71107..f4e2672791 100644 --- a/libsession-util/src/androidTest/java/network/loki/messenger/libsession_util/InstrumentedTests.kt +++ b/libsession-util/src/androidTest/java/network/loki/messenger/libsession_util/InstrumentedTests.kt @@ -4,6 +4,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.platform.app.InstrumentationRegistry import network.loki.messenger.libsession_util.util.* import org.hamcrest.CoreMatchers.equalTo +import org.hamcrest.CoreMatchers.hasItem import org.hamcrest.CoreMatchers.not import org.hamcrest.CoreMatchers.notNullValue import org.hamcrest.MatcherAssert.assertThat @@ -272,7 +273,8 @@ class InstrumentedTests { val newConf = UserProfile.newInstance(edSk) val accepted = newConf.merge("fakehash1" to newToPush) - assertEquals(1, accepted) + assertThat(accepted, hasItem("fakehash1")) + assertThat(accepted.size, equalTo(1)) assertTrue(newConf.needsDump()) assertFalse(newConf.needsPush()) @@ -664,7 +666,16 @@ class InstrumentedTests { val groupConfig = UserGroupsConfig.newInstance(userSecret) val group = groupConfig.createGroup() groupConfig.set(group) - val groupMembersConfig = GroupMembersConfig.newInstance() + val groupMembersConfig = GroupMembersConfig.newInstance( + group.groupSessionId.pubKeyBytes, + group.signingKey() + ) + val toAdd = GroupMember(userSessionId.hexString(), "user", admin = true) + groupMembersConfig.set( + toAdd + ) + assertThat(groupMembersConfig.all().size, equalTo(1)) + assertThat(groupMembersConfig.all(), hasItem(toAdd)) } @Test @@ -674,8 +685,21 @@ class InstrumentedTests { val group = groupConfig.createGroup() groupConfig.set(group) val allClosedGroups = groupConfig.all() - assertThat(allClosedGroups, equalTo(1)) + assertThat(allClosedGroups.size, equalTo(1)) assertTrue(groupConfig.needsPush()) } + @Test + fun testNewGroupInfo() { + val (_, userSecret) = keyPair + val groupConfig = UserGroupsConfig.newInstance(userSecret) + val group = groupConfig.createGroup() + groupConfig.set(group) + val groupInfo = GroupInfoConfig.newInstance(group.groupSessionId.pubKeyBytes, group.signingKey()) + groupInfo.setName("Test Group") + groupInfo.setDescription("This is a test group") + assertThat(groupInfo.getName(), equalTo("Test Group")) + assertThat(groupInfo.getDescription(), equalTo("This is a test group")) + } + } \ No newline at end of file diff --git a/libsession-util/src/main/cpp/group_info.cpp b/libsession-util/src/main/cpp/group_info.cpp index 3ff3eb29ab..bd4002111a 100644 --- a/libsession-util/src/main/cpp/group_info.cpp +++ b/libsession-util/src/main/cpp/group_info.cpp @@ -192,6 +192,7 @@ Java_network_loki_messenger_libsession_1util_GroupInfoConfig_getDescription(JNIE jobject thiz) { std::lock_guard guard{util::util_mutex_}; auto group_info = ptrToInfo(env, thiz); + return nullptr; } extern "C" diff --git a/libsignal/src/main/java/org/session/libsignal/utilities/SessionId.kt b/libsignal/src/main/java/org/session/libsignal/utilities/SessionId.kt index b98bce3f3b..9870c713bc 100644 --- a/libsignal/src/main/java/org/session/libsignal/utilities/SessionId.kt +++ b/libsignal/src/main/java/org/session/libsignal/utilities/SessionId.kt @@ -10,15 +10,18 @@ class SessionId { var prefix: IdPrefix? var publicKey: String + var pubKeyBytes: ByteArray constructor(id: String) { prefix = IdPrefix.fromValue(id) publicKey = id.drop(2) + pubKeyBytes = Hex.fromStringCondensed(publicKey) } constructor(prefix: IdPrefix, publicKey: ByteArray) { this.prefix = prefix this.publicKey = publicKey.toHexString() + this.pubKeyBytes = publicKey } fun hexString() = prefix?.value + publicKey