Merge pull request #2900 from element-hq/feature/bma/fakeClassesQuality
Fake classes name quality
This commit is contained in:
commit
e632168c34
34 changed files with 173 additions and 154 deletions
|
|
@ -20,21 +20,21 @@ import com.bumble.appyx.core.state.MutableSavedStateMapImpl
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.libraries.matrix.test.A_SESSION_ID
|
import io.element.android.libraries.matrix.test.A_SESSION_ID
|
||||||
import io.element.android.libraries.matrix.test.FakeMatrixClient
|
import io.element.android.libraries.matrix.test.FakeMatrixClient
|
||||||
import io.element.android.libraries.matrix.test.auth.FakeAuthenticationService
|
import io.element.android.libraries.matrix.test.auth.FakeMatrixAuthenticationService
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
|
||||||
class MatrixClientsHolderTest {
|
class MatrixClientsHolderTest {
|
||||||
@Test
|
@Test
|
||||||
fun `test getOrNull`() {
|
fun `test getOrNull`() {
|
||||||
val fakeAuthenticationService = FakeAuthenticationService()
|
val fakeAuthenticationService = FakeMatrixAuthenticationService()
|
||||||
val matrixClientsHolder = MatrixClientsHolder(fakeAuthenticationService)
|
val matrixClientsHolder = MatrixClientsHolder(fakeAuthenticationService)
|
||||||
assertThat(matrixClientsHolder.getOrNull(A_SESSION_ID)).isNull()
|
assertThat(matrixClientsHolder.getOrNull(A_SESSION_ID)).isNull()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `test getOrRestore`() = runTest {
|
fun `test getOrRestore`() = runTest {
|
||||||
val fakeAuthenticationService = FakeAuthenticationService()
|
val fakeAuthenticationService = FakeMatrixAuthenticationService()
|
||||||
val matrixClientsHolder = MatrixClientsHolder(fakeAuthenticationService)
|
val matrixClientsHolder = MatrixClientsHolder(fakeAuthenticationService)
|
||||||
val fakeMatrixClient = FakeMatrixClient()
|
val fakeMatrixClient = FakeMatrixClient()
|
||||||
fakeAuthenticationService.givenMatrixClient(fakeMatrixClient)
|
fakeAuthenticationService.givenMatrixClient(fakeMatrixClient)
|
||||||
|
|
@ -47,7 +47,7 @@ class MatrixClientsHolderTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `test remove`() = runTest {
|
fun `test remove`() = runTest {
|
||||||
val fakeAuthenticationService = FakeAuthenticationService()
|
val fakeAuthenticationService = FakeMatrixAuthenticationService()
|
||||||
val matrixClientsHolder = MatrixClientsHolder(fakeAuthenticationService)
|
val matrixClientsHolder = MatrixClientsHolder(fakeAuthenticationService)
|
||||||
val fakeMatrixClient = FakeMatrixClient()
|
val fakeMatrixClient = FakeMatrixClient()
|
||||||
fakeAuthenticationService.givenMatrixClient(fakeMatrixClient)
|
fakeAuthenticationService.givenMatrixClient(fakeMatrixClient)
|
||||||
|
|
@ -60,7 +60,7 @@ class MatrixClientsHolderTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `test remove all`() = runTest {
|
fun `test remove all`() = runTest {
|
||||||
val fakeAuthenticationService = FakeAuthenticationService()
|
val fakeAuthenticationService = FakeMatrixAuthenticationService()
|
||||||
val matrixClientsHolder = MatrixClientsHolder(fakeAuthenticationService)
|
val matrixClientsHolder = MatrixClientsHolder(fakeAuthenticationService)
|
||||||
val fakeMatrixClient = FakeMatrixClient()
|
val fakeMatrixClient = FakeMatrixClient()
|
||||||
fakeAuthenticationService.givenMatrixClient(fakeMatrixClient)
|
fakeAuthenticationService.givenMatrixClient(fakeMatrixClient)
|
||||||
|
|
@ -73,7 +73,7 @@ class MatrixClientsHolderTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `test save and restore`() = runTest {
|
fun `test save and restore`() = runTest {
|
||||||
val fakeAuthenticationService = FakeAuthenticationService()
|
val fakeAuthenticationService = FakeMatrixAuthenticationService()
|
||||||
val matrixClientsHolder = MatrixClientsHolder(fakeAuthenticationService)
|
val matrixClientsHolder = MatrixClientsHolder(fakeAuthenticationService)
|
||||||
val fakeMatrixClient = FakeMatrixClient()
|
val fakeMatrixClient = FakeMatrixClient()
|
||||||
fakeAuthenticationService.givenMatrixClient(fakeMatrixClient)
|
fakeAuthenticationService.givenMatrixClient(fakeMatrixClient)
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ import io.element.android.libraries.matrix.test.A_ROOM_ID
|
||||||
import io.element.android.libraries.matrix.test.A_SESSION_ID
|
import io.element.android.libraries.matrix.test.A_SESSION_ID
|
||||||
import io.element.android.libraries.matrix.test.FakeMatrixClient
|
import io.element.android.libraries.matrix.test.FakeMatrixClient
|
||||||
import io.element.android.libraries.matrix.test.FakeMatrixClientProvider
|
import io.element.android.libraries.matrix.test.FakeMatrixClientProvider
|
||||||
import io.element.android.libraries.matrix.test.widget.FakeWidgetDriver
|
import io.element.android.libraries.matrix.test.widget.FakeMatrixWidgetDriver
|
||||||
import io.element.android.libraries.network.useragent.UserAgentProvider
|
import io.element.android.libraries.network.useragent.UserAgentProvider
|
||||||
import io.element.android.services.toolbox.api.systemclock.SystemClock
|
import io.element.android.services.toolbox.api.systemclock.SystemClock
|
||||||
import io.element.android.tests.testutils.WarmUpRule
|
import io.element.android.tests.testutils.WarmUpRule
|
||||||
|
|
@ -68,7 +68,7 @@ class CallScreenPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `present - with CallType RoomCall loads URL and runs WidgetDriver`() = runTest {
|
fun `present - with CallType RoomCall loads URL and runs WidgetDriver`() = runTest {
|
||||||
val widgetDriver = FakeWidgetDriver()
|
val widgetDriver = FakeMatrixWidgetDriver()
|
||||||
val widgetProvider = FakeCallWidgetProvider(widgetDriver)
|
val widgetProvider = FakeCallWidgetProvider(widgetDriver)
|
||||||
val presenter = createCallScreenPresenter(
|
val presenter = createCallScreenPresenter(
|
||||||
callType = CallType.RoomCall(A_SESSION_ID, A_ROOM_ID),
|
callType = CallType.RoomCall(A_SESSION_ID, A_ROOM_ID),
|
||||||
|
|
@ -91,7 +91,7 @@ class CallScreenPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `present - set message interceptor, send and receive messages`() = runTest {
|
fun `present - set message interceptor, send and receive messages`() = runTest {
|
||||||
val widgetDriver = FakeWidgetDriver()
|
val widgetDriver = FakeMatrixWidgetDriver()
|
||||||
val presenter = createCallScreenPresenter(
|
val presenter = createCallScreenPresenter(
|
||||||
callType = CallType.RoomCall(A_SESSION_ID, A_ROOM_ID),
|
callType = CallType.RoomCall(A_SESSION_ID, A_ROOM_ID),
|
||||||
widgetDriver = widgetDriver,
|
widgetDriver = widgetDriver,
|
||||||
|
|
@ -119,7 +119,7 @@ class CallScreenPresenterTest {
|
||||||
@Test
|
@Test
|
||||||
fun `present - hang up event closes the screen and stops the widget driver`() = runTest(UnconfinedTestDispatcher()) {
|
fun `present - hang up event closes the screen and stops the widget driver`() = runTest(UnconfinedTestDispatcher()) {
|
||||||
val navigator = FakeCallScreenNavigator()
|
val navigator = FakeCallScreenNavigator()
|
||||||
val widgetDriver = FakeWidgetDriver()
|
val widgetDriver = FakeMatrixWidgetDriver()
|
||||||
val presenter = createCallScreenPresenter(
|
val presenter = createCallScreenPresenter(
|
||||||
callType = CallType.RoomCall(A_SESSION_ID, A_ROOM_ID),
|
callType = CallType.RoomCall(A_SESSION_ID, A_ROOM_ID),
|
||||||
widgetDriver = widgetDriver,
|
widgetDriver = widgetDriver,
|
||||||
|
|
@ -149,7 +149,7 @@ class CallScreenPresenterTest {
|
||||||
@Test
|
@Test
|
||||||
fun `present - a received hang up message closes the screen and stops the widget driver`() = runTest(UnconfinedTestDispatcher()) {
|
fun `present - a received hang up message closes the screen and stops the widget driver`() = runTest(UnconfinedTestDispatcher()) {
|
||||||
val navigator = FakeCallScreenNavigator()
|
val navigator = FakeCallScreenNavigator()
|
||||||
val widgetDriver = FakeWidgetDriver()
|
val widgetDriver = FakeMatrixWidgetDriver()
|
||||||
val presenter = createCallScreenPresenter(
|
val presenter = createCallScreenPresenter(
|
||||||
callType = CallType.RoomCall(A_SESSION_ID, A_ROOM_ID),
|
callType = CallType.RoomCall(A_SESSION_ID, A_ROOM_ID),
|
||||||
widgetDriver = widgetDriver,
|
widgetDriver = widgetDriver,
|
||||||
|
|
@ -178,7 +178,7 @@ class CallScreenPresenterTest {
|
||||||
@Test
|
@Test
|
||||||
fun `present - automatically starts the Matrix client sync when on RoomCall`() = runTest {
|
fun `present - automatically starts the Matrix client sync when on RoomCall`() = runTest {
|
||||||
val navigator = FakeCallScreenNavigator()
|
val navigator = FakeCallScreenNavigator()
|
||||||
val widgetDriver = FakeWidgetDriver()
|
val widgetDriver = FakeMatrixWidgetDriver()
|
||||||
val matrixClient = FakeMatrixClient()
|
val matrixClient = FakeMatrixClient()
|
||||||
val presenter = createCallScreenPresenter(
|
val presenter = createCallScreenPresenter(
|
||||||
callType = CallType.RoomCall(A_SESSION_ID, A_ROOM_ID),
|
callType = CallType.RoomCall(A_SESSION_ID, A_ROOM_ID),
|
||||||
|
|
@ -201,7 +201,7 @@ class CallScreenPresenterTest {
|
||||||
@Test
|
@Test
|
||||||
fun `present - automatically stops the Matrix client sync on dispose`() = runTest {
|
fun `present - automatically stops the Matrix client sync on dispose`() = runTest {
|
||||||
val navigator = FakeCallScreenNavigator()
|
val navigator = FakeCallScreenNavigator()
|
||||||
val widgetDriver = FakeWidgetDriver()
|
val widgetDriver = FakeMatrixWidgetDriver()
|
||||||
val matrixClient = FakeMatrixClient()
|
val matrixClient = FakeMatrixClient()
|
||||||
val presenter = createCallScreenPresenter(
|
val presenter = createCallScreenPresenter(
|
||||||
callType = CallType.RoomCall(A_SESSION_ID, A_ROOM_ID),
|
callType = CallType.RoomCall(A_SESSION_ID, A_ROOM_ID),
|
||||||
|
|
@ -229,7 +229,7 @@ class CallScreenPresenterTest {
|
||||||
private fun TestScope.createCallScreenPresenter(
|
private fun TestScope.createCallScreenPresenter(
|
||||||
callType: CallType,
|
callType: CallType,
|
||||||
navigator: CallScreenNavigator = FakeCallScreenNavigator(),
|
navigator: CallScreenNavigator = FakeCallScreenNavigator(),
|
||||||
widgetDriver: FakeWidgetDriver = FakeWidgetDriver(),
|
widgetDriver: FakeMatrixWidgetDriver = FakeMatrixWidgetDriver(),
|
||||||
widgetProvider: FakeCallWidgetProvider = FakeCallWidgetProvider(widgetDriver),
|
widgetProvider: FakeCallWidgetProvider = FakeCallWidgetProvider(widgetDriver),
|
||||||
dispatchers: CoroutineDispatchers = testCoroutineDispatchers(),
|
dispatchers: CoroutineDispatchers = testCoroutineDispatchers(),
|
||||||
matrixClientsProvider: FakeMatrixClientProvider = FakeMatrixClientProvider(),
|
matrixClientsProvider: FakeMatrixClientProvider = FakeMatrixClientProvider(),
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ import io.element.android.libraries.matrix.test.FakeMatrixClient
|
||||||
import io.element.android.libraries.matrix.test.FakeMatrixClientProvider
|
import io.element.android.libraries.matrix.test.FakeMatrixClientProvider
|
||||||
import io.element.android.libraries.matrix.test.room.FakeMatrixRoom
|
import io.element.android.libraries.matrix.test.room.FakeMatrixRoom
|
||||||
import io.element.android.libraries.matrix.test.widget.FakeCallWidgetSettingsProvider
|
import io.element.android.libraries.matrix.test.widget.FakeCallWidgetSettingsProvider
|
||||||
import io.element.android.libraries.matrix.test.widget.FakeWidgetDriver
|
import io.element.android.libraries.matrix.test.widget.FakeMatrixWidgetDriver
|
||||||
import io.element.android.libraries.preferences.test.InMemoryAppPreferencesStore
|
import io.element.android.libraries.preferences.test.InMemoryAppPreferencesStore
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
|
@ -76,7 +76,7 @@ class DefaultCallWidgetProviderTest {
|
||||||
fun `getWidget - returns a widget driver when all steps are successful`() = runTest {
|
fun `getWidget - returns a widget driver when all steps are successful`() = runTest {
|
||||||
val room = FakeMatrixRoom().apply {
|
val room = FakeMatrixRoom().apply {
|
||||||
givenGenerateWidgetWebViewUrlResult(Result.success("url"))
|
givenGenerateWidgetWebViewUrlResult(Result.success("url"))
|
||||||
givenGetWidgetDriverResult(Result.success(FakeWidgetDriver()))
|
givenGetWidgetDriverResult(Result.success(FakeMatrixWidgetDriver()))
|
||||||
}
|
}
|
||||||
val client = FakeMatrixClient().apply {
|
val client = FakeMatrixClient().apply {
|
||||||
givenGetRoomResult(A_ROOM_ID, room)
|
givenGetRoomResult(A_ROOM_ID, room)
|
||||||
|
|
@ -89,7 +89,7 @@ class DefaultCallWidgetProviderTest {
|
||||||
fun `getWidget - will use a custom base url if it exists`() = runTest {
|
fun `getWidget - will use a custom base url if it exists`() = runTest {
|
||||||
val room = FakeMatrixRoom().apply {
|
val room = FakeMatrixRoom().apply {
|
||||||
givenGenerateWidgetWebViewUrlResult(Result.success("url"))
|
givenGenerateWidgetWebViewUrlResult(Result.success("url"))
|
||||||
givenGetWidgetDriverResult(Result.success(FakeWidgetDriver()))
|
givenGetWidgetDriverResult(Result.success(FakeMatrixWidgetDriver()))
|
||||||
}
|
}
|
||||||
val client = FakeMatrixClient().apply {
|
val client = FakeMatrixClient().apply {
|
||||||
givenGetRoomResult(A_ROOM_ID, room)
|
givenGetRoomResult(A_ROOM_ID, room)
|
||||||
|
|
|
||||||
|
|
@ -19,10 +19,10 @@ package io.element.android.features.call.utils
|
||||||
import io.element.android.libraries.matrix.api.core.RoomId
|
import io.element.android.libraries.matrix.api.core.RoomId
|
||||||
import io.element.android.libraries.matrix.api.core.SessionId
|
import io.element.android.libraries.matrix.api.core.SessionId
|
||||||
import io.element.android.libraries.matrix.api.widget.MatrixWidgetDriver
|
import io.element.android.libraries.matrix.api.widget.MatrixWidgetDriver
|
||||||
import io.element.android.libraries.matrix.test.widget.FakeWidgetDriver
|
import io.element.android.libraries.matrix.test.widget.FakeMatrixWidgetDriver
|
||||||
|
|
||||||
class FakeCallWidgetProvider(
|
class FakeCallWidgetProvider(
|
||||||
private val widgetDriver: FakeWidgetDriver = FakeWidgetDriver(),
|
private val widgetDriver: FakeMatrixWidgetDriver = FakeMatrixWidgetDriver(),
|
||||||
private val url: String = "https://call.element.io",
|
private val url: String = "https://call.element.io",
|
||||||
) : CallWidgetProvider {
|
) : CallWidgetProvider {
|
||||||
var getWidgetCalled = false
|
var getWidgetCalled = false
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
package io.element.android.features.ftue.impl.welcome.state
|
package io.element.android.features.ftue.impl.welcome.state
|
||||||
|
|
||||||
class FakeWelcomeState : WelcomeScreenState {
|
class FakeWelcomeScreenState : WelcomeScreenState {
|
||||||
private var isWelcomeScreenNeeded = true
|
private var isWelcomeScreenNeeded = true
|
||||||
|
|
||||||
override fun isWelcomeScreenNeeded(): Boolean {
|
override fun isWelcomeScreenNeeded(): Boolean {
|
||||||
|
|
@ -18,7 +18,7 @@ package io.element.android.features.location.impl.common.permissions
|
||||||
|
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
|
|
||||||
class PermissionsPresenterFake : PermissionsPresenter {
|
class FakePermissionsPresenter : PermissionsPresenter {
|
||||||
val events = mutableListOf<PermissionsEvents>()
|
val events = mutableListOf<PermissionsEvents>()
|
||||||
|
|
||||||
private fun handleEvent(event: PermissionsEvents) {
|
private fun handleEvent(event: PermissionsEvents) {
|
||||||
|
|
@ -24,9 +24,9 @@ import im.vector.app.features.analytics.plan.Composer
|
||||||
import io.element.android.features.location.api.Location
|
import io.element.android.features.location.api.Location
|
||||||
import io.element.android.features.location.impl.aPermissionsState
|
import io.element.android.features.location.impl.aPermissionsState
|
||||||
import io.element.android.features.location.impl.common.actions.FakeLocationActions
|
import io.element.android.features.location.impl.common.actions.FakeLocationActions
|
||||||
|
import io.element.android.features.location.impl.common.permissions.FakePermissionsPresenter
|
||||||
import io.element.android.features.location.impl.common.permissions.PermissionsEvents
|
import io.element.android.features.location.impl.common.permissions.PermissionsEvents
|
||||||
import io.element.android.features.location.impl.common.permissions.PermissionsPresenter
|
import io.element.android.features.location.impl.common.permissions.PermissionsPresenter
|
||||||
import io.element.android.features.location.impl.common.permissions.PermissionsPresenterFake
|
|
||||||
import io.element.android.features.location.impl.common.permissions.PermissionsState
|
import io.element.android.features.location.impl.common.permissions.PermissionsState
|
||||||
import io.element.android.features.messages.test.FakeMessageComposerContext
|
import io.element.android.features.messages.test.FakeMessageComposerContext
|
||||||
import io.element.android.libraries.matrix.api.room.location.AssetType
|
import io.element.android.libraries.matrix.api.room.location.AssetType
|
||||||
|
|
@ -45,7 +45,7 @@ class SendLocationPresenterTest {
|
||||||
@get:Rule
|
@get:Rule
|
||||||
val warmUpRule = WarmUpRule()
|
val warmUpRule = WarmUpRule()
|
||||||
|
|
||||||
private val permissionsPresenterFake = PermissionsPresenterFake()
|
private val fakePermissionsPresenter = FakePermissionsPresenter()
|
||||||
private val fakeMatrixRoom = FakeMatrixRoom()
|
private val fakeMatrixRoom = FakeMatrixRoom()
|
||||||
private val fakeAnalyticsService = FakeAnalyticsService()
|
private val fakeAnalyticsService = FakeAnalyticsService()
|
||||||
private val fakeMessageComposerContext = FakeMessageComposerContext()
|
private val fakeMessageComposerContext = FakeMessageComposerContext()
|
||||||
|
|
@ -53,7 +53,7 @@ class SendLocationPresenterTest {
|
||||||
private val fakeBuildMeta = aBuildMeta(applicationName = "app name")
|
private val fakeBuildMeta = aBuildMeta(applicationName = "app name")
|
||||||
private val sendLocationPresenter: SendLocationPresenter = SendLocationPresenter(
|
private val sendLocationPresenter: SendLocationPresenter = SendLocationPresenter(
|
||||||
permissionsPresenterFactory = object : PermissionsPresenter.Factory {
|
permissionsPresenterFactory = object : PermissionsPresenter.Factory {
|
||||||
override fun create(permissions: List<String>): PermissionsPresenter = permissionsPresenterFake
|
override fun create(permissions: List<String>): PermissionsPresenter = fakePermissionsPresenter
|
||||||
},
|
},
|
||||||
room = fakeMatrixRoom,
|
room = fakeMatrixRoom,
|
||||||
analyticsService = fakeAnalyticsService,
|
analyticsService = fakeAnalyticsService,
|
||||||
|
|
@ -64,7 +64,7 @@ class SendLocationPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `initial state with permissions granted`() = runTest {
|
fun `initial state with permissions granted`() = runTest {
|
||||||
permissionsPresenterFake.givenState(
|
fakePermissionsPresenter.givenState(
|
||||||
aPermissionsState(
|
aPermissionsState(
|
||||||
permissions = PermissionsState.Permissions.AllGranted,
|
permissions = PermissionsState.Permissions.AllGranted,
|
||||||
shouldShowRationale = false,
|
shouldShowRationale = false,
|
||||||
|
|
@ -90,7 +90,7 @@ class SendLocationPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `initial state with permissions partially granted`() = runTest {
|
fun `initial state with permissions partially granted`() = runTest {
|
||||||
permissionsPresenterFake.givenState(
|
fakePermissionsPresenter.givenState(
|
||||||
aPermissionsState(
|
aPermissionsState(
|
||||||
permissions = PermissionsState.Permissions.SomeGranted,
|
permissions = PermissionsState.Permissions.SomeGranted,
|
||||||
shouldShowRationale = false,
|
shouldShowRationale = false,
|
||||||
|
|
@ -116,7 +116,7 @@ class SendLocationPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `initial state with permissions denied`() = runTest {
|
fun `initial state with permissions denied`() = runTest {
|
||||||
permissionsPresenterFake.givenState(
|
fakePermissionsPresenter.givenState(
|
||||||
aPermissionsState(
|
aPermissionsState(
|
||||||
permissions = PermissionsState.Permissions.NoneGranted,
|
permissions = PermissionsState.Permissions.NoneGranted,
|
||||||
shouldShowRationale = false,
|
shouldShowRationale = false,
|
||||||
|
|
@ -142,7 +142,7 @@ class SendLocationPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `initial state with permissions denied once`() = runTest {
|
fun `initial state with permissions denied once`() = runTest {
|
||||||
permissionsPresenterFake.givenState(
|
fakePermissionsPresenter.givenState(
|
||||||
aPermissionsState(
|
aPermissionsState(
|
||||||
permissions = PermissionsState.Permissions.NoneGranted,
|
permissions = PermissionsState.Permissions.NoneGranted,
|
||||||
shouldShowRationale = true,
|
shouldShowRationale = true,
|
||||||
|
|
@ -168,7 +168,7 @@ class SendLocationPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `rationale dialog dismiss`() = runTest {
|
fun `rationale dialog dismiss`() = runTest {
|
||||||
permissionsPresenterFake.givenState(
|
fakePermissionsPresenter.givenState(
|
||||||
aPermissionsState(
|
aPermissionsState(
|
||||||
permissions = PermissionsState.Permissions.NoneGranted,
|
permissions = PermissionsState.Permissions.NoneGranted,
|
||||||
shouldShowRationale = true,
|
shouldShowRationale = true,
|
||||||
|
|
@ -199,7 +199,7 @@ class SendLocationPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `rationale dialog continue`() = runTest {
|
fun `rationale dialog continue`() = runTest {
|
||||||
permissionsPresenterFake.givenState(
|
fakePermissionsPresenter.givenState(
|
||||||
aPermissionsState(
|
aPermissionsState(
|
||||||
permissions = PermissionsState.Permissions.NoneGranted,
|
permissions = PermissionsState.Permissions.NoneGranted,
|
||||||
shouldShowRationale = true,
|
shouldShowRationale = true,
|
||||||
|
|
@ -221,13 +221,13 @@ class SendLocationPresenterTest {
|
||||||
|
|
||||||
// Continue the dialog sends permission request to the permissions presenter
|
// Continue the dialog sends permission request to the permissions presenter
|
||||||
myLocationState.eventSink(SendLocationEvents.RequestPermissions)
|
myLocationState.eventSink(SendLocationEvents.RequestPermissions)
|
||||||
assertThat(permissionsPresenterFake.events.last()).isEqualTo(PermissionsEvents.RequestPermissions)
|
assertThat(fakePermissionsPresenter.events.last()).isEqualTo(PermissionsEvents.RequestPermissions)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `permission denied dialog dismiss`() = runTest {
|
fun `permission denied dialog dismiss`() = runTest {
|
||||||
permissionsPresenterFake.givenState(
|
fakePermissionsPresenter.givenState(
|
||||||
aPermissionsState(
|
aPermissionsState(
|
||||||
permissions = PermissionsState.Permissions.NoneGranted,
|
permissions = PermissionsState.Permissions.NoneGranted,
|
||||||
shouldShowRationale = false,
|
shouldShowRationale = false,
|
||||||
|
|
@ -258,7 +258,7 @@ class SendLocationPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `share sender location`() = runTest {
|
fun `share sender location`() = runTest {
|
||||||
permissionsPresenterFake.givenState(
|
fakePermissionsPresenter.givenState(
|
||||||
aPermissionsState(
|
aPermissionsState(
|
||||||
permissions = PermissionsState.Permissions.AllGranted,
|
permissions = PermissionsState.Permissions.AllGranted,
|
||||||
shouldShowRationale = false,
|
shouldShowRationale = false,
|
||||||
|
|
@ -314,7 +314,7 @@ class SendLocationPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `share pin location`() = runTest {
|
fun `share pin location`() = runTest {
|
||||||
permissionsPresenterFake.givenState(
|
fakePermissionsPresenter.givenState(
|
||||||
aPermissionsState(
|
aPermissionsState(
|
||||||
permissions = PermissionsState.Permissions.NoneGranted,
|
permissions = PermissionsState.Permissions.NoneGranted,
|
||||||
shouldShowRationale = false,
|
shouldShowRationale = false,
|
||||||
|
|
@ -370,7 +370,7 @@ class SendLocationPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `composer context passes through analytics`() = runTest {
|
fun `composer context passes through analytics`() = runTest {
|
||||||
permissionsPresenterFake.givenState(
|
fakePermissionsPresenter.givenState(
|
||||||
aPermissionsState(
|
aPermissionsState(
|
||||||
permissions = PermissionsState.Permissions.NoneGranted,
|
permissions = PermissionsState.Permissions.NoneGranted,
|
||||||
shouldShowRationale = false,
|
shouldShowRationale = false,
|
||||||
|
|
@ -418,7 +418,7 @@ class SendLocationPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `open settings activity`() = runTest {
|
fun `open settings activity`() = runTest {
|
||||||
permissionsPresenterFake.givenState(
|
fakePermissionsPresenter.givenState(
|
||||||
aPermissionsState(
|
aPermissionsState(
|
||||||
permissions = PermissionsState.Permissions.NoneGranted,
|
permissions = PermissionsState.Permissions.NoneGranted,
|
||||||
shouldShowRationale = false,
|
shouldShowRationale = false,
|
||||||
|
|
|
||||||
|
|
@ -23,9 +23,9 @@ import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.features.location.api.Location
|
import io.element.android.features.location.api.Location
|
||||||
import io.element.android.features.location.impl.aPermissionsState
|
import io.element.android.features.location.impl.aPermissionsState
|
||||||
import io.element.android.features.location.impl.common.actions.FakeLocationActions
|
import io.element.android.features.location.impl.common.actions.FakeLocationActions
|
||||||
|
import io.element.android.features.location.impl.common.permissions.FakePermissionsPresenter
|
||||||
import io.element.android.features.location.impl.common.permissions.PermissionsEvents
|
import io.element.android.features.location.impl.common.permissions.PermissionsEvents
|
||||||
import io.element.android.features.location.impl.common.permissions.PermissionsPresenter
|
import io.element.android.features.location.impl.common.permissions.PermissionsPresenter
|
||||||
import io.element.android.features.location.impl.common.permissions.PermissionsPresenterFake
|
|
||||||
import io.element.android.features.location.impl.common.permissions.PermissionsState
|
import io.element.android.features.location.impl.common.permissions.PermissionsState
|
||||||
import io.element.android.libraries.matrix.test.core.aBuildMeta
|
import io.element.android.libraries.matrix.test.core.aBuildMeta
|
||||||
import io.element.android.tests.testutils.WarmUpRule
|
import io.element.android.tests.testutils.WarmUpRule
|
||||||
|
|
@ -38,13 +38,13 @@ class ShowLocationPresenterTest {
|
||||||
@get:Rule
|
@get:Rule
|
||||||
val warmUpRule = WarmUpRule()
|
val warmUpRule = WarmUpRule()
|
||||||
|
|
||||||
private val permissionsPresenterFake = PermissionsPresenterFake()
|
private val fakePermissionsPresenter = FakePermissionsPresenter()
|
||||||
private val fakeLocationActions = FakeLocationActions()
|
private val fakeLocationActions = FakeLocationActions()
|
||||||
private val fakeBuildMeta = aBuildMeta(applicationName = "app name")
|
private val fakeBuildMeta = aBuildMeta(applicationName = "app name")
|
||||||
private val location = Location(1.23, 4.56, 7.8f)
|
private val location = Location(1.23, 4.56, 7.8f)
|
||||||
private val presenter = ShowLocationPresenter(
|
private val presenter = ShowLocationPresenter(
|
||||||
permissionsPresenterFactory = object : PermissionsPresenter.Factory {
|
permissionsPresenterFactory = object : PermissionsPresenter.Factory {
|
||||||
override fun create(permissions: List<String>): PermissionsPresenter = permissionsPresenterFake
|
override fun create(permissions: List<String>): PermissionsPresenter = fakePermissionsPresenter
|
||||||
},
|
},
|
||||||
fakeLocationActions,
|
fakeLocationActions,
|
||||||
fakeBuildMeta,
|
fakeBuildMeta,
|
||||||
|
|
@ -54,7 +54,7 @@ class ShowLocationPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `emits initial state with no location permission`() = runTest {
|
fun `emits initial state with no location permission`() = runTest {
|
||||||
permissionsPresenterFake.givenState(
|
fakePermissionsPresenter.givenState(
|
||||||
aPermissionsState(
|
aPermissionsState(
|
||||||
permissions = PermissionsState.Permissions.NoneGranted,
|
permissions = PermissionsState.Permissions.NoneGranted,
|
||||||
shouldShowRationale = false,
|
shouldShowRationale = false,
|
||||||
|
|
@ -74,7 +74,7 @@ class ShowLocationPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `emits initial state location permission denied once`() = runTest {
|
fun `emits initial state location permission denied once`() = runTest {
|
||||||
permissionsPresenterFake.givenState(
|
fakePermissionsPresenter.givenState(
|
||||||
aPermissionsState(
|
aPermissionsState(
|
||||||
permissions = PermissionsState.Permissions.NoneGranted,
|
permissions = PermissionsState.Permissions.NoneGranted,
|
||||||
shouldShowRationale = true,
|
shouldShowRationale = true,
|
||||||
|
|
@ -94,7 +94,7 @@ class ShowLocationPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `emits initial state with location permission`() = runTest {
|
fun `emits initial state with location permission`() = runTest {
|
||||||
permissionsPresenterFake.givenState(aPermissionsState(permissions = PermissionsState.Permissions.AllGranted))
|
fakePermissionsPresenter.givenState(aPermissionsState(permissions = PermissionsState.Permissions.AllGranted))
|
||||||
|
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
moleculeFlow(RecompositionMode.Immediate) {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
|
|
@ -109,7 +109,7 @@ class ShowLocationPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `emits initial state with partial location permission`() = runTest {
|
fun `emits initial state with partial location permission`() = runTest {
|
||||||
permissionsPresenterFake.givenState(aPermissionsState(permissions = PermissionsState.Permissions.SomeGranted))
|
fakePermissionsPresenter.givenState(aPermissionsState(permissions = PermissionsState.Permissions.SomeGranted))
|
||||||
|
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
moleculeFlow(RecompositionMode.Immediate) {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
|
|
@ -137,7 +137,7 @@ class ShowLocationPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `centers on user location`() = runTest {
|
fun `centers on user location`() = runTest {
|
||||||
permissionsPresenterFake.givenState(aPermissionsState(permissions = PermissionsState.Permissions.AllGranted))
|
fakePermissionsPresenter.givenState(aPermissionsState(permissions = PermissionsState.Permissions.AllGranted))
|
||||||
|
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
moleculeFlow(RecompositionMode.Immediate) {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
|
|
@ -165,7 +165,7 @@ class ShowLocationPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `rationale dialog dismiss`() = runTest {
|
fun `rationale dialog dismiss`() = runTest {
|
||||||
permissionsPresenterFake.givenState(
|
fakePermissionsPresenter.givenState(
|
||||||
aPermissionsState(
|
aPermissionsState(
|
||||||
permissions = PermissionsState.Permissions.NoneGranted,
|
permissions = PermissionsState.Permissions.NoneGranted,
|
||||||
shouldShowRationale = true,
|
shouldShowRationale = true,
|
||||||
|
|
@ -196,7 +196,7 @@ class ShowLocationPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `rationale dialog continue`() = runTest {
|
fun `rationale dialog continue`() = runTest {
|
||||||
permissionsPresenterFake.givenState(
|
fakePermissionsPresenter.givenState(
|
||||||
aPermissionsState(
|
aPermissionsState(
|
||||||
permissions = PermissionsState.Permissions.NoneGranted,
|
permissions = PermissionsState.Permissions.NoneGranted,
|
||||||
shouldShowRationale = true,
|
shouldShowRationale = true,
|
||||||
|
|
@ -218,13 +218,13 @@ class ShowLocationPresenterTest {
|
||||||
|
|
||||||
// Continue the dialog sends permission request to the permissions presenter
|
// Continue the dialog sends permission request to the permissions presenter
|
||||||
trackLocationState.eventSink(ShowLocationEvents.RequestPermissions)
|
trackLocationState.eventSink(ShowLocationEvents.RequestPermissions)
|
||||||
assertThat(permissionsPresenterFake.events.last()).isEqualTo(PermissionsEvents.RequestPermissions)
|
assertThat(fakePermissionsPresenter.events.last()).isEqualTo(PermissionsEvents.RequestPermissions)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `permission denied dialog dismiss`() = runTest {
|
fun `permission denied dialog dismiss`() = runTest {
|
||||||
permissionsPresenterFake.givenState(
|
fakePermissionsPresenter.givenState(
|
||||||
aPermissionsState(
|
aPermissionsState(
|
||||||
permissions = PermissionsState.Permissions.NoneGranted,
|
permissions = PermissionsState.Permissions.NoneGranted,
|
||||||
shouldShowRationale = false,
|
shouldShowRationale = false,
|
||||||
|
|
@ -255,7 +255,7 @@ class ShowLocationPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `open settings activity`() = runTest {
|
fun `open settings activity`() = runTest {
|
||||||
permissionsPresenterFake.givenState(
|
fakePermissionsPresenter.givenState(
|
||||||
aPermissionsState(
|
aPermissionsState(
|
||||||
permissions = PermissionsState.Permissions.NoneGranted,
|
permissions = PermissionsState.Permissions.NoneGranted,
|
||||||
shouldShowRationale = false,
|
shouldShowRationale = false,
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.features.lockscreen.impl.unlock.signout.DefaultSignOut
|
import io.element.android.features.lockscreen.impl.unlock.signout.DefaultSignOut
|
||||||
import io.element.android.libraries.matrix.test.FakeMatrixClient
|
import io.element.android.libraries.matrix.test.FakeMatrixClient
|
||||||
import io.element.android.libraries.matrix.test.FakeMatrixClientProvider
|
import io.element.android.libraries.matrix.test.FakeMatrixClientProvider
|
||||||
import io.element.android.libraries.matrix.test.auth.FakeAuthenticationService
|
import io.element.android.libraries.matrix.test.auth.FakeMatrixAuthenticationService
|
||||||
import io.element.android.tests.testutils.lambda.assert
|
import io.element.android.tests.testutils.lambda.assert
|
||||||
import io.element.android.tests.testutils.lambda.lambdaRecorder
|
import io.element.android.tests.testutils.lambda.lambdaRecorder
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
|
|
@ -28,7 +28,7 @@ import org.junit.Test
|
||||||
|
|
||||||
class DefaultSignOutTest {
|
class DefaultSignOutTest {
|
||||||
private val matrixClient = FakeMatrixClient()
|
private val matrixClient = FakeMatrixClient()
|
||||||
private val authenticationService = FakeAuthenticationService()
|
private val authenticationService = FakeMatrixAuthenticationService()
|
||||||
private val matrixClientProvider = FakeMatrixClientProvider(getClient = { Result.success(matrixClient) })
|
private val matrixClientProvider = FakeMatrixClientProvider(getClient = { Result.success(matrixClient) })
|
||||||
private val sut = DefaultSignOut(authenticationService, matrixClientProvider)
|
private val sut = DefaultSignOut(authenticationService, matrixClientProvider)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ import io.element.android.features.login.impl.accountprovider.AccountProviderDat
|
||||||
import io.element.android.libraries.architecture.AsyncData
|
import io.element.android.libraries.architecture.AsyncData
|
||||||
import io.element.android.libraries.matrix.test.A_HOMESERVER
|
import io.element.android.libraries.matrix.test.A_HOMESERVER
|
||||||
import io.element.android.libraries.matrix.test.A_HOMESERVER_URL
|
import io.element.android.libraries.matrix.test.A_HOMESERVER_URL
|
||||||
import io.element.android.libraries.matrix.test.auth.FakeAuthenticationService
|
import io.element.android.libraries.matrix.test.auth.FakeMatrixAuthenticationService
|
||||||
import io.element.android.tests.testutils.WarmUpRule
|
import io.element.android.tests.testutils.WarmUpRule
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.Rule
|
import org.junit.Rule
|
||||||
|
|
@ -38,7 +38,7 @@ class ChangeServerPresenterTest {
|
||||||
@Test
|
@Test
|
||||||
fun `present - initial state`() = runTest {
|
fun `present - initial state`() = runTest {
|
||||||
val presenter = ChangeServerPresenter(
|
val presenter = ChangeServerPresenter(
|
||||||
FakeAuthenticationService(),
|
FakeMatrixAuthenticationService(),
|
||||||
AccountProviderDataSource()
|
AccountProviderDataSource()
|
||||||
)
|
)
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
moleculeFlow(RecompositionMode.Immediate) {
|
||||||
|
|
@ -51,7 +51,7 @@ class ChangeServerPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `present - change server ok`() = runTest {
|
fun `present - change server ok`() = runTest {
|
||||||
val authenticationService = FakeAuthenticationService()
|
val authenticationService = FakeMatrixAuthenticationService()
|
||||||
val presenter = ChangeServerPresenter(
|
val presenter = ChangeServerPresenter(
|
||||||
authenticationService,
|
authenticationService,
|
||||||
AccountProviderDataSource()
|
AccountProviderDataSource()
|
||||||
|
|
@ -72,7 +72,7 @@ class ChangeServerPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `present - change server error`() = runTest {
|
fun `present - change server error`() = runTest {
|
||||||
val authenticationService = FakeAuthenticationService()
|
val authenticationService = FakeMatrixAuthenticationService()
|
||||||
val presenter = ChangeServerPresenter(
|
val presenter = ChangeServerPresenter(
|
||||||
authenticationService,
|
authenticationService,
|
||||||
AccountProviderDataSource()
|
AccountProviderDataSource()
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ import io.element.android.features.login.api.oidc.OidcAction
|
||||||
import io.element.android.libraries.architecture.AsyncAction
|
import io.element.android.libraries.architecture.AsyncAction
|
||||||
import io.element.android.libraries.matrix.test.A_THROWABLE
|
import io.element.android.libraries.matrix.test.A_THROWABLE
|
||||||
import io.element.android.libraries.matrix.test.auth.A_OIDC_DATA
|
import io.element.android.libraries.matrix.test.auth.A_OIDC_DATA
|
||||||
import io.element.android.libraries.matrix.test.auth.FakeAuthenticationService
|
import io.element.android.libraries.matrix.test.auth.FakeMatrixAuthenticationService
|
||||||
import io.element.android.tests.testutils.WarmUpRule
|
import io.element.android.tests.testutils.WarmUpRule
|
||||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
|
|
@ -41,7 +41,7 @@ class OidcPresenterTest {
|
||||||
fun `present - initial state`() = runTest {
|
fun `present - initial state`() = runTest {
|
||||||
val presenter = OidcPresenter(
|
val presenter = OidcPresenter(
|
||||||
A_OIDC_DATA,
|
A_OIDC_DATA,
|
||||||
FakeAuthenticationService(),
|
FakeMatrixAuthenticationService(),
|
||||||
)
|
)
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
moleculeFlow(RecompositionMode.Immediate) {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
|
|
@ -56,7 +56,7 @@ class OidcPresenterTest {
|
||||||
fun `present - go back`() = runTest {
|
fun `present - go back`() = runTest {
|
||||||
val presenter = OidcPresenter(
|
val presenter = OidcPresenter(
|
||||||
A_OIDC_DATA,
|
A_OIDC_DATA,
|
||||||
FakeAuthenticationService(),
|
FakeMatrixAuthenticationService(),
|
||||||
)
|
)
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
moleculeFlow(RecompositionMode.Immediate) {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
|
|
@ -72,7 +72,7 @@ class OidcPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `present - go back with failure`() = runTest {
|
fun `present - go back with failure`() = runTest {
|
||||||
val authenticationService = FakeAuthenticationService()
|
val authenticationService = FakeMatrixAuthenticationService()
|
||||||
val presenter = OidcPresenter(
|
val presenter = OidcPresenter(
|
||||||
A_OIDC_DATA,
|
A_OIDC_DATA,
|
||||||
authenticationService,
|
authenticationService,
|
||||||
|
|
@ -95,7 +95,7 @@ class OidcPresenterTest {
|
||||||
fun `present - user cancels from webview`() = runTest {
|
fun `present - user cancels from webview`() = runTest {
|
||||||
val presenter = OidcPresenter(
|
val presenter = OidcPresenter(
|
||||||
A_OIDC_DATA,
|
A_OIDC_DATA,
|
||||||
FakeAuthenticationService(),
|
FakeMatrixAuthenticationService(),
|
||||||
)
|
)
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
moleculeFlow(RecompositionMode.Immediate) {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
|
|
@ -113,7 +113,7 @@ class OidcPresenterTest {
|
||||||
fun `present - login success`() = runTest {
|
fun `present - login success`() = runTest {
|
||||||
val presenter = OidcPresenter(
|
val presenter = OidcPresenter(
|
||||||
A_OIDC_DATA,
|
A_OIDC_DATA,
|
||||||
FakeAuthenticationService(),
|
FakeMatrixAuthenticationService(),
|
||||||
)
|
)
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
moleculeFlow(RecompositionMode.Immediate) {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
|
|
@ -128,7 +128,7 @@ class OidcPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `present - login error`() = runTest {
|
fun `present - login error`() = runTest {
|
||||||
val authenticationService = FakeAuthenticationService()
|
val authenticationService = FakeMatrixAuthenticationService()
|
||||||
val presenter = OidcPresenter(
|
val presenter = OidcPresenter(
|
||||||
A_OIDC_DATA,
|
A_OIDC_DATA,
|
||||||
authenticationService,
|
authenticationService,
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.features.login.impl.accountprovider.AccountProvider
|
import io.element.android.features.login.impl.accountprovider.AccountProvider
|
||||||
import io.element.android.features.login.impl.accountprovider.AccountProviderDataSource
|
import io.element.android.features.login.impl.accountprovider.AccountProviderDataSource
|
||||||
import io.element.android.features.login.impl.changeserver.ChangeServerPresenter
|
import io.element.android.features.login.impl.changeserver.ChangeServerPresenter
|
||||||
import io.element.android.libraries.matrix.test.auth.FakeAuthenticationService
|
import io.element.android.libraries.matrix.test.auth.FakeMatrixAuthenticationService
|
||||||
import io.element.android.tests.testutils.WarmUpRule
|
import io.element.android.tests.testutils.WarmUpRule
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.Rule
|
import org.junit.Rule
|
||||||
|
|
@ -36,7 +36,7 @@ class ChangeAccountProviderPresenterTest {
|
||||||
@Test
|
@Test
|
||||||
fun `present - initial state`() = runTest {
|
fun `present - initial state`() = runTest {
|
||||||
val changeServerPresenter = ChangeServerPresenter(
|
val changeServerPresenter = ChangeServerPresenter(
|
||||||
FakeAuthenticationService(),
|
FakeMatrixAuthenticationService(),
|
||||||
AccountProviderDataSource()
|
AccountProviderDataSource()
|
||||||
)
|
)
|
||||||
val presenter = ChangeAccountProviderPresenter(
|
val presenter = ChangeAccountProviderPresenter(
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ import io.element.android.libraries.matrix.api.auth.MatrixAuthenticationService
|
||||||
import io.element.android.libraries.matrix.test.A_HOMESERVER
|
import io.element.android.libraries.matrix.test.A_HOMESERVER
|
||||||
import io.element.android.libraries.matrix.test.A_HOMESERVER_OIDC
|
import io.element.android.libraries.matrix.test.A_HOMESERVER_OIDC
|
||||||
import io.element.android.libraries.matrix.test.A_THROWABLE
|
import io.element.android.libraries.matrix.test.A_THROWABLE
|
||||||
import io.element.android.libraries.matrix.test.auth.FakeAuthenticationService
|
import io.element.android.libraries.matrix.test.auth.FakeMatrixAuthenticationService
|
||||||
import io.element.android.tests.testutils.WarmUpRule
|
import io.element.android.tests.testutils.WarmUpRule
|
||||||
import io.element.android.tests.testutils.waitForPredicate
|
import io.element.android.tests.testutils.waitForPredicate
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
|
|
@ -57,7 +57,7 @@ class ConfirmAccountProviderPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `present - continue password login`() = runTest {
|
fun `present - continue password login`() = runTest {
|
||||||
val authenticationService = FakeAuthenticationService()
|
val authenticationService = FakeMatrixAuthenticationService()
|
||||||
val presenter = createConfirmAccountProviderPresenter(
|
val presenter = createConfirmAccountProviderPresenter(
|
||||||
matrixAuthenticationService = authenticationService,
|
matrixAuthenticationService = authenticationService,
|
||||||
)
|
)
|
||||||
|
|
@ -79,7 +79,7 @@ class ConfirmAccountProviderPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `present - continue oidc`() = runTest {
|
fun `present - continue oidc`() = runTest {
|
||||||
val authenticationService = FakeAuthenticationService()
|
val authenticationService = FakeMatrixAuthenticationService()
|
||||||
val presenter = createConfirmAccountProviderPresenter(
|
val presenter = createConfirmAccountProviderPresenter(
|
||||||
matrixAuthenticationService = authenticationService,
|
matrixAuthenticationService = authenticationService,
|
||||||
)
|
)
|
||||||
|
|
@ -101,7 +101,7 @@ class ConfirmAccountProviderPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `present - oidc - cancel with failure`() = runTest {
|
fun `present - oidc - cancel with failure`() = runTest {
|
||||||
val authenticationService = FakeAuthenticationService()
|
val authenticationService = FakeMatrixAuthenticationService()
|
||||||
val defaultOidcActionFlow = DefaultOidcActionFlow()
|
val defaultOidcActionFlow = DefaultOidcActionFlow()
|
||||||
val presenter = createConfirmAccountProviderPresenter(
|
val presenter = createConfirmAccountProviderPresenter(
|
||||||
matrixAuthenticationService = authenticationService,
|
matrixAuthenticationService = authenticationService,
|
||||||
|
|
@ -129,7 +129,7 @@ class ConfirmAccountProviderPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `present - oidc - cancel with success`() = runTest {
|
fun `present - oidc - cancel with success`() = runTest {
|
||||||
val authenticationService = FakeAuthenticationService()
|
val authenticationService = FakeMatrixAuthenticationService()
|
||||||
val defaultOidcActionFlow = DefaultOidcActionFlow()
|
val defaultOidcActionFlow = DefaultOidcActionFlow()
|
||||||
val presenter = createConfirmAccountProviderPresenter(
|
val presenter = createConfirmAccountProviderPresenter(
|
||||||
matrixAuthenticationService = authenticationService,
|
matrixAuthenticationService = authenticationService,
|
||||||
|
|
@ -156,7 +156,7 @@ class ConfirmAccountProviderPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `present - oidc - success with failure`() = runTest {
|
fun `present - oidc - success with failure`() = runTest {
|
||||||
val authenticationService = FakeAuthenticationService()
|
val authenticationService = FakeMatrixAuthenticationService()
|
||||||
val defaultOidcActionFlow = DefaultOidcActionFlow()
|
val defaultOidcActionFlow = DefaultOidcActionFlow()
|
||||||
val presenter = createConfirmAccountProviderPresenter(
|
val presenter = createConfirmAccountProviderPresenter(
|
||||||
matrixAuthenticationService = authenticationService,
|
matrixAuthenticationService = authenticationService,
|
||||||
|
|
@ -186,7 +186,7 @@ class ConfirmAccountProviderPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `present - oidc - success with success`() = runTest {
|
fun `present - oidc - success with success`() = runTest {
|
||||||
val authenticationService = FakeAuthenticationService()
|
val authenticationService = FakeMatrixAuthenticationService()
|
||||||
val defaultOidcActionFlow = DefaultOidcActionFlow()
|
val defaultOidcActionFlow = DefaultOidcActionFlow()
|
||||||
val defaultLoginUserStory = DefaultLoginUserStory().apply {
|
val defaultLoginUserStory = DefaultLoginUserStory().apply {
|
||||||
setLoginFlowIsDone(false)
|
setLoginFlowIsDone(false)
|
||||||
|
|
@ -219,7 +219,7 @@ class ConfirmAccountProviderPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `present - submit fails`() = runTest {
|
fun `present - submit fails`() = runTest {
|
||||||
val authenticationService = FakeAuthenticationService()
|
val authenticationService = FakeMatrixAuthenticationService()
|
||||||
val presenter = createConfirmAccountProviderPresenter(
|
val presenter = createConfirmAccountProviderPresenter(
|
||||||
matrixAuthenticationService = authenticationService,
|
matrixAuthenticationService = authenticationService,
|
||||||
)
|
)
|
||||||
|
|
@ -238,7 +238,7 @@ class ConfirmAccountProviderPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `present - clear error`() = runTest {
|
fun `present - clear error`() = runTest {
|
||||||
val authenticationService = FakeAuthenticationService()
|
val authenticationService = FakeMatrixAuthenticationService()
|
||||||
val presenter = createConfirmAccountProviderPresenter(
|
val presenter = createConfirmAccountProviderPresenter(
|
||||||
matrixAuthenticationService = authenticationService,
|
matrixAuthenticationService = authenticationService,
|
||||||
)
|
)
|
||||||
|
|
@ -267,7 +267,7 @@ class ConfirmAccountProviderPresenterTest {
|
||||||
private fun createConfirmAccountProviderPresenter(
|
private fun createConfirmAccountProviderPresenter(
|
||||||
params: ConfirmAccountProviderPresenter.Params = ConfirmAccountProviderPresenter.Params(isAccountCreation = false),
|
params: ConfirmAccountProviderPresenter.Params = ConfirmAccountProviderPresenter.Params(isAccountCreation = false),
|
||||||
accountProviderDataSource: AccountProviderDataSource = AccountProviderDataSource(),
|
accountProviderDataSource: AccountProviderDataSource = AccountProviderDataSource(),
|
||||||
matrixAuthenticationService: MatrixAuthenticationService = FakeAuthenticationService(),
|
matrixAuthenticationService: MatrixAuthenticationService = FakeMatrixAuthenticationService(),
|
||||||
defaultOidcActionFlow: DefaultOidcActionFlow = DefaultOidcActionFlow(),
|
defaultOidcActionFlow: DefaultOidcActionFlow = DefaultOidcActionFlow(),
|
||||||
defaultLoginUserStory: DefaultLoginUserStory = DefaultLoginUserStory(),
|
defaultLoginUserStory: DefaultLoginUserStory = DefaultLoginUserStory(),
|
||||||
) = ConfirmAccountProviderPresenter(
|
) = ConfirmAccountProviderPresenter(
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ import io.element.android.libraries.matrix.test.A_PASSWORD
|
||||||
import io.element.android.libraries.matrix.test.A_SESSION_ID
|
import io.element.android.libraries.matrix.test.A_SESSION_ID
|
||||||
import io.element.android.libraries.matrix.test.A_THROWABLE
|
import io.element.android.libraries.matrix.test.A_THROWABLE
|
||||||
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.matrix.test.auth.FakeAuthenticationService
|
import io.element.android.libraries.matrix.test.auth.FakeMatrixAuthenticationService
|
||||||
import io.element.android.tests.testutils.WarmUpRule
|
import io.element.android.tests.testutils.WarmUpRule
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.Rule
|
import org.junit.Rule
|
||||||
|
|
@ -42,7 +42,7 @@ class LoginPasswordPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `present - initial state`() = runTest {
|
fun `present - initial state`() = runTest {
|
||||||
val authenticationService = FakeAuthenticationService()
|
val authenticationService = FakeMatrixAuthenticationService()
|
||||||
val accountProviderDataSource = AccountProviderDataSource()
|
val accountProviderDataSource = AccountProviderDataSource()
|
||||||
val loginUserStory = DefaultLoginUserStory()
|
val loginUserStory = DefaultLoginUserStory()
|
||||||
val presenter = LoginPasswordPresenter(
|
val presenter = LoginPasswordPresenter(
|
||||||
|
|
@ -63,7 +63,7 @@ class LoginPasswordPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `present - enter login and password`() = runTest {
|
fun `present - enter login and password`() = runTest {
|
||||||
val authenticationService = FakeAuthenticationService()
|
val authenticationService = FakeMatrixAuthenticationService()
|
||||||
val accountProviderDataSource = AccountProviderDataSource()
|
val accountProviderDataSource = AccountProviderDataSource()
|
||||||
val loginUserStory = DefaultLoginUserStory()
|
val loginUserStory = DefaultLoginUserStory()
|
||||||
val presenter = LoginPasswordPresenter(
|
val presenter = LoginPasswordPresenter(
|
||||||
|
|
@ -89,7 +89,7 @@ class LoginPasswordPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `present - submit`() = runTest {
|
fun `present - submit`() = runTest {
|
||||||
val authenticationService = FakeAuthenticationService()
|
val authenticationService = FakeMatrixAuthenticationService()
|
||||||
val accountProviderDataSource = AccountProviderDataSource()
|
val accountProviderDataSource = AccountProviderDataSource()
|
||||||
val loginUserStory = DefaultLoginUserStory().apply { setLoginFlowIsDone(false) }
|
val loginUserStory = DefaultLoginUserStory().apply { setLoginFlowIsDone(false) }
|
||||||
val presenter = LoginPasswordPresenter(
|
val presenter = LoginPasswordPresenter(
|
||||||
|
|
@ -118,7 +118,7 @@ class LoginPasswordPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `present - submit with error`() = runTest {
|
fun `present - submit with error`() = runTest {
|
||||||
val authenticationService = FakeAuthenticationService()
|
val authenticationService = FakeMatrixAuthenticationService()
|
||||||
val accountProviderDataSource = AccountProviderDataSource()
|
val accountProviderDataSource = AccountProviderDataSource()
|
||||||
val loginUserStory = DefaultLoginUserStory()
|
val loginUserStory = DefaultLoginUserStory()
|
||||||
val presenter = LoginPasswordPresenter(
|
val presenter = LoginPasswordPresenter(
|
||||||
|
|
@ -146,7 +146,7 @@ class LoginPasswordPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `present - clear error`() = runTest {
|
fun `present - clear error`() = runTest {
|
||||||
val authenticationService = FakeAuthenticationService()
|
val authenticationService = FakeMatrixAuthenticationService()
|
||||||
val accountProviderDataSource = AccountProviderDataSource()
|
val accountProviderDataSource = AccountProviderDataSource()
|
||||||
val loginUserStory = DefaultLoginUserStory()
|
val loginUserStory = DefaultLoginUserStory()
|
||||||
val presenter = LoginPasswordPresenter(
|
val presenter = LoginPasswordPresenter(
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ import io.element.android.features.login.impl.resolver.network.WellKnownBaseConf
|
||||||
import io.element.android.features.login.impl.resolver.network.WellKnownSlidingSyncConfig
|
import io.element.android.features.login.impl.resolver.network.WellKnownSlidingSyncConfig
|
||||||
import io.element.android.libraries.architecture.AsyncData
|
import io.element.android.libraries.architecture.AsyncData
|
||||||
import io.element.android.libraries.matrix.test.A_HOMESERVER_URL
|
import io.element.android.libraries.matrix.test.A_HOMESERVER_URL
|
||||||
import io.element.android.libraries.matrix.test.auth.FakeAuthenticationService
|
import io.element.android.libraries.matrix.test.auth.FakeMatrixAuthenticationService
|
||||||
import io.element.android.tests.testutils.WarmUpRule
|
import io.element.android.tests.testutils.WarmUpRule
|
||||||
import io.element.android.tests.testutils.testCoroutineDispatchers
|
import io.element.android.tests.testutils.testCoroutineDispatchers
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
|
|
@ -44,7 +44,7 @@ class SearchAccountProviderPresenterTest {
|
||||||
fun `present - initial state`() = runTest {
|
fun `present - initial state`() = runTest {
|
||||||
val fakeWellknownRequest = FakeWellknownRequest()
|
val fakeWellknownRequest = FakeWellknownRequest()
|
||||||
val changeServerPresenter = ChangeServerPresenter(
|
val changeServerPresenter = ChangeServerPresenter(
|
||||||
FakeAuthenticationService(),
|
FakeMatrixAuthenticationService(),
|
||||||
AccountProviderDataSource()
|
AccountProviderDataSource()
|
||||||
)
|
)
|
||||||
val presenter = SearchAccountProviderPresenter(
|
val presenter = SearchAccountProviderPresenter(
|
||||||
|
|
@ -64,7 +64,7 @@ class SearchAccountProviderPresenterTest {
|
||||||
fun `present - enter text no result`() = runTest {
|
fun `present - enter text no result`() = runTest {
|
||||||
val fakeWellknownRequest = FakeWellknownRequest()
|
val fakeWellknownRequest = FakeWellknownRequest()
|
||||||
val changeServerPresenter = ChangeServerPresenter(
|
val changeServerPresenter = ChangeServerPresenter(
|
||||||
FakeAuthenticationService(),
|
FakeMatrixAuthenticationService(),
|
||||||
AccountProviderDataSource()
|
AccountProviderDataSource()
|
||||||
)
|
)
|
||||||
val presenter = SearchAccountProviderPresenter(
|
val presenter = SearchAccountProviderPresenter(
|
||||||
|
|
@ -88,7 +88,7 @@ class SearchAccountProviderPresenterTest {
|
||||||
fun `present - enter valid url no wellknown`() = runTest {
|
fun `present - enter valid url no wellknown`() = runTest {
|
||||||
val fakeWellknownRequest = FakeWellknownRequest()
|
val fakeWellknownRequest = FakeWellknownRequest()
|
||||||
val changeServerPresenter = ChangeServerPresenter(
|
val changeServerPresenter = ChangeServerPresenter(
|
||||||
FakeAuthenticationService(),
|
FakeMatrixAuthenticationService(),
|
||||||
AccountProviderDataSource()
|
AccountProviderDataSource()
|
||||||
)
|
)
|
||||||
val presenter = SearchAccountProviderPresenter(
|
val presenter = SearchAccountProviderPresenter(
|
||||||
|
|
@ -123,7 +123,7 @@ class SearchAccountProviderPresenterTest {
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
val changeServerPresenter = ChangeServerPresenter(
|
val changeServerPresenter = ChangeServerPresenter(
|
||||||
FakeAuthenticationService(),
|
FakeMatrixAuthenticationService(),
|
||||||
AccountProviderDataSource()
|
AccountProviderDataSource()
|
||||||
)
|
)
|
||||||
val presenter = SearchAccountProviderPresenter(
|
val presenter = SearchAccountProviderPresenter(
|
||||||
|
|
@ -158,7 +158,7 @@ class SearchAccountProviderPresenterTest {
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
val changeServerPresenter = ChangeServerPresenter(
|
val changeServerPresenter = ChangeServerPresenter(
|
||||||
FakeAuthenticationService(),
|
FakeMatrixAuthenticationService(),
|
||||||
AccountProviderDataSource()
|
AccountProviderDataSource()
|
||||||
)
|
)
|
||||||
val presenter = SearchAccountProviderPresenter(
|
val presenter = SearchAccountProviderPresenter(
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ import io.element.android.libraries.matrix.test.A_HOMESERVER
|
||||||
import io.element.android.libraries.matrix.test.A_HOMESERVER_URL
|
import io.element.android.libraries.matrix.test.A_HOMESERVER_URL
|
||||||
import io.element.android.libraries.matrix.test.A_THROWABLE
|
import io.element.android.libraries.matrix.test.A_THROWABLE
|
||||||
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.auth.FakeAuthenticationService
|
import io.element.android.libraries.matrix.test.auth.FakeMatrixAuthenticationService
|
||||||
import io.element.android.libraries.matrix.test.core.aBuildMeta
|
import io.element.android.libraries.matrix.test.core.aBuildMeta
|
||||||
import io.element.android.tests.testutils.WarmUpRule
|
import io.element.android.tests.testutils.WarmUpRule
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
|
|
@ -41,7 +41,7 @@ class WaitListPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `present - initial state`() = runTest {
|
fun `present - initial state`() = runTest {
|
||||||
val authenticationService = FakeAuthenticationService().apply {
|
val authenticationService = FakeMatrixAuthenticationService().apply {
|
||||||
givenHomeserver(A_HOMESERVER)
|
givenHomeserver(A_HOMESERVER)
|
||||||
}
|
}
|
||||||
val loginUserStory = DefaultLoginUserStory()
|
val loginUserStory = DefaultLoginUserStory()
|
||||||
|
|
@ -63,7 +63,7 @@ class WaitListPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `present - attempt login with error`() = runTest {
|
fun `present - attempt login with error`() = runTest {
|
||||||
val authenticationService = FakeAuthenticationService().apply {
|
val authenticationService = FakeMatrixAuthenticationService().apply {
|
||||||
givenLoginError(A_THROWABLE)
|
givenLoginError(A_THROWABLE)
|
||||||
}
|
}
|
||||||
val loginUserStory = DefaultLoginUserStory()
|
val loginUserStory = DefaultLoginUserStory()
|
||||||
|
|
@ -94,7 +94,7 @@ class WaitListPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `present - attempt login with success`() = runTest {
|
fun `present - attempt login with success`() = runTest {
|
||||||
val authenticationService = FakeAuthenticationService()
|
val authenticationService = FakeMatrixAuthenticationService()
|
||||||
val loginUserStory = DefaultLoginUserStory().apply { setLoginFlowIsDone(false) }
|
val loginUserStory = DefaultLoginUserStory().apply { setLoginFlowIsDone(false) }
|
||||||
val presenter = WaitListPresenter(
|
val presenter = WaitListPresenter(
|
||||||
LoginFormState.Default,
|
LoginFormState.Default,
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ import io.element.android.libraries.core.mimetype.MimeTypes
|
||||||
import io.element.android.libraries.matrix.api.media.MatrixMediaLoader
|
import io.element.android.libraries.matrix.api.media.MatrixMediaLoader
|
||||||
import io.element.android.libraries.matrix.api.media.MediaSource
|
import io.element.android.libraries.matrix.api.media.MediaSource
|
||||||
import io.element.android.libraries.matrix.api.mxc.MxcTools
|
import io.element.android.libraries.matrix.api.mxc.MxcTools
|
||||||
import io.element.android.libraries.matrix.test.media.FakeMediaLoader
|
import io.element.android.libraries.matrix.test.media.FakeMatrixMediaLoader
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.Rule
|
import org.junit.Rule
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
|
@ -34,12 +34,12 @@ class DefaultVoiceMessageMediaRepoTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `cache miss - downloads and returns cached file successfully`() = runTest {
|
fun `cache miss - downloads and returns cached file successfully`() = runTest {
|
||||||
val fakeMediaLoader = FakeMediaLoader().apply {
|
val matrixMediaLoader = FakeMatrixMediaLoader().apply {
|
||||||
path = temporaryFolder.createRustMediaFile().path
|
path = temporaryFolder.createRustMediaFile().path
|
||||||
}
|
}
|
||||||
val repo = createDefaultVoiceMessageMediaRepo(
|
val repo = createDefaultVoiceMessageMediaRepo(
|
||||||
temporaryFolder = temporaryFolder,
|
temporaryFolder = temporaryFolder,
|
||||||
matrixMediaLoader = fakeMediaLoader,
|
matrixMediaLoader = matrixMediaLoader,
|
||||||
)
|
)
|
||||||
|
|
||||||
repo.getMediaFile().let { result ->
|
repo.getMediaFile().let { result ->
|
||||||
|
|
@ -53,12 +53,12 @@ class DefaultVoiceMessageMediaRepoTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `cache miss - download fails`() = runTest {
|
fun `cache miss - download fails`() = runTest {
|
||||||
val fakeMediaLoader = FakeMediaLoader().apply {
|
val matrixMediaLoader = FakeMatrixMediaLoader().apply {
|
||||||
shouldFail = true
|
shouldFail = true
|
||||||
}
|
}
|
||||||
val repo = createDefaultVoiceMessageMediaRepo(
|
val repo = createDefaultVoiceMessageMediaRepo(
|
||||||
temporaryFolder = temporaryFolder,
|
temporaryFolder = temporaryFolder,
|
||||||
matrixMediaLoader = fakeMediaLoader,
|
matrixMediaLoader = matrixMediaLoader,
|
||||||
)
|
)
|
||||||
|
|
||||||
repo.getMediaFile().let { result ->
|
repo.getMediaFile().let { result ->
|
||||||
|
|
@ -71,7 +71,7 @@ class DefaultVoiceMessageMediaRepoTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `cache miss - download succeeds but file move fails`() = runTest {
|
fun `cache miss - download succeeds but file move fails`() = runTest {
|
||||||
val fakeMediaLoader = FakeMediaLoader().apply {
|
val matrixMediaLoader = FakeMatrixMediaLoader().apply {
|
||||||
path = temporaryFolder.createRustMediaFile().path
|
path = temporaryFolder.createRustMediaFile().path
|
||||||
}
|
}
|
||||||
File(temporaryFolder.cachedFilePath).apply {
|
File(temporaryFolder.cachedFilePath).apply {
|
||||||
|
|
@ -83,7 +83,7 @@ class DefaultVoiceMessageMediaRepoTest {
|
||||||
}
|
}
|
||||||
val repo = createDefaultVoiceMessageMediaRepo(
|
val repo = createDefaultVoiceMessageMediaRepo(
|
||||||
temporaryFolder = temporaryFolder,
|
temporaryFolder = temporaryFolder,
|
||||||
matrixMediaLoader = fakeMediaLoader,
|
matrixMediaLoader = matrixMediaLoader,
|
||||||
)
|
)
|
||||||
|
|
||||||
repo.getMediaFile().let { result ->
|
repo.getMediaFile().let { result ->
|
||||||
|
|
@ -100,12 +100,12 @@ class DefaultVoiceMessageMediaRepoTest {
|
||||||
@Test
|
@Test
|
||||||
fun `cache hit - returns cached file successfully`() = runTest {
|
fun `cache hit - returns cached file successfully`() = runTest {
|
||||||
temporaryFolder.createCachedFile()
|
temporaryFolder.createCachedFile()
|
||||||
val fakeMediaLoader = FakeMediaLoader().apply {
|
val matrixMediaLoader = FakeMatrixMediaLoader().apply {
|
||||||
shouldFail = true // so that if we hit the media loader it will crash
|
shouldFail = true // so that if we hit the media loader it will crash
|
||||||
}
|
}
|
||||||
val repo = createDefaultVoiceMessageMediaRepo(
|
val repo = createDefaultVoiceMessageMediaRepo(
|
||||||
temporaryFolder = temporaryFolder,
|
temporaryFolder = temporaryFolder,
|
||||||
matrixMediaLoader = fakeMediaLoader,
|
matrixMediaLoader = matrixMediaLoader,
|
||||||
)
|
)
|
||||||
|
|
||||||
repo.getMediaFile().let { result ->
|
repo.getMediaFile().let { result ->
|
||||||
|
|
@ -135,7 +135,7 @@ class DefaultVoiceMessageMediaRepoTest {
|
||||||
|
|
||||||
private fun createDefaultVoiceMessageMediaRepo(
|
private fun createDefaultVoiceMessageMediaRepo(
|
||||||
temporaryFolder: TemporaryFolder,
|
temporaryFolder: TemporaryFolder,
|
||||||
matrixMediaLoader: MatrixMediaLoader = FakeMediaLoader(),
|
matrixMediaLoader: MatrixMediaLoader = FakeMatrixMediaLoader(),
|
||||||
mxcUri: String = MXC_URI,
|
mxcUri: String = MXC_URI,
|
||||||
) = DefaultVoiceMessageMediaRepo(
|
) = DefaultVoiceMessageMediaRepo(
|
||||||
cacheDir = temporaryFolder.root,
|
cacheDir = temporaryFolder.root,
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@ class MigrationPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `present - no migration should occurs if ApplicationMigrationVersion is the last one`() = runTest {
|
fun `present - no migration should occurs if ApplicationMigrationVersion is the last one`() = runTest {
|
||||||
val migrations = (1..10).map { FakeMigration(it) }
|
val migrations = (1..10).map { FakeAppMigration(it) }
|
||||||
val store = InMemoryMigrationStore(migrations.maxOf { it.order })
|
val store = InMemoryMigrationStore(migrations.maxOf { it.order })
|
||||||
val presenter = createPresenter(
|
val presenter = createPresenter(
|
||||||
migrationStore = store,
|
migrationStore = store,
|
||||||
|
|
@ -57,7 +57,7 @@ class MigrationPresenterTest {
|
||||||
@Test
|
@Test
|
||||||
fun `present - testing all migrations`() = runTest {
|
fun `present - testing all migrations`() = runTest {
|
||||||
val store = InMemoryMigrationStore(0)
|
val store = InMemoryMigrationStore(0)
|
||||||
val migrations = (1..10).map { FakeMigration(it) }
|
val migrations = (1..10).map { FakeAppMigration(it) }
|
||||||
val presenter = createPresenter(
|
val presenter = createPresenter(
|
||||||
migrationStore = store,
|
migrationStore = store,
|
||||||
migrations = migrations.toSet(),
|
migrations = migrations.toSet(),
|
||||||
|
|
@ -81,13 +81,13 @@ class MigrationPresenterTest {
|
||||||
|
|
||||||
private fun createPresenter(
|
private fun createPresenter(
|
||||||
migrationStore: MigrationStore = InMemoryMigrationStore(0),
|
migrationStore: MigrationStore = InMemoryMigrationStore(0),
|
||||||
migrations: Set<AppMigration> = setOf(FakeMigration(1)),
|
migrations: Set<AppMigration> = setOf(FakeAppMigration(1)),
|
||||||
) = MigrationPresenter(
|
) = MigrationPresenter(
|
||||||
migrationStore = migrationStore,
|
migrationStore = migrationStore,
|
||||||
migrations = migrations,
|
migrations = migrations,
|
||||||
)
|
)
|
||||||
|
|
||||||
private class FakeMigration(
|
private class FakeAppMigration(
|
||||||
override val order: Int,
|
override val order: Int,
|
||||||
var migrateLambda: LambdaNoParamRecorder<Unit> = lambdaRecorder { -> },
|
var migrateLambda: LambdaNoParamRecorder<Unit> = lambdaRecorder { -> },
|
||||||
) : AppMigration {
|
) : AppMigration {
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
package io.element.android.features.migration.impl.migrations
|
package io.element.android.features.migration.impl.migrations
|
||||||
|
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.libraries.preferences.test.FakeSessionPreferenceStoreFactory
|
import io.element.android.libraries.preferences.test.FakeSessionPreferencesStoreFactory
|
||||||
import io.element.android.libraries.preferences.test.InMemorySessionPreferencesStore
|
import io.element.android.libraries.preferences.test.InMemorySessionPreferencesStore
|
||||||
import io.element.android.libraries.sessionstorage.impl.memory.InMemorySessionStore
|
import io.element.android.libraries.sessionstorage.impl.memory.InMemorySessionStore
|
||||||
import io.element.android.libraries.sessionstorage.test.aSessionData
|
import io.element.android.libraries.sessionstorage.test.aSessionData
|
||||||
|
|
@ -33,7 +33,7 @@ class AppMigration02Test {
|
||||||
updateData(aSessionData())
|
updateData(aSessionData())
|
||||||
}
|
}
|
||||||
val sessionPreferencesStore = InMemorySessionPreferencesStore(isSessionVerificationSkipped = false)
|
val sessionPreferencesStore = InMemorySessionPreferencesStore(isSessionVerificationSkipped = false)
|
||||||
val sessionPreferencesStoreFactory = FakeSessionPreferenceStoreFactory(
|
val sessionPreferencesStoreFactory = FakeSessionPreferencesStoreFactory(
|
||||||
getLambda = lambdaRecorder { _, _, -> sessionPreferencesStore },
|
getLambda = lambdaRecorder { _, _, -> sessionPreferencesStore },
|
||||||
)
|
)
|
||||||
val migration = AppMigration02(sessionStore = sessionStore, sessionPreferenceStoreFactory = sessionPreferencesStoreFactory)
|
val migration = AppMigration02(sessionStore = sessionStore, sessionPreferenceStoreFactory = sessionPreferencesStoreFactory)
|
||||||
|
|
|
||||||
|
|
@ -144,7 +144,7 @@ class BugReportPresenterTest {
|
||||||
@Test
|
@Test
|
||||||
fun `present - send success`() = runTest {
|
fun `present - send success`() = runTest {
|
||||||
val presenter = createPresenter(
|
val presenter = createPresenter(
|
||||||
FakeBugReporter(mode = FakeBugReporterMode.Success),
|
FakeBugReporter(mode = FakeBugReporter.Mode.Success),
|
||||||
FakeCrashDataStore(crashData = A_CRASH_DATA, appHasCrashed = true),
|
FakeCrashDataStore(crashData = A_CRASH_DATA, appHasCrashed = true),
|
||||||
FakeScreenshotHolder(screenshotUri = A_SCREENSHOT_URI),
|
FakeScreenshotHolder(screenshotUri = A_SCREENSHOT_URI),
|
||||||
)
|
)
|
||||||
|
|
@ -170,7 +170,7 @@ class BugReportPresenterTest {
|
||||||
@Test
|
@Test
|
||||||
fun `present - send failure`() = runTest {
|
fun `present - send failure`() = runTest {
|
||||||
val presenter = createPresenter(
|
val presenter = createPresenter(
|
||||||
FakeBugReporter(mode = FakeBugReporterMode.Failure),
|
FakeBugReporter(mode = FakeBugReporter.Mode.Failure),
|
||||||
FakeCrashDataStore(crashData = A_CRASH_DATA, appHasCrashed = true),
|
FakeCrashDataStore(crashData = A_CRASH_DATA, appHasCrashed = true),
|
||||||
FakeScreenshotHolder(screenshotUri = A_SCREENSHOT_URI),
|
FakeScreenshotHolder(screenshotUri = A_SCREENSHOT_URI),
|
||||||
)
|
)
|
||||||
|
|
@ -219,7 +219,7 @@ class BugReportPresenterTest {
|
||||||
@Test
|
@Test
|
||||||
fun `present - send cancel`() = runTest {
|
fun `present - send cancel`() = runTest {
|
||||||
val presenter = createPresenter(
|
val presenter = createPresenter(
|
||||||
FakeBugReporter(mode = FakeBugReporterMode.Cancel),
|
FakeBugReporter(mode = FakeBugReporter.Mode.Cancel),
|
||||||
FakeCrashDataStore(crashData = A_CRASH_DATA, appHasCrashed = true),
|
FakeCrashDataStore(crashData = A_CRASH_DATA, appHasCrashed = true),
|
||||||
FakeScreenshotHolder(screenshotUri = A_SCREENSHOT_URI),
|
FakeScreenshotHolder(screenshotUri = A_SCREENSHOT_URI),
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,13 @@ import io.element.android.libraries.matrix.test.A_FAILURE_REASON
|
||||||
import kotlinx.coroutines.delay
|
import kotlinx.coroutines.delay
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
class FakeBugReporter(val mode: FakeBugReporterMode = FakeBugReporterMode.Success) : BugReporter {
|
class FakeBugReporter(val mode: Mode = Mode.Success) : BugReporter {
|
||||||
|
enum class Mode {
|
||||||
|
Success,
|
||||||
|
Failure,
|
||||||
|
Cancel
|
||||||
|
}
|
||||||
|
|
||||||
override suspend fun sendBugReport(
|
override suspend fun sendBugReport(
|
||||||
withDevicesLogs: Boolean,
|
withDevicesLogs: Boolean,
|
||||||
withCrashLogs: Boolean,
|
withCrashLogs: Boolean,
|
||||||
|
|
@ -37,12 +43,12 @@ class FakeBugReporter(val mode: FakeBugReporterMode = FakeBugReporterMode.Succes
|
||||||
listener?.onProgress(50)
|
listener?.onProgress(50)
|
||||||
delay(100)
|
delay(100)
|
||||||
when (mode) {
|
when (mode) {
|
||||||
FakeBugReporterMode.Success -> Unit
|
Mode.Success -> Unit
|
||||||
FakeBugReporterMode.Failure -> {
|
Mode.Failure -> {
|
||||||
listener?.onUploadFailed(A_FAILURE_REASON)
|
listener?.onUploadFailed(A_FAILURE_REASON)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
FakeBugReporterMode.Cancel -> {
|
Mode.Cancel -> {
|
||||||
listener?.onUploadCancelled()
|
listener?.onUploadCancelled()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
@ -64,9 +70,3 @@ class FakeBugReporter(val mode: FakeBugReporterMode = FakeBugReporterMode.Succes
|
||||||
// No op
|
// No op
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
enum class FakeBugReporterMode {
|
|
||||||
Success,
|
|
||||||
Failure,
|
|
||||||
Cancel
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,7 @@ import io.element.android.libraries.matrix.api.user.MatrixSearchUserResults
|
||||||
import io.element.android.libraries.matrix.api.user.MatrixUser
|
import io.element.android.libraries.matrix.api.user.MatrixUser
|
||||||
import io.element.android.libraries.matrix.api.verification.SessionVerificationService
|
import io.element.android.libraries.matrix.api.verification.SessionVerificationService
|
||||||
import io.element.android.libraries.matrix.test.encryption.FakeEncryptionService
|
import io.element.android.libraries.matrix.test.encryption.FakeEncryptionService
|
||||||
import io.element.android.libraries.matrix.test.media.FakeMediaLoader
|
import io.element.android.libraries.matrix.test.media.FakeMatrixMediaLoader
|
||||||
import io.element.android.libraries.matrix.test.notification.FakeNotificationService
|
import io.element.android.libraries.matrix.test.notification.FakeNotificationService
|
||||||
import io.element.android.libraries.matrix.test.notificationsettings.FakeNotificationSettingsService
|
import io.element.android.libraries.matrix.test.notificationsettings.FakeNotificationSettingsService
|
||||||
import io.element.android.libraries.matrix.test.pushers.FakePushersService
|
import io.element.android.libraries.matrix.test.pushers.FakePushersService
|
||||||
|
|
@ -66,7 +66,7 @@ class FakeMatrixClient(
|
||||||
private val userDisplayName: String? = A_USER_NAME,
|
private val userDisplayName: String? = A_USER_NAME,
|
||||||
private val userAvatarUrl: String? = AN_AVATAR_URL,
|
private val userAvatarUrl: String? = AN_AVATAR_URL,
|
||||||
override val roomListService: RoomListService = FakeRoomListService(),
|
override val roomListService: RoomListService = FakeRoomListService(),
|
||||||
override val mediaLoader: MatrixMediaLoader = FakeMediaLoader(),
|
override val mediaLoader: MatrixMediaLoader = FakeMatrixMediaLoader(),
|
||||||
private val sessionVerificationService: FakeSessionVerificationService = FakeSessionVerificationService(),
|
private val sessionVerificationService: FakeSessionVerificationService = FakeSessionVerificationService(),
|
||||||
private val pushersService: FakePushersService = FakePushersService(),
|
private val pushersService: FakePushersService = FakePushersService(),
|
||||||
private val notificationService: FakeNotificationService = FakeNotificationService(),
|
private val notificationService: FakeNotificationService = FakeNotificationService(),
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ import kotlinx.coroutines.flow.flowOf
|
||||||
|
|
||||||
val A_OIDC_DATA = OidcDetails(url = "a-url")
|
val A_OIDC_DATA = OidcDetails(url = "a-url")
|
||||||
|
|
||||||
class FakeAuthenticationService(
|
class FakeMatrixAuthenticationService(
|
||||||
private val matrixClientResult: ((SessionId) -> Result<MatrixClient>)? = null
|
private val matrixClientResult: ((SessionId) -> Result<MatrixClient>)? = null
|
||||||
) : MatrixAuthenticationService {
|
) : MatrixAuthenticationService {
|
||||||
private val homeserver = MutableStateFlow<MatrixHomeServerDetails?>(null)
|
private val homeserver = MutableStateFlow<MatrixHomeServerDetails?>(null)
|
||||||
|
|
@ -21,7 +21,7 @@ import io.element.android.libraries.matrix.api.media.MediaFile
|
||||||
import io.element.android.libraries.matrix.api.media.MediaSource
|
import io.element.android.libraries.matrix.api.media.MediaSource
|
||||||
import io.element.android.tests.testutils.simulateLongTask
|
import io.element.android.tests.testutils.simulateLongTask
|
||||||
|
|
||||||
class FakeMediaLoader : MatrixMediaLoader {
|
class FakeMatrixMediaLoader : MatrixMediaLoader {
|
||||||
var shouldFail = false
|
var shouldFail = false
|
||||||
var path: String = ""
|
var path: String = ""
|
||||||
|
|
||||||
|
|
@ -55,7 +55,7 @@ import io.element.android.libraries.matrix.test.A_SESSION_ID
|
||||||
import io.element.android.libraries.matrix.test.media.FakeMediaUploadHandler
|
import io.element.android.libraries.matrix.test.media.FakeMediaUploadHandler
|
||||||
import io.element.android.libraries.matrix.test.notificationsettings.FakeNotificationSettingsService
|
import io.element.android.libraries.matrix.test.notificationsettings.FakeNotificationSettingsService
|
||||||
import io.element.android.libraries.matrix.test.timeline.FakeTimeline
|
import io.element.android.libraries.matrix.test.timeline.FakeTimeline
|
||||||
import io.element.android.libraries.matrix.test.widget.FakeWidgetDriver
|
import io.element.android.libraries.matrix.test.widget.FakeMatrixWidgetDriver
|
||||||
import io.element.android.tests.testutils.simulateLongTask
|
import io.element.android.tests.testutils.simulateLongTask
|
||||||
import kotlinx.collections.immutable.ImmutableMap
|
import kotlinx.collections.immutable.ImmutableMap
|
||||||
import kotlinx.collections.immutable.persistentMapOf
|
import kotlinx.collections.immutable.persistentMapOf
|
||||||
|
|
@ -125,7 +125,7 @@ class FakeMatrixRoom(
|
||||||
private var endPollResult = Result.success(Unit)
|
private var endPollResult = Result.success(Unit)
|
||||||
private var progressCallbackValues = emptyList<Pair<Long, Long>>()
|
private var progressCallbackValues = emptyList<Pair<Long, Long>>()
|
||||||
private var generateWidgetWebViewUrlResult = Result.success("https://call.element.io")
|
private var generateWidgetWebViewUrlResult = Result.success("https://call.element.io")
|
||||||
private var getWidgetDriverResult: Result<MatrixWidgetDriver> = Result.success(FakeWidgetDriver())
|
private var getWidgetDriverResult: Result<MatrixWidgetDriver> = Result.success(FakeMatrixWidgetDriver())
|
||||||
private var canUserTriggerRoomNotificationResult: Result<Boolean> = Result.success(true)
|
private var canUserTriggerRoomNotificationResult: Result<Boolean> = Result.success(true)
|
||||||
private var canUserJoinCallResult: Result<Boolean> = Result.success(true)
|
private var canUserJoinCallResult: Result<Boolean> = Result.success(true)
|
||||||
private var setIsFavoriteResult = Result.success(Unit)
|
private var setIsFavoriteResult = Result.success(Unit)
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ import io.element.android.libraries.matrix.api.widget.MatrixWidgetDriver
|
||||||
import kotlinx.coroutines.flow.MutableSharedFlow
|
import kotlinx.coroutines.flow.MutableSharedFlow
|
||||||
import java.util.UUID
|
import java.util.UUID
|
||||||
|
|
||||||
class FakeWidgetDriver(
|
class FakeMatrixWidgetDriver(
|
||||||
override val id: String = UUID.randomUUID().toString(),
|
override val id: String = UUID.randomUUID().toString(),
|
||||||
) : MatrixWidgetDriver {
|
) : MatrixWidgetDriver {
|
||||||
private val _sentMessages = mutableListOf<String>()
|
private val _sentMessages = mutableListOf<String>()
|
||||||
|
|
@ -25,7 +25,7 @@ import app.cash.turbine.test
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.libraries.architecture.AsyncData
|
import io.element.android.libraries.architecture.AsyncData
|
||||||
import io.element.android.libraries.designsystem.utils.snackbar.SnackbarDispatcher
|
import io.element.android.libraries.designsystem.utils.snackbar.SnackbarDispatcher
|
||||||
import io.element.android.libraries.matrix.test.media.FakeMediaLoader
|
import io.element.android.libraries.matrix.test.media.FakeMatrixMediaLoader
|
||||||
import io.element.android.libraries.matrix.test.media.aMediaSource
|
import io.element.android.libraries.matrix.test.media.aMediaSource
|
||||||
import io.element.android.libraries.mediaviewer.api.local.anApkMediaInfo
|
import io.element.android.libraries.mediaviewer.api.local.anApkMediaInfo
|
||||||
import io.element.android.libraries.mediaviewer.api.viewer.MediaViewerEvents
|
import io.element.android.libraries.mediaviewer.api.viewer.MediaViewerEvents
|
||||||
|
|
@ -51,9 +51,9 @@ class MediaViewerPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `present - download media success scenario`() = runTest {
|
fun `present - download media success scenario`() = runTest {
|
||||||
val mediaLoader = FakeMediaLoader()
|
val matrixMediaLoader = FakeMatrixMediaLoader()
|
||||||
val mediaActions = FakeLocalMediaActions()
|
val mediaActions = FakeLocalMediaActions()
|
||||||
val presenter = createMediaViewerPresenter(mediaLoader, mediaActions)
|
val presenter = createMediaViewerPresenter(matrixMediaLoader, mediaActions)
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
moleculeFlow(RecompositionMode.Immediate) {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
|
|
@ -71,10 +71,10 @@ class MediaViewerPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `present - check all actions `() = runTest {
|
fun `present - check all actions `() = runTest {
|
||||||
val mediaLoader = FakeMediaLoader()
|
val matrixMediaLoader = FakeMatrixMediaLoader()
|
||||||
val mediaActions = FakeLocalMediaActions()
|
val mediaActions = FakeLocalMediaActions()
|
||||||
val snackbarDispatcher = SnackbarDispatcher()
|
val snackbarDispatcher = SnackbarDispatcher()
|
||||||
val presenter = createMediaViewerPresenter(mediaLoader, mediaActions, snackbarDispatcher)
|
val presenter = createMediaViewerPresenter(matrixMediaLoader, mediaActions, snackbarDispatcher)
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
moleculeFlow(RecompositionMode.Immediate) {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
|
|
@ -118,13 +118,13 @@ class MediaViewerPresenterTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `present - download media failure then retry with success scenario`() = runTest {
|
fun `present - download media failure then retry with success scenario`() = runTest {
|
||||||
val mediaLoader = FakeMediaLoader()
|
val matrixMediaLoader = FakeMatrixMediaLoader()
|
||||||
val mediaActions = FakeLocalMediaActions()
|
val mediaActions = FakeLocalMediaActions()
|
||||||
val presenter = createMediaViewerPresenter(mediaLoader, mediaActions)
|
val presenter = createMediaViewerPresenter(matrixMediaLoader, mediaActions)
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
moleculeFlow(RecompositionMode.Immediate) {
|
||||||
presenter.present()
|
presenter.present()
|
||||||
}.test {
|
}.test {
|
||||||
mediaLoader.shouldFail = true
|
matrixMediaLoader.shouldFail = true
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
assertThat(initialState.downloadedMedia).isEqualTo(AsyncData.Uninitialized)
|
assertThat(initialState.downloadedMedia).isEqualTo(AsyncData.Uninitialized)
|
||||||
assertThat(initialState.mediaInfo).isEqualTo(TESTED_MEDIA_INFO)
|
assertThat(initialState.mediaInfo).isEqualTo(TESTED_MEDIA_INFO)
|
||||||
|
|
@ -132,7 +132,7 @@ class MediaViewerPresenterTest {
|
||||||
assertThat(loadingState.downloadedMedia).isInstanceOf(AsyncData.Loading::class.java)
|
assertThat(loadingState.downloadedMedia).isInstanceOf(AsyncData.Loading::class.java)
|
||||||
val failureState = awaitItem()
|
val failureState = awaitItem()
|
||||||
assertThat(failureState.downloadedMedia).isInstanceOf(AsyncData.Failure::class.java)
|
assertThat(failureState.downloadedMedia).isInstanceOf(AsyncData.Failure::class.java)
|
||||||
mediaLoader.shouldFail = false
|
matrixMediaLoader.shouldFail = false
|
||||||
failureState.eventSink(MediaViewerEvents.RetryLoading)
|
failureState.eventSink(MediaViewerEvents.RetryLoading)
|
||||||
// There is one recomposition because of the retry mechanism
|
// There is one recomposition because of the retry mechanism
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
|
|
@ -146,7 +146,7 @@ class MediaViewerPresenterTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun createMediaViewerPresenter(
|
private fun createMediaViewerPresenter(
|
||||||
mediaLoader: FakeMediaLoader,
|
matrixMediaLoader: FakeMatrixMediaLoader,
|
||||||
localMediaActions: FakeLocalMediaActions,
|
localMediaActions: FakeLocalMediaActions,
|
||||||
snackbarDispatcher: SnackbarDispatcher = SnackbarDispatcher(),
|
snackbarDispatcher: SnackbarDispatcher = SnackbarDispatcher(),
|
||||||
canShare: Boolean = true,
|
canShare: Boolean = true,
|
||||||
|
|
@ -161,7 +161,7 @@ class MediaViewerPresenterTest {
|
||||||
canDownload = canDownload,
|
canDownload = canDownload,
|
||||||
),
|
),
|
||||||
localMediaFactory = localMediaFactory,
|
localMediaFactory = localMediaFactory,
|
||||||
mediaLoader = mediaLoader,
|
mediaLoader = matrixMediaLoader,
|
||||||
localMediaActions = localMediaActions,
|
localMediaActions = localMediaActions,
|
||||||
snackbarDispatcher = snackbarDispatcher,
|
snackbarDispatcher = snackbarDispatcher,
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ import io.element.android.tests.testutils.lambda.LambdaTwoParamsRecorder
|
||||||
import io.element.android.tests.testutils.lambda.lambdaRecorder
|
import io.element.android.tests.testutils.lambda.lambdaRecorder
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
|
|
||||||
class FakeSessionPreferenceStoreFactory(
|
class FakeSessionPreferencesStoreFactory(
|
||||||
var getLambda: LambdaTwoParamsRecorder<SessionId, CoroutineScope, SessionPreferencesStore> = lambdaRecorder { _, _ -> throw NotImplementedError() },
|
var getLambda: LambdaTwoParamsRecorder<SessionId, CoroutineScope, SessionPreferencesStore> = lambdaRecorder { _, _ -> throw NotImplementedError() },
|
||||||
var removeLambda: LambdaOneParamRecorder<SessionId, Unit> = lambdaRecorder { _ -> },
|
var removeLambda: LambdaOneParamRecorder<SessionId, Unit> = lambdaRecorder { _ -> },
|
||||||
) : SessionPreferencesStoreFactory {
|
) : SessionPreferencesStoreFactory {
|
||||||
|
|
@ -28,7 +28,7 @@ import io.element.android.libraries.matrix.test.AN_EVENT_ID
|
||||||
import io.element.android.libraries.matrix.test.A_ROOM_ID
|
import io.element.android.libraries.matrix.test.A_ROOM_ID
|
||||||
import io.element.android.libraries.matrix.test.A_SECRET
|
import io.element.android.libraries.matrix.test.A_SECRET
|
||||||
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.auth.FakeAuthenticationService
|
import io.element.android.libraries.matrix.test.auth.FakeMatrixAuthenticationService
|
||||||
import io.element.android.libraries.matrix.test.core.aBuildMeta
|
import io.element.android.libraries.matrix.test.core.aBuildMeta
|
||||||
import io.element.android.libraries.push.impl.notifications.FakeNotifiableEventResolver
|
import io.element.android.libraries.push.impl.notifications.FakeNotifiableEventResolver
|
||||||
import io.element.android.libraries.push.impl.notifications.fixtures.aNotifiableMessageEvent
|
import io.element.android.libraries.push.impl.notifications.fixtures.aNotifiableMessageEvent
|
||||||
|
|
@ -135,7 +135,7 @@ class DefaultPushHandlerTest {
|
||||||
pushClientSecret = FakePushClientSecret(
|
pushClientSecret = FakePushClientSecret(
|
||||||
getUserIdFromSecretResult = { null }
|
getUserIdFromSecretResult = { null }
|
||||||
),
|
),
|
||||||
matrixAuthenticationService = FakeAuthenticationService().apply {
|
matrixAuthenticationService = FakeMatrixAuthenticationService().apply {
|
||||||
getLatestSessionIdLambda = { A_USER_ID }
|
getLatestSessionIdLambda = { A_USER_ID }
|
||||||
},
|
},
|
||||||
incrementPushCounterResult = incrementPushCounterResult
|
incrementPushCounterResult = incrementPushCounterResult
|
||||||
|
|
@ -171,7 +171,7 @@ class DefaultPushHandlerTest {
|
||||||
pushClientSecret = FakePushClientSecret(
|
pushClientSecret = FakePushClientSecret(
|
||||||
getUserIdFromSecretResult = { null }
|
getUserIdFromSecretResult = { null }
|
||||||
),
|
),
|
||||||
matrixAuthenticationService = FakeAuthenticationService().apply {
|
matrixAuthenticationService = FakeMatrixAuthenticationService().apply {
|
||||||
getLatestSessionIdLambda = { null }
|
getLatestSessionIdLambda = { null }
|
||||||
},
|
},
|
||||||
incrementPushCounterResult = incrementPushCounterResult
|
incrementPushCounterResult = incrementPushCounterResult
|
||||||
|
|
@ -247,7 +247,7 @@ class DefaultPushHandlerTest {
|
||||||
userPushStore: UserPushStore = FakeUserPushStore(),
|
userPushStore: UserPushStore = FakeUserPushStore(),
|
||||||
pushClientSecret: PushClientSecret = FakePushClientSecret(),
|
pushClientSecret: PushClientSecret = FakePushClientSecret(),
|
||||||
buildMeta: BuildMeta = aBuildMeta(),
|
buildMeta: BuildMeta = aBuildMeta(),
|
||||||
matrixAuthenticationService: MatrixAuthenticationService = FakeAuthenticationService(),
|
matrixAuthenticationService: MatrixAuthenticationService = FakeMatrixAuthenticationService(),
|
||||||
diagnosticPushHandler: DiagnosticPushHandler = DiagnosticPushHandler(),
|
diagnosticPushHandler: DiagnosticPushHandler = DiagnosticPushHandler(),
|
||||||
): DefaultPushHandler {
|
): DefaultPushHandler {
|
||||||
return DefaultPushHandler(
|
return DefaultPushHandler(
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ import io.element.android.libraries.matrix.test.A_USER_ID
|
||||||
import io.element.android.libraries.matrix.test.A_USER_ID_2
|
import io.element.android.libraries.matrix.test.A_USER_ID_2
|
||||||
import io.element.android.libraries.matrix.test.A_USER_ID_3
|
import io.element.android.libraries.matrix.test.A_USER_ID_3
|
||||||
import io.element.android.libraries.matrix.test.FakeMatrixClient
|
import io.element.android.libraries.matrix.test.FakeMatrixClient
|
||||||
import io.element.android.libraries.matrix.test.auth.FakeAuthenticationService
|
import io.element.android.libraries.matrix.test.auth.FakeMatrixAuthenticationService
|
||||||
import io.element.android.libraries.push.test.FakePusherSubscriber
|
import io.element.android.libraries.push.test.FakePusherSubscriber
|
||||||
import io.element.android.libraries.pushproviders.api.PusherSubscriber
|
import io.element.android.libraries.pushproviders.api.PusherSubscriber
|
||||||
import io.element.android.libraries.pushstore.api.UserPushStoreFactory
|
import io.element.android.libraries.pushstore.api.UserPushStoreFactory
|
||||||
|
|
@ -66,7 +66,7 @@ class DefaultFirebaseNewTokenHandlerTest {
|
||||||
storeData(aSessionData(A_USER_ID_2))
|
storeData(aSessionData(A_USER_ID_2))
|
||||||
storeData(aSessionData(A_USER_ID_3))
|
storeData(aSessionData(A_USER_ID_3))
|
||||||
},
|
},
|
||||||
matrixAuthenticationService = FakeAuthenticationService(
|
matrixAuthenticationService = FakeMatrixAuthenticationService(
|
||||||
matrixClientResult = { sessionId ->
|
matrixClientResult = { sessionId ->
|
||||||
when (sessionId) {
|
when (sessionId) {
|
||||||
A_USER_ID -> Result.success(aMatrixClient1)
|
A_USER_ID -> Result.success(aMatrixClient1)
|
||||||
|
|
@ -105,7 +105,7 @@ class DefaultFirebaseNewTokenHandlerTest {
|
||||||
sessionStore = InMemoryMultiSessionsStore().apply {
|
sessionStore = InMemoryMultiSessionsStore().apply {
|
||||||
storeData(aSessionData(A_USER_ID))
|
storeData(aSessionData(A_USER_ID))
|
||||||
},
|
},
|
||||||
matrixAuthenticationService = FakeAuthenticationService(
|
matrixAuthenticationService = FakeMatrixAuthenticationService(
|
||||||
matrixClientResult = { _ ->
|
matrixClientResult = { _ ->
|
||||||
Result.failure(IllegalStateException())
|
Result.failure(IllegalStateException())
|
||||||
}
|
}
|
||||||
|
|
@ -131,7 +131,7 @@ class DefaultFirebaseNewTokenHandlerTest {
|
||||||
sessionStore = InMemoryMultiSessionsStore().apply {
|
sessionStore = InMemoryMultiSessionsStore().apply {
|
||||||
storeData(aSessionData(A_USER_ID))
|
storeData(aSessionData(A_USER_ID))
|
||||||
},
|
},
|
||||||
matrixAuthenticationService = FakeAuthenticationService(
|
matrixAuthenticationService = FakeMatrixAuthenticationService(
|
||||||
matrixClientResult = { _ ->
|
matrixClientResult = { _ ->
|
||||||
Result.success(aMatrixClient1)
|
Result.success(aMatrixClient1)
|
||||||
}
|
}
|
||||||
|
|
@ -154,7 +154,7 @@ class DefaultFirebaseNewTokenHandlerTest {
|
||||||
pusherSubscriber: PusherSubscriber = FakePusherSubscriber(),
|
pusherSubscriber: PusherSubscriber = FakePusherSubscriber(),
|
||||||
sessionStore: SessionStore = InMemorySessionStore(),
|
sessionStore: SessionStore = InMemorySessionStore(),
|
||||||
userPushStoreFactory: UserPushStoreFactory = FakeUserPushStoreFactory(),
|
userPushStoreFactory: UserPushStoreFactory = FakeUserPushStoreFactory(),
|
||||||
matrixAuthenticationService: MatrixAuthenticationService = FakeAuthenticationService(),
|
matrixAuthenticationService: MatrixAuthenticationService = FakeMatrixAuthenticationService(),
|
||||||
firebaseStore: FirebaseStore = InMemoryFirebaseStore(),
|
firebaseStore: FirebaseStore = InMemoryFirebaseStore(),
|
||||||
): FirebaseNewTokenHandler {
|
): FirebaseNewTokenHandler {
|
||||||
return DefaultFirebaseNewTokenHandler(
|
return DefaultFirebaseNewTokenHandler(
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ import io.element.android.libraries.matrix.api.auth.MatrixAuthenticationService
|
||||||
import io.element.android.libraries.matrix.test.A_SECRET
|
import io.element.android.libraries.matrix.test.A_SECRET
|
||||||
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.FakeMatrixClient
|
import io.element.android.libraries.matrix.test.FakeMatrixClient
|
||||||
import io.element.android.libraries.matrix.test.auth.FakeAuthenticationService
|
import io.element.android.libraries.matrix.test.auth.FakeMatrixAuthenticationService
|
||||||
import io.element.android.libraries.push.test.FakePusherSubscriber
|
import io.element.android.libraries.push.test.FakePusherSubscriber
|
||||||
import io.element.android.libraries.pushproviders.api.PusherSubscriber
|
import io.element.android.libraries.pushproviders.api.PusherSubscriber
|
||||||
import io.element.android.libraries.pushstore.api.UserPushStoreFactory
|
import io.element.android.libraries.pushstore.api.UserPushStoreFactory
|
||||||
|
|
@ -86,7 +86,7 @@ class DefaultUnifiedPushNewGatewayHandlerTest {
|
||||||
pusherSubscriber = FakePusherSubscriber(
|
pusherSubscriber = FakePusherSubscriber(
|
||||||
registerPusherResult = { _, _, _ -> Result.failure(IllegalStateException("an error")) }
|
registerPusherResult = { _, _, _ -> Result.failure(IllegalStateException("an error")) }
|
||||||
),
|
),
|
||||||
matrixAuthenticationService = FakeAuthenticationService(matrixClientResult = { Result.success(aMatrixClient) }),
|
matrixAuthenticationService = FakeMatrixAuthenticationService(matrixClientResult = { Result.success(aMatrixClient) }),
|
||||||
)
|
)
|
||||||
val result = defaultUnifiedPushNewGatewayHandler.handle(
|
val result = defaultUnifiedPushNewGatewayHandler.handle(
|
||||||
endpoint = "aEndpoint",
|
endpoint = "aEndpoint",
|
||||||
|
|
@ -114,7 +114,7 @@ class DefaultUnifiedPushNewGatewayHandlerTest {
|
||||||
pusherSubscriber = FakePusherSubscriber(
|
pusherSubscriber = FakePusherSubscriber(
|
||||||
registerPusherResult = lambda
|
registerPusherResult = lambda
|
||||||
),
|
),
|
||||||
matrixAuthenticationService = FakeAuthenticationService(matrixClientResult = { Result.success(aMatrixClient) }),
|
matrixAuthenticationService = FakeMatrixAuthenticationService(matrixClientResult = { Result.success(aMatrixClient) }),
|
||||||
)
|
)
|
||||||
val result = defaultUnifiedPushNewGatewayHandler.handle(
|
val result = defaultUnifiedPushNewGatewayHandler.handle(
|
||||||
endpoint = "aEndpoint",
|
endpoint = "aEndpoint",
|
||||||
|
|
@ -131,7 +131,7 @@ class DefaultUnifiedPushNewGatewayHandlerTest {
|
||||||
pusherSubscriber: PusherSubscriber = FakePusherSubscriber(),
|
pusherSubscriber: PusherSubscriber = FakePusherSubscriber(),
|
||||||
userPushStoreFactory: UserPushStoreFactory = FakeUserPushStoreFactory(),
|
userPushStoreFactory: UserPushStoreFactory = FakeUserPushStoreFactory(),
|
||||||
pushClientSecret: PushClientSecret = FakePushClientSecret(),
|
pushClientSecret: PushClientSecret = FakePushClientSecret(),
|
||||||
matrixAuthenticationService: MatrixAuthenticationService = FakeAuthenticationService()
|
matrixAuthenticationService: MatrixAuthenticationService = FakeMatrixAuthenticationService()
|
||||||
): DefaultUnifiedPushNewGatewayHandler {
|
): DefaultUnifiedPushNewGatewayHandler {
|
||||||
return DefaultUnifiedPushNewGatewayHandler(
|
return DefaultUnifiedPushNewGatewayHandler(
|
||||||
pusherSubscriber = pusherSubscriber,
|
pusherSubscriber = pusherSubscriber,
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ import io.element.android.libraries.voicerecorder.impl.audio.AudioConfig
|
||||||
import io.element.android.libraries.voicerecorder.impl.audio.SampleRate
|
import io.element.android.libraries.voicerecorder.impl.audio.SampleRate
|
||||||
import io.element.android.libraries.voicerecorder.impl.di.VoiceRecorderModule
|
import io.element.android.libraries.voicerecorder.impl.di.VoiceRecorderModule
|
||||||
import io.element.android.libraries.voicerecorder.test.FakeAudioLevelCalculator
|
import io.element.android.libraries.voicerecorder.test.FakeAudioLevelCalculator
|
||||||
import io.element.android.libraries.voicerecorder.test.FakeAudioRecorderFactory
|
import io.element.android.libraries.voicerecorder.test.FakeAudioReaderFactory
|
||||||
import io.element.android.libraries.voicerecorder.test.FakeEncoder
|
import io.element.android.libraries.voicerecorder.test.FakeEncoder
|
||||||
import io.element.android.libraries.voicerecorder.test.FakeFileSystem
|
import io.element.android.libraries.voicerecorder.test.FakeFileSystem
|
||||||
import io.element.android.libraries.voicerecorder.test.FakeVoiceFileManager
|
import io.element.android.libraries.voicerecorder.test.FakeVoiceFileManager
|
||||||
|
|
@ -136,7 +136,7 @@ class VoiceRecorderImplTest {
|
||||||
return VoiceRecorderImpl(
|
return VoiceRecorderImpl(
|
||||||
dispatchers = testCoroutineDispatchers(),
|
dispatchers = testCoroutineDispatchers(),
|
||||||
timeSource = timeSource,
|
timeSource = timeSource,
|
||||||
audioReaderFactory = FakeAudioRecorderFactory(
|
audioReaderFactory = FakeAudioReaderFactory(
|
||||||
audio = AUDIO,
|
audio = AUDIO,
|
||||||
),
|
),
|
||||||
encoder = FakeEncoder(fakeFileSystem),
|
encoder = FakeEncoder(fakeFileSystem),
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ import io.element.android.libraries.voicerecorder.impl.audio.Audio
|
||||||
import io.element.android.libraries.voicerecorder.impl.audio.AudioConfig
|
import io.element.android.libraries.voicerecorder.impl.audio.AudioConfig
|
||||||
import io.element.android.libraries.voicerecorder.impl.audio.AudioReader
|
import io.element.android.libraries.voicerecorder.impl.audio.AudioReader
|
||||||
|
|
||||||
class FakeAudioRecorderFactory(
|
class FakeAudioReaderFactory(
|
||||||
private val audio: List<Audio>
|
private val audio: List<Audio>
|
||||||
) : AudioReader.Factory {
|
) : AudioReader.Factory {
|
||||||
override fun create(config: AudioConfig, dispatchers: CoroutineDispatchers): AudioReader {
|
override fun create(config: AudioConfig, dispatchers: CoroutineDispatchers): AudioReader {
|
||||||
|
|
@ -20,6 +20,8 @@ import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||||
import com.bumble.appyx.core.node.Node
|
import com.bumble.appyx.core.node.Node
|
||||||
import com.lemonappdev.konsist.api.Konsist
|
import com.lemonappdev.konsist.api.Konsist
|
||||||
import com.lemonappdev.konsist.api.ext.list.withAllParentsOf
|
import com.lemonappdev.konsist.api.ext.list.withAllParentsOf
|
||||||
|
import com.lemonappdev.konsist.api.ext.list.withNameContaining
|
||||||
|
import com.lemonappdev.konsist.api.ext.list.withoutName
|
||||||
import com.lemonappdev.konsist.api.verify.assertTrue
|
import com.lemonappdev.konsist.api.verify.assertTrue
|
||||||
import io.element.android.libraries.architecture.Presenter
|
import io.element.android.libraries.architecture.Presenter
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
|
@ -62,4 +64,21 @@ class KonsistClassNameTest {
|
||||||
it.name.endsWith("Provider") && (it.name.contains("IconList") || it.name.contains(providedType))
|
it.name.endsWith("Provider") && (it.name.contains("IconList") || it.name.contains(providedType))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `Fake classes must be named using Fake and the interface it fakes`() {
|
||||||
|
Konsist.scopeFromProject()
|
||||||
|
.classes()
|
||||||
|
.withNameContaining("Fake")
|
||||||
|
.withoutName(
|
||||||
|
"FakeFileSystem",
|
||||||
|
"FakeImageLoader",
|
||||||
|
"FakeRustRoom",
|
||||||
|
)
|
||||||
|
.assertTrue {
|
||||||
|
val interfaceName = it.name.replace("Fake", "")
|
||||||
|
it.name.startsWith("Fake") &&
|
||||||
|
it.parents.any { parent -> parent.name.replace(".", "") == interfaceName }
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue