When creating a DM, set room history visibility to invited (#6138)
This commit is contained in:
parent
2737d714d9
commit
22e60bf3c6
3 changed files with 28 additions and 0 deletions
|
|
@ -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.RoomMember
|
||||||
import io.element.android.libraries.matrix.api.room.RoomMembershipObserver
|
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.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.room.join.JoinRule
|
||||||
import io.element.android.libraries.matrix.api.roomdirectory.RoomVisibility
|
import io.element.android.libraries.matrix.api.roomdirectory.RoomVisibility
|
||||||
import io.element.android.libraries.matrix.api.roomlist.RoomListService
|
import io.element.android.libraries.matrix.api.roomlist.RoomListService
|
||||||
|
|
@ -416,6 +417,7 @@ class RustMatrixClient(
|
||||||
isDirect = true,
|
isDirect = true,
|
||||||
visibility = RoomVisibility.Private,
|
visibility = RoomVisibility.Private,
|
||||||
preset = RoomPreset.TRUSTED_PRIVATE_CHAT,
|
preset = RoomPreset.TRUSTED_PRIVATE_CHAT,
|
||||||
|
historyVisibilityOverride = RoomHistoryVisibility.Invited,
|
||||||
invite = listOf(userId),
|
invite = listOf(userId),
|
||||||
)
|
)
|
||||||
return createRoom(createRoomParams)
|
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.impl.room.FakeTimelineEventTypeFilterFactory
|
||||||
import io.element.android.libraries.matrix.test.AN_AVATAR_URL
|
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_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_ID
|
||||||
import io.element.android.libraries.matrix.test.A_USER_NAME
|
import io.element.android.libraries.matrix.test.A_USER_NAME
|
||||||
import io.element.android.libraries.sessionstorage.api.SessionStore
|
import io.element.android.libraries.sessionstorage.api.SessionStore
|
||||||
|
|
@ -35,6 +36,8 @@ import kotlinx.coroutines.test.advanceUntilIdle
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.matrix.rustcomponents.sdk.Client
|
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.StoreSizes
|
||||||
import org.matrix.rustcomponents.sdk.UserProfile
|
import org.matrix.rustcomponents.sdk.UserProfile
|
||||||
import java.io.File
|
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(
|
private fun TestScope.createRustMatrixClient(
|
||||||
client: Client = FakeFfiClient(),
|
client: Client = FakeFfiClient(),
|
||||||
sessionStore: SessionStore = InMemorySessionStore(
|
sessionStore: SessionStore = InMemorySessionStore(
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@ import io.element.android.tests.testutils.lambda.lambdaError
|
||||||
import io.element.android.tests.testutils.simulateLongTask
|
import io.element.android.tests.testutils.simulateLongTask
|
||||||
import org.matrix.rustcomponents.sdk.Client
|
import org.matrix.rustcomponents.sdk.Client
|
||||||
import org.matrix.rustcomponents.sdk.ClientDelegate
|
import org.matrix.rustcomponents.sdk.ClientDelegate
|
||||||
|
import org.matrix.rustcomponents.sdk.CreateRoomParameters
|
||||||
import org.matrix.rustcomponents.sdk.Encryption
|
import org.matrix.rustcomponents.sdk.Encryption
|
||||||
import org.matrix.rustcomponents.sdk.HomeserverLoginDetails
|
import org.matrix.rustcomponents.sdk.HomeserverLoginDetails
|
||||||
import org.matrix.rustcomponents.sdk.IgnoredUsersListener
|
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 getProfileResult: (String) -> UserProfile = { UserProfile(userId = userId, displayName = null, avatarUrl = null) },
|
||||||
private val homeserverLoginDetailsResult: () -> HomeserverLoginDetails = { lambdaError() },
|
private val homeserverLoginDetailsResult: () -> HomeserverLoginDetails = { lambdaError() },
|
||||||
private val getStoreSizesResult: () -> StoreSizes = { lambdaError() },
|
private val getStoreSizesResult: () -> StoreSizes = { lambdaError() },
|
||||||
|
private val createRoomResult: (CreateRoomParameters) -> String = { lambdaError() },
|
||||||
private val closeResult: () -> Unit = {},
|
private val closeResult: () -> Unit = {},
|
||||||
) : Client(NoHandle) {
|
) : Client(NoHandle) {
|
||||||
override fun userId(): String = userId
|
override fun userId(): String = userId
|
||||||
|
|
@ -97,5 +99,9 @@ class FakeFfiClient(
|
||||||
return getStoreSizesResult()
|
return getStoreSizesResult()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override suspend fun createRoom(request: CreateRoomParameters): String {
|
||||||
|
return createRoomResult(request)
|
||||||
|
}
|
||||||
|
|
||||||
override fun close() = closeResult()
|
override fun close() = closeResult()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue