Merge pull request #5855 from element-hq/renovate/org.matrix.rustcomponents-sdk-android-25.x
fix(deps): update dependency org.matrix.rustcomponents:sdk-android to v25.12.4
This commit is contained in:
commit
ad366c63ec
34 changed files with 181 additions and 143 deletions
|
|
@ -177,7 +177,7 @@ test_detekt_test = { module = "io.gitlab.arturbosch.detekt:detekt-test", version
|
||||||
# https://github.com/matrix-org/matrix-rust-components-kotlin/commits/main/sdk/sdk-android/src/main/kotlin/org/matrix/rustcomponents/sdk/matrix_sdk_ffi.kt
|
# https://github.com/matrix-org/matrix-rust-components-kotlin/commits/main/sdk/sdk-android/src/main/kotlin/org/matrix/rustcomponents/sdk/matrix_sdk_ffi.kt
|
||||||
# All new features should not be implemented in the pull request that upgrades the version, developers should
|
# All new features should not be implemented in the pull request that upgrades the version, developers should
|
||||||
# only fix API breaks and may add some TODOs.
|
# only fix API breaks and may add some TODOs.
|
||||||
matrix_sdk = "org.matrix.rustcomponents:sdk-android:25.12.2"
|
matrix_sdk = "org.matrix.rustcomponents:sdk-android:25.12.4"
|
||||||
|
|
||||||
# Others
|
# Others
|
||||||
coil = { module = "io.coil-kt.coil3:coil", version.ref = "coil" }
|
coil = { module = "io.coil-kt.coil3:coil", version.ref = "coil" }
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,7 @@ import io.element.android.libraries.matrix.impl.paths.SessionPaths
|
||||||
import io.element.android.libraries.matrix.impl.paths.getSessionPaths
|
import io.element.android.libraries.matrix.impl.paths.getSessionPaths
|
||||||
import io.element.android.libraries.matrix.impl.proxy.ProxyProvider
|
import io.element.android.libraries.matrix.impl.proxy.ProxyProvider
|
||||||
import io.element.android.libraries.matrix.impl.room.TimelineEventTypeFilterFactory
|
import io.element.android.libraries.matrix.impl.room.TimelineEventTypeFilterFactory
|
||||||
|
import io.element.android.libraries.matrix.impl.storage.SqliteStoreBuilderProvider
|
||||||
import io.element.android.libraries.matrix.impl.util.anonymizedTokens
|
import io.element.android.libraries.matrix.impl.util.anonymizedTokens
|
||||||
import io.element.android.libraries.network.useragent.UserAgentProvider
|
import io.element.android.libraries.network.useragent.UserAgentProvider
|
||||||
import io.element.android.libraries.sessionstorage.api.SessionData
|
import io.element.android.libraries.sessionstorage.api.SessionData
|
||||||
|
|
@ -36,7 +37,6 @@ import org.matrix.rustcomponents.sdk.RequestConfig
|
||||||
import org.matrix.rustcomponents.sdk.Session
|
import org.matrix.rustcomponents.sdk.Session
|
||||||
import org.matrix.rustcomponents.sdk.SlidingSyncVersion
|
import org.matrix.rustcomponents.sdk.SlidingSyncVersion
|
||||||
import org.matrix.rustcomponents.sdk.SlidingSyncVersionBuilder
|
import org.matrix.rustcomponents.sdk.SlidingSyncVersionBuilder
|
||||||
import org.matrix.rustcomponents.sdk.SqliteStoreBuilder
|
|
||||||
import org.matrix.rustcomponents.sdk.use
|
import org.matrix.rustcomponents.sdk.use
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import uniffi.matrix_sdk_base.MediaRetentionPolicy
|
import uniffi.matrix_sdk_base.MediaRetentionPolicy
|
||||||
|
|
@ -62,6 +62,7 @@ class RustMatrixClientFactory(
|
||||||
private val featureFlagService: FeatureFlagService,
|
private val featureFlagService: FeatureFlagService,
|
||||||
private val timelineEventTypeFilterFactory: TimelineEventTypeFilterFactory,
|
private val timelineEventTypeFilterFactory: TimelineEventTypeFilterFactory,
|
||||||
private val clientBuilderProvider: ClientBuilderProvider,
|
private val clientBuilderProvider: ClientBuilderProvider,
|
||||||
|
private val sqliteStoreBuilderProvider: SqliteStoreBuilderProvider,
|
||||||
) {
|
) {
|
||||||
private val sessionDelegate = RustClientSessionDelegate(sessionStore, appCoroutineScope, coroutineDispatchers)
|
private val sessionDelegate = RustClientSessionDelegate(sessionStore, appCoroutineScope, coroutineDispatchers)
|
||||||
|
|
||||||
|
|
@ -126,12 +127,11 @@ class RustMatrixClientFactory(
|
||||||
slidingSyncType: ClientBuilderSlidingSync,
|
slidingSyncType: ClientBuilderSlidingSync,
|
||||||
): ClientBuilder {
|
): ClientBuilder {
|
||||||
return clientBuilderProvider.provide()
|
return clientBuilderProvider.provide()
|
||||||
.sqliteStore(
|
.run {
|
||||||
SqliteStoreBuilder(
|
sqliteStoreBuilderProvider.provide(sessionPaths)
|
||||||
dataPath = sessionPaths.fileDirectory.absolutePath,
|
.passphrase(passphrase)
|
||||||
cachePath = sessionPaths.cacheDirectory.absolutePath,
|
.setupClientBuilder(this)
|
||||||
).passphrase(passphrase)
|
}
|
||||||
)
|
|
||||||
.setSessionDelegate(sessionDelegate)
|
.setSessionDelegate(sessionDelegate)
|
||||||
.userAgent(userAgentProvider.provide())
|
.userAgent(userAgentProvider.provide())
|
||||||
.addRootCertificates(userCertificatesProvider.provides())
|
.addRootCertificates(userCertificatesProvider.provides())
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,35 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2025 Element Creations Ltd.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial.
|
||||||
|
* Please see LICENSE files in the repository root for full details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package io.element.android.libraries.matrix.impl.storage
|
||||||
|
|
||||||
|
import io.element.android.libraries.matrix.impl.paths.SessionPaths
|
||||||
|
import org.matrix.rustcomponents.sdk.ClientBuilder
|
||||||
|
import org.matrix.rustcomponents.sdk.SqliteStoreBuilder as SdkSqliteStoreBuilder
|
||||||
|
|
||||||
|
interface SqliteStoreBuilder {
|
||||||
|
fun passphrase(passphrase: String?): SqliteStoreBuilder
|
||||||
|
fun setupClientBuilder(clientBuilder: ClientBuilder): ClientBuilder
|
||||||
|
}
|
||||||
|
|
||||||
|
class RustSqliteStoreBuilder(
|
||||||
|
private val sessionPaths: SessionPaths,
|
||||||
|
) : SqliteStoreBuilder {
|
||||||
|
private var inner = SdkSqliteStoreBuilder(
|
||||||
|
dataPath = sessionPaths.fileDirectory.absolutePath,
|
||||||
|
cachePath = sessionPaths.cacheDirectory.absolutePath,
|
||||||
|
)
|
||||||
|
|
||||||
|
override fun passphrase(passphrase: String?): SqliteStoreBuilder {
|
||||||
|
inner = inner.passphrase(passphrase)
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun setupClientBuilder(clientBuilder: ClientBuilder): ClientBuilder {
|
||||||
|
return clientBuilder.sqliteStore(this.inner)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2025 Element Creations Ltd.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial.
|
||||||
|
* Please see LICENSE files in the repository root for full details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package io.element.android.libraries.matrix.impl.storage
|
||||||
|
|
||||||
|
import dev.zacsweers.metro.AppScope
|
||||||
|
import dev.zacsweers.metro.ContributesBinding
|
||||||
|
import io.element.android.libraries.matrix.impl.paths.SessionPaths
|
||||||
|
|
||||||
|
interface SqliteStoreBuilderProvider {
|
||||||
|
fun provide(sessionPaths: SessionPaths): SqliteStoreBuilder
|
||||||
|
}
|
||||||
|
|
||||||
|
@ContributesBinding(AppScope::class)
|
||||||
|
class RustSqliteStoreBuilderProvider : SqliteStoreBuilderProvider {
|
||||||
|
override fun provide(sessionPaths: SessionPaths): SqliteStoreBuilder {
|
||||||
|
return RustSqliteStoreBuilder(sessionPaths)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2025 Element Creations Ltd.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial.
|
||||||
|
* Please see LICENSE files in the repository root for full details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package io.element.android.libraries.matrix.impl
|
||||||
|
|
||||||
|
import org.matrix.rustcomponents.sdk.NoHandle
|
||||||
|
import org.matrix.rustcomponents.sdk.SqliteStoreBuilder
|
||||||
|
|
||||||
|
class FakeFfiSqliteStoreBuilder : SqliteStoreBuilder(NoHandle) {
|
||||||
|
override fun cacheSize(cacheSize: UInt?): SqliteStoreBuilder = this
|
||||||
|
override fun journalSizeLimit(limit: UInt?): SqliteStoreBuilder = this
|
||||||
|
override fun passphrase(passphrase: String?): SqliteStoreBuilder = this
|
||||||
|
override fun poolMaxSize(poolMaxSize: UInt?): SqliteStoreBuilder = this
|
||||||
|
override fun systemIsMemoryConstrained(): SqliteStoreBuilder = this
|
||||||
|
}
|
||||||
|
|
@ -14,6 +14,7 @@ import io.element.android.libraries.matrix.api.core.SessionId
|
||||||
import io.element.android.libraries.matrix.impl.auth.FakeProxyProvider
|
import io.element.android.libraries.matrix.impl.auth.FakeProxyProvider
|
||||||
import io.element.android.libraries.matrix.impl.auth.FakeUserCertificatesProvider
|
import io.element.android.libraries.matrix.impl.auth.FakeUserCertificatesProvider
|
||||||
import io.element.android.libraries.matrix.impl.room.FakeTimelineEventTypeFilterFactory
|
import io.element.android.libraries.matrix.impl.room.FakeTimelineEventTypeFilterFactory
|
||||||
|
import io.element.android.libraries.matrix.impl.storage.FakeSqliteStoreBuilderProvider
|
||||||
import io.element.android.libraries.network.useragent.SimpleUserAgentProvider
|
import io.element.android.libraries.network.useragent.SimpleUserAgentProvider
|
||||||
import io.element.android.libraries.sessionstorage.api.SessionStore
|
import io.element.android.libraries.sessionstorage.api.SessionStore
|
||||||
import io.element.android.libraries.sessionstorage.test.InMemorySessionStore
|
import io.element.android.libraries.sessionstorage.test.InMemorySessionStore
|
||||||
|
|
@ -23,11 +24,9 @@ import io.element.android.services.toolbox.test.systemclock.FakeSystemClock
|
||||||
import io.element.android.tests.testutils.testCoroutineDispatchers
|
import io.element.android.tests.testutils.testCoroutineDispatchers
|
||||||
import kotlinx.coroutines.test.TestScope
|
import kotlinx.coroutines.test.TestScope
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.Ignore
|
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
|
||||||
class RustMatrixClientFactoryTest {
|
class RustMatrixClientFactoryTest {
|
||||||
@Test
|
@Test
|
||||||
fun test() = runTest {
|
fun test() = runTest {
|
||||||
|
|
@ -57,4 +56,5 @@ fun TestScope.createRustMatrixClientFactory(
|
||||||
featureFlagService = FakeFeatureFlagService(),
|
featureFlagService = FakeFeatureFlagService(),
|
||||||
timelineEventTypeFilterFactory = FakeTimelineEventTypeFilterFactory(),
|
timelineEventTypeFilterFactory = FakeTimelineEventTypeFilterFactory(),
|
||||||
clientBuilderProvider = clientBuilderProvider,
|
clientBuilderProvider = clientBuilderProvider,
|
||||||
|
sqliteStoreBuilderProvider = FakeSqliteStoreBuilderProvider(),
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -31,13 +31,11 @@ import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||||
import kotlinx.coroutines.test.TestScope
|
import kotlinx.coroutines.test.TestScope
|
||||||
import kotlinx.coroutines.test.advanceUntilIdle
|
import kotlinx.coroutines.test.advanceUntilIdle
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.Ignore
|
|
||||||
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.UserProfile
|
import org.matrix.rustcomponents.sdk.UserProfile
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
|
||||||
class RustMatrixClientTest {
|
class RustMatrixClientTest {
|
||||||
@Test
|
@Test
|
||||||
fun `ensure that sessionId and deviceId can be retrieved from the client`() = runTest {
|
fun `ensure that sessionId and deviceId can be retrieved from the client`() = runTest {
|
||||||
|
|
|
||||||
|
|
@ -11,10 +11,8 @@ package io.element.android.libraries.matrix.impl.auth
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.libraries.matrix.api.auth.MatrixHomeServerDetails
|
import io.element.android.libraries.matrix.api.auth.MatrixHomeServerDetails
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiHomeserverLoginDetails
|
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiHomeserverLoginDetails
|
||||||
import org.junit.Ignore
|
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
|
||||||
class HomeserverDetailsKtTest {
|
class HomeserverDetailsKtTest {
|
||||||
@Test
|
@Test
|
||||||
fun `map should be correct`() {
|
fun `map should be correct`() {
|
||||||
|
|
|
||||||
|
|
@ -14,10 +14,8 @@ import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiClient
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiClientBuilder
|
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiClientBuilder
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiHomeserverLoginDetails
|
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiHomeserverLoginDetails
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.Ignore
|
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
|
||||||
class RustHomeserverLoginCompatibilityCheckerTest {
|
class RustHomeserverLoginCompatibilityCheckerTest {
|
||||||
@Test
|
@Test
|
||||||
fun `check - is valid if it supports OIDC login`() = runTest {
|
fun `check - is valid if it supports OIDC login`() = runTest {
|
||||||
|
|
|
||||||
|
|
@ -23,12 +23,10 @@ import io.element.android.libraries.sessionstorage.test.InMemorySessionStore
|
||||||
import io.element.android.tests.testutils.testCoroutineDispatchers
|
import io.element.android.tests.testutils.testCoroutineDispatchers
|
||||||
import kotlinx.coroutines.test.TestScope
|
import kotlinx.coroutines.test.TestScope
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.Ignore
|
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
class RustMatrixAuthenticationServiceTest {
|
class RustMatrixAuthenticationServiceTest {
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
|
||||||
@Test
|
@Test
|
||||||
fun `setHomeserver is successful`() = runTest {
|
fun `setHomeserver is successful`() = runTest {
|
||||||
val sut = createRustMatrixAuthenticationService(
|
val sut = createRustMatrixAuthenticationService(
|
||||||
|
|
|
||||||
|
|
@ -11,10 +11,8 @@ package io.element.android.libraries.matrix.impl.auth.qrlogin
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiQrCodeData
|
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiQrCodeData
|
||||||
import io.element.android.libraries.matrix.test.A_HOMESERVER_URL
|
import io.element.android.libraries.matrix.test.A_HOMESERVER_URL
|
||||||
import org.junit.Ignore
|
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
|
||||||
class SdkQrCodeLoginDataTest {
|
class SdkQrCodeLoginDataTest {
|
||||||
@Test
|
@Test
|
||||||
fun `getServer reads the value from the Rust side, null case`() {
|
fun `getServer reads the value from the Rust side, null case`() {
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,7 @@ import org.matrix.rustcomponents.sdk.SyncServiceBuilder
|
||||||
import org.matrix.rustcomponents.sdk.TaskHandle
|
import org.matrix.rustcomponents.sdk.TaskHandle
|
||||||
import org.matrix.rustcomponents.sdk.UnableToDecryptDelegate
|
import org.matrix.rustcomponents.sdk.UnableToDecryptDelegate
|
||||||
import org.matrix.rustcomponents.sdk.UserProfile
|
import org.matrix.rustcomponents.sdk.UserProfile
|
||||||
|
import uniffi.matrix_sdk_base.MediaRetentionPolicy
|
||||||
|
|
||||||
class FakeFfiClient(
|
class FakeFfiClient(
|
||||||
private val userId: String = A_USER_ID.value,
|
private val userId: String = A_USER_ID.value,
|
||||||
|
|
@ -88,5 +89,7 @@ class FakeFfiClient(
|
||||||
return homeserverLoginDetailsResult()
|
return homeserverLoginDetailsResult()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override suspend fun setMediaRetentionPolicy(policy: MediaRetentionPolicy) {}
|
||||||
|
|
||||||
override fun close() = closeResult()
|
override fun close() = closeResult()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -44,5 +44,6 @@ class FakeFfiClientBuilder(
|
||||||
override fun enableShareHistoryOnInvite(enableShareHistoryOnInvite: Boolean): ClientBuilder = this
|
override fun enableShareHistoryOnInvite(enableShareHistoryOnInvite: Boolean): ClientBuilder = this
|
||||||
override fun threadsEnabled(enabled: Boolean, threadSubscriptions: Boolean): ClientBuilder = this
|
override fun threadsEnabled(enabled: Boolean, threadSubscriptions: Boolean): ClientBuilder = this
|
||||||
override fun sqliteStore(config: SqliteStoreBuilder): ClientBuilder = this
|
override fun sqliteStore(config: SqliteStoreBuilder): ClientBuilder = this
|
||||||
|
override fun inMemoryStore(): ClientBuilder = this
|
||||||
override suspend fun build() = buildResult()
|
override suspend fun build() = buildResult()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ import io.element.android.libraries.matrix.impl.fixtures.factories.aRustRoomInfo
|
||||||
import io.element.android.libraries.matrix.test.A_ROOM_ID
|
import io.element.android.libraries.matrix.test.A_ROOM_ID
|
||||||
import io.element.android.tests.testutils.lambda.lambdaError
|
import io.element.android.tests.testutils.lambda.lambdaError
|
||||||
import org.matrix.rustcomponents.sdk.EventTimelineItem
|
import org.matrix.rustcomponents.sdk.EventTimelineItem
|
||||||
|
import org.matrix.rustcomponents.sdk.LatestEventValue
|
||||||
import org.matrix.rustcomponents.sdk.NoHandle
|
import org.matrix.rustcomponents.sdk.NoHandle
|
||||||
import org.matrix.rustcomponents.sdk.Room
|
import org.matrix.rustcomponents.sdk.Room
|
||||||
import org.matrix.rustcomponents.sdk.RoomInfo
|
import org.matrix.rustcomponents.sdk.RoomInfo
|
||||||
|
|
@ -25,6 +26,7 @@ class FakeFfiRoom(
|
||||||
private val getMembersNoSync: () -> RoomMembersIterator = { lambdaError() },
|
private val getMembersNoSync: () -> RoomMembersIterator = { lambdaError() },
|
||||||
private val leaveLambda: () -> Unit = { lambdaError() },
|
private val leaveLambda: () -> Unit = { lambdaError() },
|
||||||
private val latestEventLambda: () -> EventTimelineItem? = { lambdaError() },
|
private val latestEventLambda: () -> EventTimelineItem? = { lambdaError() },
|
||||||
|
private val newLatestEventLambda: () -> LatestEventValue = { lambdaError() },
|
||||||
private val suggestedRoleForUserLambda: (String) -> RoomMemberRole = { lambdaError() },
|
private val suggestedRoleForUserLambda: (String) -> RoomMemberRole = { lambdaError() },
|
||||||
private val roomInfo: RoomInfo = aRustRoomInfo(id = roomId.value),
|
private val roomInfo: RoomInfo = aRustRoomInfo(id = roomId.value),
|
||||||
) : Room(NoHandle) {
|
) : Room(NoHandle) {
|
||||||
|
|
@ -56,6 +58,10 @@ class FakeFfiRoom(
|
||||||
return suggestedRoleForUserLambda(userId)
|
return suggestedRoleForUserLambda(userId)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override suspend fun newLatestEvent(): LatestEventValue {
|
||||||
|
return newLatestEventLambda()
|
||||||
|
}
|
||||||
|
|
||||||
override fun close() {
|
override fun close() {
|
||||||
// No-op
|
// No-op
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -29,15 +29,13 @@ import io.element.android.tests.testutils.lambda.lambdaRecorder
|
||||||
import io.element.android.tests.testutils.testCoroutineDispatchers
|
import io.element.android.tests.testutils.testCoroutineDispatchers
|
||||||
import kotlinx.coroutines.test.TestScope
|
import kotlinx.coroutines.test.TestScope
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.Ignore
|
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.matrix.rustcomponents.sdk.NotificationClient
|
import org.matrix.rustcomponents.sdk.NotificationClient
|
||||||
import org.matrix.rustcomponents.sdk.NotificationStatus
|
import org.matrix.rustcomponents.sdk.NotificationStatus
|
||||||
import org.matrix.rustcomponents.sdk.TimelineEventType
|
import org.matrix.rustcomponents.sdk.TimelineEventType
|
||||||
|
|
||||||
class RustNotificationServiceTest {
|
class RustNotificationServiceTest {
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun test() = runTest {
|
fun test() = runTest {
|
||||||
val notificationClient = FakeFfiNotificationClient(
|
val notificationClient = FakeFfiNotificationClient(
|
||||||
notificationItemResult = mapOf(AN_EVENT_ID.value to aRustBatchNotificationResult()),
|
notificationItemResult = mapOf(AN_EVENT_ID.value to aRustBatchNotificationResult()),
|
||||||
|
|
@ -58,8 +56,7 @@ class RustNotificationServiceTest {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `test mapping invalid item only drops that item`() = runTest {
|
fun `test mapping invalid item only drops that item`() = runTest {
|
||||||
val error = IllegalStateException("This event type is not supported")
|
val error = IllegalStateException("This event type is not supported")
|
||||||
val faultyEvent = object : FakeFfiTimelineEvent() {
|
val faultyEvent = object : FakeFfiTimelineEvent() {
|
||||||
|
|
@ -86,8 +83,7 @@ class RustNotificationServiceTest {
|
||||||
assertThat(successfulResult?.isSuccess).isTrue()
|
assertThat(successfulResult?.isSuccess).isTrue()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `test unable to resolve event`() = runTest {
|
fun `test unable to resolve event`() = runTest {
|
||||||
val notificationClient = FakeFfiNotificationClient(
|
val notificationClient = FakeFfiNotificationClient(
|
||||||
notificationItemResult = emptyMap(),
|
notificationItemResult = emptyMap(),
|
||||||
|
|
@ -99,8 +95,7 @@ class RustNotificationServiceTest {
|
||||||
assertThat(exception).isInstanceOf(NotificationResolverException::class.java)
|
assertThat(exception).isInstanceOf(NotificationResolverException::class.java)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `close should invoke the close method of the service`() = runTest {
|
fun `close should invoke the close method of the service`() = runTest {
|
||||||
val closeResult = lambdaRecorder<Unit> { }
|
val closeResult = lambdaRecorder<Unit> { }
|
||||||
val notificationClient = FakeFfiNotificationClient(
|
val notificationClient = FakeFfiNotificationClient(
|
||||||
|
|
|
||||||
|
|
@ -16,13 +16,11 @@ import io.element.android.libraries.matrix.test.A_ROOM_ID
|
||||||
import io.element.android.tests.testutils.testCoroutineDispatchers
|
import io.element.android.tests.testutils.testCoroutineDispatchers
|
||||||
import kotlinx.coroutines.test.TestScope
|
import kotlinx.coroutines.test.TestScope
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.Ignore
|
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.matrix.rustcomponents.sdk.NotificationSettings
|
import org.matrix.rustcomponents.sdk.NotificationSettings
|
||||||
|
|
||||||
class RustNotificationSettingsServiceTest {
|
class RustNotificationSettingsServiceTest {
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun test() = runTest {
|
fun test() = runTest {
|
||||||
val sut = createRustNotificationSettingsService()
|
val sut = createRustNotificationSettingsService()
|
||||||
val result = sut.getRoomNotificationSettings(
|
val result = sut.getRoomNotificationSettings(
|
||||||
|
|
|
||||||
|
|
@ -13,10 +13,8 @@ import io.element.android.libraries.matrix.api.pusher.UnsetHttpPusherData
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiClient
|
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiClient
|
||||||
import io.element.android.tests.testutils.testCoroutineDispatchers
|
import io.element.android.tests.testutils.testCoroutineDispatchers
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.Ignore
|
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
|
||||||
class RustPushersServiceTest {
|
class RustPushersServiceTest {
|
||||||
@Test
|
@Test
|
||||||
fun `setPusher should invoke the client method`() = runTest {
|
fun `setPusher should invoke the client method`() = runTest {
|
||||||
|
|
|
||||||
|
|
@ -14,10 +14,8 @@ import io.element.android.libraries.matrix.api.user.MatrixUser
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.factories.aRustRoomHero
|
import io.element.android.libraries.matrix.impl.fixtures.factories.aRustRoomHero
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.factories.aRustRoomInfo
|
import io.element.android.libraries.matrix.impl.fixtures.factories.aRustRoomInfo
|
||||||
import io.element.android.libraries.matrix.test.A_USER_ID
|
import io.element.android.libraries.matrix.test.A_USER_ID
|
||||||
import org.junit.Ignore
|
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
|
||||||
class RoomInfoExtTest {
|
class RoomInfoExtTest {
|
||||||
@Test
|
@Test
|
||||||
fun `get non empty element Heroes`() {
|
fun `get non empty element Heroes`() {
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,6 @@ import io.element.android.libraries.matrix.test.room.defaultRoomPowerLevelValues
|
||||||
import kotlinx.collections.immutable.persistentListOf
|
import kotlinx.collections.immutable.persistentListOf
|
||||||
import kotlinx.collections.immutable.persistentMapOf
|
import kotlinx.collections.immutable.persistentMapOf
|
||||||
import kotlinx.collections.immutable.toImmutableList
|
import kotlinx.collections.immutable.toImmutableList
|
||||||
import org.junit.Ignore
|
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.matrix.rustcomponents.sdk.Membership
|
import org.matrix.rustcomponents.sdk.Membership
|
||||||
import uniffi.matrix_sdk_base.EncryptionState
|
import uniffi.matrix_sdk_base.EncryptionState
|
||||||
|
|
@ -40,7 +39,6 @@ import org.matrix.rustcomponents.sdk.JoinRule as RustJoinRule
|
||||||
import org.matrix.rustcomponents.sdk.RoomHistoryVisibility as RustRoomHistoryVisibility
|
import org.matrix.rustcomponents.sdk.RoomHistoryVisibility as RustRoomHistoryVisibility
|
||||||
import org.matrix.rustcomponents.sdk.RoomNotificationMode as RustRoomNotificationMode
|
import org.matrix.rustcomponents.sdk.RoomNotificationMode as RustRoomNotificationMode
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
|
||||||
class RoomInfoMapperTest {
|
class RoomInfoMapperTest {
|
||||||
@Test
|
@Test
|
||||||
fun `mapping of RustRoomInfo should map all the fields`() {
|
fun `mapping of RustRoomInfo should map all the fields`() {
|
||||||
|
|
|
||||||
|
|
@ -31,11 +31,9 @@ import kotlinx.coroutines.flow.shareIn
|
||||||
import kotlinx.coroutines.isActive
|
import kotlinx.coroutines.isActive
|
||||||
import kotlinx.coroutines.test.TestScope
|
import kotlinx.coroutines.test.TestScope
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.Ignore
|
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import uniffi.matrix_sdk.RoomMemberRole
|
import uniffi.matrix_sdk.RoomMemberRole
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
|
||||||
class RustBaseRoomTest {
|
class RustBaseRoomTest {
|
||||||
@Test
|
@Test
|
||||||
fun `RustBaseRoom should cancel the room coroutine scope when it is destroyed`() = runTest {
|
fun `RustBaseRoom should cancel the room coroutine scope when it is destroyed`() = runTest {
|
||||||
|
|
|
||||||
|
|
@ -25,10 +25,8 @@ import io.element.android.services.analytics.test.FakeAnalyticsService
|
||||||
import io.element.android.tests.testutils.lambda.lambdaRecorder
|
import io.element.android.tests.testutils.lambda.lambdaRecorder
|
||||||
import io.element.android.tests.testutils.lambda.value
|
import io.element.android.tests.testutils.lambda.value
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.Ignore
|
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
|
||||||
class DefaultJoinRoomTest {
|
class DefaultJoinRoomTest {
|
||||||
@Test
|
@Test
|
||||||
fun `when using roomId and there is no server names, the classic join room API is used`() = runTest {
|
fun `when using roomId and there is no server names, the classic join room API is used`() = runTest {
|
||||||
|
|
|
||||||
|
|
@ -24,10 +24,8 @@ import io.element.android.libraries.matrix.test.A_USER_ID_3
|
||||||
import io.element.android.libraries.matrix.test.A_USER_ID_4
|
import io.element.android.libraries.matrix.test.A_USER_ID_4
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.Ignore
|
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
|
||||||
class RoomMemberListFetcherTest {
|
class RoomMemberListFetcherTest {
|
||||||
@Test
|
@Test
|
||||||
fun `fetchRoomMembers with CACHE source - emits cached members, if any`() = runTest {
|
fun `fetchRoomMembers with CACHE source - emits cached members, if any`() = runTest {
|
||||||
|
|
|
||||||
|
|
@ -19,12 +19,10 @@ import kotlinx.coroutines.test.StandardTestDispatcher
|
||||||
import kotlinx.coroutines.test.TestScope
|
import kotlinx.coroutines.test.TestScope
|
||||||
import kotlinx.coroutines.test.runCurrent
|
import kotlinx.coroutines.test.runCurrent
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.Ignore
|
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.matrix.rustcomponents.sdk.RoomDirectorySearch
|
import org.matrix.rustcomponents.sdk.RoomDirectorySearch
|
||||||
import org.matrix.rustcomponents.sdk.RoomDirectorySearchEntryUpdate
|
import org.matrix.rustcomponents.sdk.RoomDirectorySearchEntryUpdate
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
|
||||||
@OptIn(ExperimentalCoroutinesApi::class)
|
@OptIn(ExperimentalCoroutinesApi::class)
|
||||||
class RustBaseRoomDirectoryListTest {
|
class RustBaseRoomDirectoryListTest {
|
||||||
@Test
|
@Test
|
||||||
|
|
|
||||||
|
|
@ -11,12 +11,10 @@ package io.element.android.libraries.matrix.impl.roomdirectory
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiClient
|
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiClient
|
||||||
import kotlinx.coroutines.test.StandardTestDispatcher
|
import kotlinx.coroutines.test.StandardTestDispatcher
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.Ignore
|
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
|
||||||
class RustBaseRoomDirectoryServiceTest {
|
class RustBaseRoomDirectoryServiceTest {
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun test() = runTest {
|
fun test() = runTest {
|
||||||
val client = FakeFfiClient()
|
val client = FakeFfiClient()
|
||||||
val sut = RustRoomDirectoryService(
|
val sut = RustRoomDirectoryService(
|
||||||
|
|
|
||||||
|
|
@ -12,13 +12,11 @@ import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiRoomList
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiRoomListService
|
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiRoomListService
|
||||||
import io.element.android.services.analytics.test.FakeAnalyticsService
|
import io.element.android.services.analytics.test.FakeAnalyticsService
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.Ignore
|
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import kotlin.coroutines.EmptyCoroutineContext
|
import kotlin.coroutines.EmptyCoroutineContext
|
||||||
|
|
||||||
class RoomListFactoryTest {
|
class RoomListFactoryTest {
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `createRoomList should work`() = runTest {
|
fun `createRoomList should work`() = runTest {
|
||||||
val sut = RoomListFactory(
|
val sut = RoomListFactory(
|
||||||
innerRoomListService = FakeFfiRoomListService(),
|
innerRoomListService = FakeFfiRoomListService(),
|
||||||
|
|
|
||||||
|
|
@ -21,15 +21,14 @@ import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
import kotlinx.coroutines.test.StandardTestDispatcher
|
import kotlinx.coroutines.test.StandardTestDispatcher
|
||||||
import kotlinx.coroutines.test.TestScope
|
import kotlinx.coroutines.test.TestScope
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.Ignore
|
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
import org.matrix.rustcomponents.sdk.LatestEventValue
|
||||||
import org.matrix.rustcomponents.sdk.RoomListEntriesUpdate
|
import org.matrix.rustcomponents.sdk.RoomListEntriesUpdate
|
||||||
|
|
||||||
class RoomSummaryListProcessorTest {
|
class RoomSummaryListProcessorTest {
|
||||||
private val summaries = MutableStateFlow<List<RoomSummary>>(emptyList())
|
private val summaries = MutableStateFlow<List<RoomSummary>>(emptyList())
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `Append adds new entries at the end of the list`() = runTest {
|
fun `Append adds new entries at the end of the list`() = runTest {
|
||||||
summaries.value = listOf(aRoomSummary())
|
summaries.value = listOf(aRoomSummary())
|
||||||
val processor = createProcessor()
|
val processor = createProcessor()
|
||||||
|
|
@ -41,8 +40,7 @@ class RoomSummaryListProcessorTest {
|
||||||
assertThat(summaries.value.subList(1, 4).all { it.roomId == A_ROOM_ID_2 }).isTrue()
|
assertThat(summaries.value.subList(1, 4).all { it.roomId == A_ROOM_ID_2 }).isTrue()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `PushBack adds a new entry at the end of the list`() = runTest {
|
fun `PushBack adds a new entry at the end of the list`() = runTest {
|
||||||
summaries.value = listOf(aRoomSummary())
|
summaries.value = listOf(aRoomSummary())
|
||||||
val processor = createProcessor()
|
val processor = createProcessor()
|
||||||
|
|
@ -52,8 +50,7 @@ class RoomSummaryListProcessorTest {
|
||||||
assertThat(summaries.value.last().roomId).isEqualTo(A_ROOM_ID_2)
|
assertThat(summaries.value.last().roomId).isEqualTo(A_ROOM_ID_2)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `PushFront inserts a new entry at the start of the list`() = runTest {
|
fun `PushFront inserts a new entry at the start of the list`() = runTest {
|
||||||
summaries.value = listOf(aRoomSummary())
|
summaries.value = listOf(aRoomSummary())
|
||||||
val processor = createProcessor()
|
val processor = createProcessor()
|
||||||
|
|
@ -63,8 +60,7 @@ class RoomSummaryListProcessorTest {
|
||||||
assertThat(summaries.value.first().roomId).isEqualTo(A_ROOM_ID_2)
|
assertThat(summaries.value.first().roomId).isEqualTo(A_ROOM_ID_2)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `Set replaces an entry at some index`() = runTest {
|
fun `Set replaces an entry at some index`() = runTest {
|
||||||
summaries.value = listOf(aRoomSummary())
|
summaries.value = listOf(aRoomSummary())
|
||||||
val processor = createProcessor()
|
val processor = createProcessor()
|
||||||
|
|
@ -76,8 +72,7 @@ class RoomSummaryListProcessorTest {
|
||||||
assertThat(summaries.value[index].roomId).isEqualTo(A_ROOM_ID_2)
|
assertThat(summaries.value[index].roomId).isEqualTo(A_ROOM_ID_2)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `Insert inserts a new entry at the provided index`() = runTest {
|
fun `Insert inserts a new entry at the provided index`() = runTest {
|
||||||
summaries.value = listOf(aRoomSummary())
|
summaries.value = listOf(aRoomSummary())
|
||||||
val processor = createProcessor()
|
val processor = createProcessor()
|
||||||
|
|
@ -89,8 +84,7 @@ class RoomSummaryListProcessorTest {
|
||||||
assertThat(summaries.value[index].roomId).isEqualTo(A_ROOM_ID_2)
|
assertThat(summaries.value[index].roomId).isEqualTo(A_ROOM_ID_2)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `Remove removes an entry at some index`() = runTest {
|
fun `Remove removes an entry at some index`() = runTest {
|
||||||
summaries.value = listOf(
|
summaries.value = listOf(
|
||||||
aRoomSummary(roomId = A_ROOM_ID),
|
aRoomSummary(roomId = A_ROOM_ID),
|
||||||
|
|
@ -105,8 +99,7 @@ class RoomSummaryListProcessorTest {
|
||||||
assertThat(summaries.value[index].roomId).isEqualTo(A_ROOM_ID_2)
|
assertThat(summaries.value[index].roomId).isEqualTo(A_ROOM_ID_2)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `PopBack removes an entry at the end of the list`() = runTest {
|
fun `PopBack removes an entry at the end of the list`() = runTest {
|
||||||
summaries.value = listOf(
|
summaries.value = listOf(
|
||||||
aRoomSummary(roomId = A_ROOM_ID),
|
aRoomSummary(roomId = A_ROOM_ID),
|
||||||
|
|
@ -121,8 +114,7 @@ class RoomSummaryListProcessorTest {
|
||||||
assertThat(summaries.value[index].roomId).isEqualTo(A_ROOM_ID)
|
assertThat(summaries.value[index].roomId).isEqualTo(A_ROOM_ID)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `PopFront removes an entry at the start of the list`() = runTest {
|
fun `PopFront removes an entry at the start of the list`() = runTest {
|
||||||
summaries.value = listOf(
|
summaries.value = listOf(
|
||||||
aRoomSummary(roomId = A_ROOM_ID),
|
aRoomSummary(roomId = A_ROOM_ID),
|
||||||
|
|
@ -137,8 +129,7 @@ class RoomSummaryListProcessorTest {
|
||||||
assertThat(summaries.value[index].roomId).isEqualTo(A_ROOM_ID_2)
|
assertThat(summaries.value[index].roomId).isEqualTo(A_ROOM_ID_2)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `Clear removes all the entries`() = runTest {
|
fun `Clear removes all the entries`() = runTest {
|
||||||
summaries.value = listOf(
|
summaries.value = listOf(
|
||||||
aRoomSummary(roomId = A_ROOM_ID),
|
aRoomSummary(roomId = A_ROOM_ID),
|
||||||
|
|
@ -151,8 +142,7 @@ class RoomSummaryListProcessorTest {
|
||||||
assertThat(summaries.value).isEmpty()
|
assertThat(summaries.value).isEmpty()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `Truncate removes all entries after the provided length`() = runTest {
|
fun `Truncate removes all entries after the provided length`() = runTest {
|
||||||
summaries.value = listOf(
|
summaries.value = listOf(
|
||||||
aRoomSummary(roomId = A_ROOM_ID),
|
aRoomSummary(roomId = A_ROOM_ID),
|
||||||
|
|
@ -167,8 +157,7 @@ class RoomSummaryListProcessorTest {
|
||||||
assertThat(summaries.value[index].roomId).isEqualTo(A_ROOM_ID)
|
assertThat(summaries.value[index].roomId).isEqualTo(A_ROOM_ID)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `Reset removes all entries and add the provided ones`() = runTest {
|
fun `Reset removes all entries and add the provided ones`() = runTest {
|
||||||
summaries.value = listOf(
|
summaries.value = listOf(
|
||||||
aRoomSummary(roomId = A_ROOM_ID),
|
aRoomSummary(roomId = A_ROOM_ID),
|
||||||
|
|
@ -186,6 +175,7 @@ class RoomSummaryListProcessorTest {
|
||||||
private fun aRustRoom(roomId: RoomId = A_ROOM_ID) = FakeFfiRoom(
|
private fun aRustRoom(roomId: RoomId = A_ROOM_ID) = FakeFfiRoom(
|
||||||
roomId = roomId,
|
roomId = roomId,
|
||||||
latestEventLambda = { null },
|
latestEventLambda = { null },
|
||||||
|
newLatestEventLambda = { LatestEventValue.None }
|
||||||
)
|
)
|
||||||
|
|
||||||
private fun TestScope.createProcessor() = RoomSummaryListProcessor(
|
private fun TestScope.createProcessor() = RoomSummaryListProcessor(
|
||||||
|
|
|
||||||
|
|
@ -19,12 +19,10 @@ import kotlinx.coroutines.test.StandardTestDispatcher
|
||||||
import kotlinx.coroutines.test.TestScope
|
import kotlinx.coroutines.test.TestScope
|
||||||
import kotlinx.coroutines.test.runCurrent
|
import kotlinx.coroutines.test.runCurrent
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.Ignore
|
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.matrix.rustcomponents.sdk.RoomListServiceSyncIndicator
|
import org.matrix.rustcomponents.sdk.RoomListServiceSyncIndicator
|
||||||
import org.matrix.rustcomponents.sdk.RoomListService as RustRoomListService
|
import org.matrix.rustcomponents.sdk.RoomListService as RustRoomListService
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
|
||||||
@OptIn(ExperimentalCoroutinesApi::class)
|
@OptIn(ExperimentalCoroutinesApi::class)
|
||||||
class RustBaseRoomListServiceTest {
|
class RustBaseRoomListServiceTest {
|
||||||
@Test
|
@Test
|
||||||
|
|
|
||||||
|
|
@ -18,15 +18,13 @@ import io.element.android.libraries.previewutils.room.aSpaceRoom
|
||||||
import kotlinx.coroutines.flow.MutableSharedFlow
|
import kotlinx.coroutines.flow.MutableSharedFlow
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.Ignore
|
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.matrix.rustcomponents.sdk.SpaceListUpdate
|
import org.matrix.rustcomponents.sdk.SpaceListUpdate
|
||||||
|
|
||||||
class RoomSummaryListProcessorTest {
|
class RoomSummaryListProcessorTest {
|
||||||
private val spaceRoomsFlow = MutableStateFlow<List<SpaceRoom>>(emptyList())
|
private val spaceRoomsFlow = MutableStateFlow<List<SpaceRoom>>(emptyList())
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `Append adds new entries at the end of the list`() = runTest {
|
fun `Append adds new entries at the end of the list`() = runTest {
|
||||||
spaceRoomsFlow.value = listOf(aSpaceRoom())
|
spaceRoomsFlow.value = listOf(aSpaceRoom())
|
||||||
val processor = createProcessor()
|
val processor = createProcessor()
|
||||||
|
|
@ -38,8 +36,7 @@ class RoomSummaryListProcessorTest {
|
||||||
assertThat(spaceRoomsFlow.value.subList(1, 4).all { it.roomId == A_ROOM_ID_2 }).isTrue()
|
assertThat(spaceRoomsFlow.value.subList(1, 4).all { it.roomId == A_ROOM_ID_2 }).isTrue()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `PushBack adds a new entry at the end of the list`() = runTest {
|
fun `PushBack adds a new entry at the end of the list`() = runTest {
|
||||||
spaceRoomsFlow.value = listOf(aSpaceRoom())
|
spaceRoomsFlow.value = listOf(aSpaceRoom())
|
||||||
val processor = createProcessor()
|
val processor = createProcessor()
|
||||||
|
|
@ -49,8 +46,7 @@ class RoomSummaryListProcessorTest {
|
||||||
assertThat(spaceRoomsFlow.value.last().roomId).isEqualTo(A_ROOM_ID_2)
|
assertThat(spaceRoomsFlow.value.last().roomId).isEqualTo(A_ROOM_ID_2)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `PushFront inserts a new entry at the start of the list`() = runTest {
|
fun `PushFront inserts a new entry at the start of the list`() = runTest {
|
||||||
spaceRoomsFlow.value = listOf(aSpaceRoom())
|
spaceRoomsFlow.value = listOf(aSpaceRoom())
|
||||||
val processor = createProcessor()
|
val processor = createProcessor()
|
||||||
|
|
@ -60,8 +56,7 @@ class RoomSummaryListProcessorTest {
|
||||||
assertThat(spaceRoomsFlow.value.first().roomId).isEqualTo(A_ROOM_ID_2)
|
assertThat(spaceRoomsFlow.value.first().roomId).isEqualTo(A_ROOM_ID_2)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `Set replaces an entry at some index`() = runTest {
|
fun `Set replaces an entry at some index`() = runTest {
|
||||||
spaceRoomsFlow.value = listOf(aSpaceRoom())
|
spaceRoomsFlow.value = listOf(aSpaceRoom())
|
||||||
val processor = createProcessor()
|
val processor = createProcessor()
|
||||||
|
|
@ -73,8 +68,7 @@ class RoomSummaryListProcessorTest {
|
||||||
assertThat(spaceRoomsFlow.value[index].roomId).isEqualTo(A_ROOM_ID_2)
|
assertThat(spaceRoomsFlow.value[index].roomId).isEqualTo(A_ROOM_ID_2)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `Insert inserts a new entry at the provided index`() = runTest {
|
fun `Insert inserts a new entry at the provided index`() = runTest {
|
||||||
spaceRoomsFlow.value = listOf(aSpaceRoom())
|
spaceRoomsFlow.value = listOf(aSpaceRoom())
|
||||||
val processor = createProcessor()
|
val processor = createProcessor()
|
||||||
|
|
@ -86,8 +80,7 @@ class RoomSummaryListProcessorTest {
|
||||||
assertThat(spaceRoomsFlow.value[index].roomId).isEqualTo(A_ROOM_ID_2)
|
assertThat(spaceRoomsFlow.value[index].roomId).isEqualTo(A_ROOM_ID_2)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `Remove removes an entry at some index`() = runTest {
|
fun `Remove removes an entry at some index`() = runTest {
|
||||||
spaceRoomsFlow.value = listOf(
|
spaceRoomsFlow.value = listOf(
|
||||||
aSpaceRoom(roomId = A_ROOM_ID),
|
aSpaceRoom(roomId = A_ROOM_ID),
|
||||||
|
|
@ -102,8 +95,7 @@ class RoomSummaryListProcessorTest {
|
||||||
assertThat(spaceRoomsFlow.value[index].roomId).isEqualTo(A_ROOM_ID_2)
|
assertThat(spaceRoomsFlow.value[index].roomId).isEqualTo(A_ROOM_ID_2)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `PopBack removes an entry at the end of the list`() = runTest {
|
fun `PopBack removes an entry at the end of the list`() = runTest {
|
||||||
spaceRoomsFlow.value = listOf(
|
spaceRoomsFlow.value = listOf(
|
||||||
aSpaceRoom(roomId = A_ROOM_ID),
|
aSpaceRoom(roomId = A_ROOM_ID),
|
||||||
|
|
@ -118,8 +110,7 @@ class RoomSummaryListProcessorTest {
|
||||||
assertThat(spaceRoomsFlow.value[index].roomId).isEqualTo(A_ROOM_ID)
|
assertThat(spaceRoomsFlow.value[index].roomId).isEqualTo(A_ROOM_ID)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `PopFront removes an entry at the start of the list`() = runTest {
|
fun `PopFront removes an entry at the start of the list`() = runTest {
|
||||||
spaceRoomsFlow.value = listOf(
|
spaceRoomsFlow.value = listOf(
|
||||||
aSpaceRoom(roomId = A_ROOM_ID),
|
aSpaceRoom(roomId = A_ROOM_ID),
|
||||||
|
|
@ -134,8 +125,7 @@ class RoomSummaryListProcessorTest {
|
||||||
assertThat(spaceRoomsFlow.value[index].roomId).isEqualTo(A_ROOM_ID_2)
|
assertThat(spaceRoomsFlow.value[index].roomId).isEqualTo(A_ROOM_ID_2)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `Clear removes all the entries`() = runTest {
|
fun `Clear removes all the entries`() = runTest {
|
||||||
spaceRoomsFlow.value = listOf(
|
spaceRoomsFlow.value = listOf(
|
||||||
aSpaceRoom(roomId = A_ROOM_ID),
|
aSpaceRoom(roomId = A_ROOM_ID),
|
||||||
|
|
@ -148,8 +138,7 @@ class RoomSummaryListProcessorTest {
|
||||||
assertThat(spaceRoomsFlow.value).isEmpty()
|
assertThat(spaceRoomsFlow.value).isEmpty()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `Truncate removes all entries after the provided length`() = runTest {
|
fun `Truncate removes all entries after the provided length`() = runTest {
|
||||||
spaceRoomsFlow.value = listOf(
|
spaceRoomsFlow.value = listOf(
|
||||||
aSpaceRoom(roomId = A_ROOM_ID),
|
aSpaceRoom(roomId = A_ROOM_ID),
|
||||||
|
|
@ -164,8 +153,7 @@ class RoomSummaryListProcessorTest {
|
||||||
assertThat(spaceRoomsFlow.value[index].roomId).isEqualTo(A_ROOM_ID)
|
assertThat(spaceRoomsFlow.value[index].roomId).isEqualTo(A_ROOM_ID)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `Reset removes all entries and add the provided ones`() = runTest {
|
fun `Reset removes all entries and add the provided ones`() = runTest {
|
||||||
spaceRoomsFlow.value = listOf(
|
spaceRoomsFlow.value = listOf(
|
||||||
aSpaceRoom(roomId = A_ROOM_ID),
|
aSpaceRoom(roomId = A_ROOM_ID),
|
||||||
|
|
@ -180,8 +168,7 @@ class RoomSummaryListProcessorTest {
|
||||||
assertThat(spaceRoomsFlow.value[index].roomId).isEqualTo(A_ROOM_ID_3)
|
assertThat(spaceRoomsFlow.value[index].roomId).isEqualTo(A_ROOM_ID_3)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `When there is no replay cache SpaceListUpdateProcessor starts with an empty list`() = runTest {
|
fun `When there is no replay cache SpaceListUpdateProcessor starts with an empty list`() = runTest {
|
||||||
val spaceRoomsSharedFlow = MutableSharedFlow<List<SpaceRoom>>(replay = 1)
|
val spaceRoomsSharedFlow = MutableSharedFlow<List<SpaceRoom>>(replay = 1)
|
||||||
val processor = createProcessor(
|
val processor = createProcessor(
|
||||||
|
|
|
||||||
|
|
@ -23,15 +23,13 @@ import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||||
import kotlinx.coroutines.test.TestScope
|
import kotlinx.coroutines.test.TestScope
|
||||||
import kotlinx.coroutines.test.runCurrent
|
import kotlinx.coroutines.test.runCurrent
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.Ignore
|
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.matrix.rustcomponents.sdk.SpaceListUpdate
|
import org.matrix.rustcomponents.sdk.SpaceListUpdate
|
||||||
import uniffi.matrix_sdk_ui.SpaceRoomListPaginationState
|
import uniffi.matrix_sdk_ui.SpaceRoomListPaginationState
|
||||||
import org.matrix.rustcomponents.sdk.SpaceRoomList as InnerSpaceRoomList
|
import org.matrix.rustcomponents.sdk.SpaceRoomList as InnerSpaceRoomList
|
||||||
|
|
||||||
class RustSpaceRoomListTest {
|
class RustSpaceRoomListTest {
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `paginationStatusFlow emits values`() = runTest {
|
fun `paginationStatusFlow emits values`() = runTest {
|
||||||
val innerSpaceRoomList = FakeFfiSpaceRoomList(
|
val innerSpaceRoomList = FakeFfiSpaceRoomList(
|
||||||
paginationStateResult = { SpaceRoomListPaginationState.Idle(false) }
|
paginationStateResult = { SpaceRoomListPaginationState.Idle(false) }
|
||||||
|
|
@ -53,8 +51,7 @@ class RustSpaceRoomListTest {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `spaceRoomsFlow emits values`() = runTest {
|
fun `spaceRoomsFlow emits values`() = runTest {
|
||||||
val innerSpaceRoomList = FakeFfiSpaceRoomList(
|
val innerSpaceRoomList = FakeFfiSpaceRoomList(
|
||||||
paginationStateResult = { SpaceRoomListPaginationState.Idle(false) }
|
paginationStateResult = { SpaceRoomListPaginationState.Idle(false) }
|
||||||
|
|
@ -76,8 +73,7 @@ class RustSpaceRoomListTest {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `paginate invokes paginate on the inner class`() = runTest {
|
fun `paginate invokes paginate on the inner class`() = runTest {
|
||||||
val paginateResult = lambdaRecorder<Unit> { }
|
val paginateResult = lambdaRecorder<Unit> { }
|
||||||
val innerSpaceRoomList = FakeFfiSpaceRoomList(
|
val innerSpaceRoomList = FakeFfiSpaceRoomList(
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2025 Element Creations Ltd.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial.
|
||||||
|
* Please see LICENSE files in the repository root for full details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package io.element.android.libraries.matrix.impl.storage
|
||||||
|
|
||||||
|
import org.matrix.rustcomponents.sdk.ClientBuilder
|
||||||
|
|
||||||
|
class FakeSqliteStoreBuilder : SqliteStoreBuilder {
|
||||||
|
override fun passphrase(passphrase: String?): SqliteStoreBuilder = this
|
||||||
|
|
||||||
|
override fun setupClientBuilder(clientBuilder: ClientBuilder): ClientBuilder {
|
||||||
|
return clientBuilder
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2025 Element Creations Ltd.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial.
|
||||||
|
* Please see LICENSE files in the repository root for full details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package io.element.android.libraries.matrix.impl.storage
|
||||||
|
|
||||||
|
import io.element.android.libraries.matrix.impl.paths.SessionPaths
|
||||||
|
|
||||||
|
class FakeSqliteStoreBuilderProvider : SqliteStoreBuilderProvider {
|
||||||
|
override fun provide(sessionPaths: SessionPaths): SqliteStoreBuilder {
|
||||||
|
return FakeSqliteStoreBuilder()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -21,7 +21,6 @@ import kotlinx.coroutines.flow.MutableSharedFlow
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
import kotlinx.coroutines.test.TestScope
|
import kotlinx.coroutines.test.TestScope
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.Ignore
|
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.matrix.rustcomponents.sdk.TimelineDiff
|
import org.matrix.rustcomponents.sdk.TimelineDiff
|
||||||
|
|
||||||
|
|
@ -31,8 +30,7 @@ class MatrixTimelineDiffProcessorTest {
|
||||||
private val anEvent = MatrixTimelineItem.Event(A_UNIQUE_ID, anEventTimelineItem())
|
private val anEvent = MatrixTimelineItem.Event(A_UNIQUE_ID, anEventTimelineItem())
|
||||||
private val anEvent2 = MatrixTimelineItem.Event(A_UNIQUE_ID_2, anEventTimelineItem())
|
private val anEvent2 = MatrixTimelineItem.Event(A_UNIQUE_ID_2, anEventTimelineItem())
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `Append adds new entries at the end of the list`() = runTest {
|
fun `Append adds new entries at the end of the list`() = runTest {
|
||||||
timelineItems.value = listOf(anEvent)
|
timelineItems.value = listOf(anEvent)
|
||||||
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
||||||
|
|
@ -44,8 +42,7 @@ class MatrixTimelineDiffProcessorTest {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `PushBack adds a new entry at the end of the list`() = runTest {
|
fun `PushBack adds a new entry at the end of the list`() = runTest {
|
||||||
timelineItems.value = listOf(anEvent)
|
timelineItems.value = listOf(anEvent)
|
||||||
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
||||||
|
|
@ -57,8 +54,7 @@ class MatrixTimelineDiffProcessorTest {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `PushFront inserts a new entry at the start of the list`() = runTest {
|
fun `PushFront inserts a new entry at the start of the list`() = runTest {
|
||||||
timelineItems.value = listOf(anEvent)
|
timelineItems.value = listOf(anEvent)
|
||||||
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
||||||
|
|
@ -70,8 +66,7 @@ class MatrixTimelineDiffProcessorTest {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `Set replaces an entry at some index`() = runTest {
|
fun `Set replaces an entry at some index`() = runTest {
|
||||||
timelineItems.value = listOf(anEvent, anEvent2)
|
timelineItems.value = listOf(anEvent, anEvent2)
|
||||||
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
||||||
|
|
@ -83,8 +78,7 @@ class MatrixTimelineDiffProcessorTest {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `Insert inserts a new entry at the provided index`() = runTest {
|
fun `Insert inserts a new entry at the provided index`() = runTest {
|
||||||
timelineItems.value = listOf(anEvent, anEvent2)
|
timelineItems.value = listOf(anEvent, anEvent2)
|
||||||
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
||||||
|
|
@ -97,8 +91,7 @@ class MatrixTimelineDiffProcessorTest {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `Remove removes an entry at some index`() = runTest {
|
fun `Remove removes an entry at some index`() = runTest {
|
||||||
timelineItems.value = listOf(anEvent, MatrixTimelineItem.Other, anEvent2)
|
timelineItems.value = listOf(anEvent, MatrixTimelineItem.Other, anEvent2)
|
||||||
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
||||||
|
|
@ -110,8 +103,7 @@ class MatrixTimelineDiffProcessorTest {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `PopBack removes an entry at the end of the list`() = runTest {
|
fun `PopBack removes an entry at the end of the list`() = runTest {
|
||||||
timelineItems.value = listOf(anEvent, anEvent2)
|
timelineItems.value = listOf(anEvent, anEvent2)
|
||||||
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
||||||
|
|
@ -122,8 +114,7 @@ class MatrixTimelineDiffProcessorTest {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `PopFront removes an entry at the start of the list`() = runTest {
|
fun `PopFront removes an entry at the start of the list`() = runTest {
|
||||||
timelineItems.value = listOf(anEvent, anEvent2)
|
timelineItems.value = listOf(anEvent, anEvent2)
|
||||||
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
||||||
|
|
@ -134,8 +125,7 @@ class MatrixTimelineDiffProcessorTest {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `Clear removes all the entries`() = runTest {
|
fun `Clear removes all the entries`() = runTest {
|
||||||
timelineItems.value = listOf(anEvent, anEvent2)
|
timelineItems.value = listOf(anEvent, anEvent2)
|
||||||
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
||||||
|
|
@ -143,8 +133,7 @@ class MatrixTimelineDiffProcessorTest {
|
||||||
assertThat(timelineItems.value).isEmpty()
|
assertThat(timelineItems.value).isEmpty()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `Truncate removes all entries after the provided length`() = runTest {
|
fun `Truncate removes all entries after the provided length`() = runTest {
|
||||||
timelineItems.value = listOf(anEvent, MatrixTimelineItem.Other, anEvent2)
|
timelineItems.value = listOf(anEvent, MatrixTimelineItem.Other, anEvent2)
|
||||||
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
||||||
|
|
@ -155,8 +144,7 @@ class MatrixTimelineDiffProcessorTest {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `Reset removes all entries and add the provided ones`() = runTest {
|
fun `Reset removes all entries and add the provided ones`() = runTest {
|
||||||
timelineItems.value = listOf(anEvent, MatrixTimelineItem.Other, anEvent2)
|
timelineItems.value = listOf(anEvent, MatrixTimelineItem.Other, anEvent2)
|
||||||
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
val processor = createMatrixTimelineDiffProcessor(timelineItems)
|
||||||
|
|
|
||||||
|
|
@ -30,13 +30,11 @@ import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||||
import kotlinx.coroutines.test.TestScope
|
import kotlinx.coroutines.test.TestScope
|
||||||
import kotlinx.coroutines.test.runCurrent
|
import kotlinx.coroutines.test.runCurrent
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.Ignore
|
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.matrix.rustcomponents.sdk.TimelineDiff
|
import org.matrix.rustcomponents.sdk.TimelineDiff
|
||||||
import uniffi.matrix_sdk.RoomPaginationStatus
|
import uniffi.matrix_sdk.RoomPaginationStatus
|
||||||
import org.matrix.rustcomponents.sdk.Timeline as InnerTimeline
|
import org.matrix.rustcomponents.sdk.Timeline as InnerTimeline
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
|
||||||
class RustTimelineTest {
|
class RustTimelineTest {
|
||||||
@Test
|
@Test
|
||||||
fun `ensure that the timeline emits new loading item when pagination does not bring new events`() = runTest {
|
fun `ensure that the timeline emits new loading item when pagination does not bring new events`() = runTest {
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,6 @@ import kotlinx.coroutines.test.StandardTestDispatcher
|
||||||
import kotlinx.coroutines.test.TestScope
|
import kotlinx.coroutines.test.TestScope
|
||||||
import kotlinx.coroutines.test.runCurrent
|
import kotlinx.coroutines.test.runCurrent
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.Ignore
|
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.matrix.rustcomponents.sdk.Timeline
|
import org.matrix.rustcomponents.sdk.Timeline
|
||||||
import org.matrix.rustcomponents.sdk.TimelineDiff
|
import org.matrix.rustcomponents.sdk.TimelineDiff
|
||||||
|
|
@ -28,8 +27,7 @@ import uniffi.matrix_sdk_ui.EventItemOrigin
|
||||||
|
|
||||||
@OptIn(ExperimentalCoroutinesApi::class)
|
@OptIn(ExperimentalCoroutinesApi::class)
|
||||||
class TimelineItemsSubscriberTest {
|
class TimelineItemsSubscriberTest {
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `when timeline emits an empty list of items, the flow must emits an empty list`() = runTest {
|
fun `when timeline emits an empty list of items, the flow must emits an empty list`() = runTest {
|
||||||
val timelineItems: MutableSharedFlow<List<MatrixTimelineItem>> =
|
val timelineItems: MutableSharedFlow<List<MatrixTimelineItem>> =
|
||||||
MutableSharedFlow(replay = 1, extraBufferCapacity = Int.MAX_VALUE)
|
MutableSharedFlow(replay = 1, extraBufferCapacity = Int.MAX_VALUE)
|
||||||
|
|
@ -52,8 +50,7 @@ class TimelineItemsSubscriberTest {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `when timeline emits a non empty list of items, the flow must emits a non empty list`() = runTest {
|
fun `when timeline emits a non empty list of items, the flow must emits a non empty list`() = runTest {
|
||||||
val timelineItems: MutableSharedFlow<List<MatrixTimelineItem>> =
|
val timelineItems: MutableSharedFlow<List<MatrixTimelineItem>> =
|
||||||
MutableSharedFlow(replay = 1, extraBufferCapacity = Int.MAX_VALUE)
|
MutableSharedFlow(replay = 1, extraBufferCapacity = Int.MAX_VALUE)
|
||||||
|
|
@ -76,8 +73,7 @@ class TimelineItemsSubscriberTest {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `when timeline emits an item with SYNC origin`() = runTest {
|
fun `when timeline emits an item with SYNC origin`() = runTest {
|
||||||
val timelineItems: MutableSharedFlow<List<MatrixTimelineItem>> =
|
val timelineItems: MutableSharedFlow<List<MatrixTimelineItem>> =
|
||||||
MutableSharedFlow(replay = 1, extraBufferCapacity = Int.MAX_VALUE)
|
MutableSharedFlow(replay = 1, extraBufferCapacity = Int.MAX_VALUE)
|
||||||
|
|
@ -108,8 +104,7 @@ class TimelineItemsSubscriberTest {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore("JNA direct mapping has broken unit tests with FFI fakes")
|
@Test
|
||||||
@Test
|
|
||||||
fun `multiple subscriptions does not have side effect`() = runTest {
|
fun `multiple subscriptions does not have side effect`() = runTest {
|
||||||
val timelineItemsSubscriber = createTimelineItemsSubscriber()
|
val timelineItemsSubscriber = createTimelineItemsSubscriber()
|
||||||
timelineItemsSubscriber.subscribeIfNeeded()
|
timelineItemsSubscriber.subscribeIfNeeded()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue