When creating a DM, set room history visibility to invited (#6138)
This commit is contained in:
committed by
GitHub
parent
2737d714d9
commit
22e60bf3c6
@@ -39,6 +39,7 @@ import io.element.android.libraries.matrix.api.room.RoomInfo
|
||||
import io.element.android.libraries.matrix.api.room.RoomMember
|
||||
import io.element.android.libraries.matrix.api.room.RoomMembershipObserver
|
||||
import io.element.android.libraries.matrix.api.room.alias.ResolvedRoomAlias
|
||||
import io.element.android.libraries.matrix.api.room.history.RoomHistoryVisibility
|
||||
import io.element.android.libraries.matrix.api.room.join.JoinRule
|
||||
import io.element.android.libraries.matrix.api.roomdirectory.RoomVisibility
|
||||
import io.element.android.libraries.matrix.api.roomlist.RoomListService
|
||||
@@ -416,6 +417,7 @@ class RustMatrixClient(
|
||||
isDirect = true,
|
||||
visibility = RoomVisibility.Private,
|
||||
preset = RoomPreset.TRUSTED_PRIVATE_CHAT,
|
||||
historyVisibilityOverride = RoomHistoryVisibility.Invited,
|
||||
invite = listOf(userId),
|
||||
)
|
||||
return createRoom(createRoomParams)
|
||||
|
||||
@@ -18,6 +18,7 @@ import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiSyncServic
|
||||
import io.element.android.libraries.matrix.impl.room.FakeTimelineEventTypeFilterFactory
|
||||
import io.element.android.libraries.matrix.test.AN_AVATAR_URL
|
||||
import io.element.android.libraries.matrix.test.A_DEVICE_ID
|
||||
import io.element.android.libraries.matrix.test.A_ROOM_ID
|
||||
import io.element.android.libraries.matrix.test.A_USER_ID
|
||||
import io.element.android.libraries.matrix.test.A_USER_NAME
|
||||
import io.element.android.libraries.sessionstorage.api.SessionStore
|
||||
@@ -35,6 +36,8 @@ import kotlinx.coroutines.test.advanceUntilIdle
|
||||
import kotlinx.coroutines.test.runTest
|
||||
import org.junit.Test
|
||||
import org.matrix.rustcomponents.sdk.Client
|
||||
import org.matrix.rustcomponents.sdk.CreateRoomParameters
|
||||
import org.matrix.rustcomponents.sdk.RoomHistoryVisibility
|
||||
import org.matrix.rustcomponents.sdk.StoreSizes
|
||||
import org.matrix.rustcomponents.sdk.UserProfile
|
||||
import java.io.File
|
||||
@@ -114,6 +117,23 @@ class RustMatrixClientTest {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `createDM overrides room history visibility to invited`() = runTest {
|
||||
var createParameters: CreateRoomParameters? = null
|
||||
val createRoomLambda = lambdaRecorder<CreateRoomParameters, String> {
|
||||
createParameters = it
|
||||
A_ROOM_ID.value
|
||||
}
|
||||
val client = createRustMatrixClient(
|
||||
client = FakeFfiClient(createRoomResult = createRoomLambda)
|
||||
)
|
||||
|
||||
client.createDM(A_USER_ID)
|
||||
|
||||
createRoomLambda.assertions().isCalledOnce()
|
||||
assertThat(createParameters?.historyVisibilityOverride).isEqualTo(RoomHistoryVisibility.Invited)
|
||||
}
|
||||
|
||||
private fun TestScope.createRustMatrixClient(
|
||||
client: Client = FakeFfiClient(),
|
||||
sessionStore: SessionStore = InMemorySessionStore(
|
||||
|
||||
@@ -15,6 +15,7 @@ import io.element.android.tests.testutils.lambda.lambdaError
|
||||
import io.element.android.tests.testutils.simulateLongTask
|
||||
import org.matrix.rustcomponents.sdk.Client
|
||||
import org.matrix.rustcomponents.sdk.ClientDelegate
|
||||
import org.matrix.rustcomponents.sdk.CreateRoomParameters
|
||||
import org.matrix.rustcomponents.sdk.Encryption
|
||||
import org.matrix.rustcomponents.sdk.HomeserverLoginDetails
|
||||
import org.matrix.rustcomponents.sdk.IgnoredUsersListener
|
||||
@@ -48,6 +49,7 @@ class FakeFfiClient(
|
||||
private val getProfileResult: (String) -> UserProfile = { UserProfile(userId = userId, displayName = null, avatarUrl = null) },
|
||||
private val homeserverLoginDetailsResult: () -> HomeserverLoginDetails = { lambdaError() },
|
||||
private val getStoreSizesResult: () -> StoreSizes = { lambdaError() },
|
||||
private val createRoomResult: (CreateRoomParameters) -> String = { lambdaError() },
|
||||
private val closeResult: () -> Unit = {},
|
||||
) : Client(NoHandle) {
|
||||
override fun userId(): String = userId
|
||||
@@ -97,5 +99,9 @@ class FakeFfiClient(
|
||||
return getStoreSizesResult()
|
||||
}
|
||||
|
||||
override suspend fun createRoom(request: CreateRoomParameters): String {
|
||||
return createRoomResult(request)
|
||||
}
|
||||
|
||||
override fun close() = closeResult()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user