diff --git a/features/login/impl/src/test/kotlin/io/element/android/features/login/impl/MatrixHomeServerDetails.kt b/features/login/impl/src/test/kotlin/io/element/android/features/login/impl/MatrixHomeServerDetails.kt new file mode 100644 index 0000000000..1bf32d20e2 --- /dev/null +++ b/features/login/impl/src/test/kotlin/io/element/android/features/login/impl/MatrixHomeServerDetails.kt @@ -0,0 +1,21 @@ +/* + * Copyright 2025 New Vector Ltd. + * + * SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial + * Please see LICENSE files in the repository root for full details. + */ + +package io.element.android.features.login.impl + +import io.element.android.libraries.matrix.api.auth.MatrixHomeServerDetails +import io.element.android.libraries.matrix.test.A_HOMESERVER_URL + +fun aMatrixHomeServerDetails( + url: String = A_HOMESERVER_URL, + supportsPasswordLogin: Boolean = false, + supportsOidcLogin: Boolean = false, +) = MatrixHomeServerDetails( + url = url, + supportsPasswordLogin = supportsPasswordLogin, + supportsOidcLogin = supportsOidcLogin, +) diff --git a/features/login/impl/src/test/kotlin/io/element/android/features/login/impl/changeserver/ChangeServerPresenterTest.kt b/features/login/impl/src/test/kotlin/io/element/android/features/login/impl/changeserver/ChangeServerPresenterTest.kt index 47f9fee728..d723796265 100644 --- a/features/login/impl/src/test/kotlin/io/element/android/features/login/impl/changeserver/ChangeServerPresenterTest.kt +++ b/features/login/impl/src/test/kotlin/io/element/android/features/login/impl/changeserver/ChangeServerPresenterTest.kt @@ -10,6 +10,7 @@ package io.element.android.features.login.impl.changeserver import com.google.common.truth.Truth.assertThat import io.element.android.features.enterprise.api.EnterpriseService import io.element.android.features.enterprise.test.FakeEnterpriseService +import io.element.android.features.login.impl.aMatrixHomeServerDetails import io.element.android.features.login.impl.accesscontrol.DefaultAccountProviderAccessControl import io.element.android.features.login.impl.accountprovider.AccountProvider import io.element.android.features.login.impl.accountprovider.AccountProviderDataSource @@ -19,7 +20,6 @@ import io.element.android.features.wellknown.test.anElementWellKnown import io.element.android.libraries.architecture.AsyncData import io.element.android.libraries.core.uri.ensureProtocol import io.element.android.libraries.matrix.test.AN_EXCEPTION -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.auth.FakeMatrixAuthenticationService import io.element.android.libraries.wellknown.api.ElementWellKnown @@ -49,7 +49,7 @@ class ChangeServerPresenterTest { fun `present - change server ok`() = runTest { val authenticationService = FakeMatrixAuthenticationService( setHomeserverResult = { - Result.success(A_HOMESERVER) + Result.success(aMatrixHomeServerDetails()) }, ) createPresenter( diff --git a/features/login/impl/src/test/kotlin/io/element/android/features/login/impl/screens/confirmaccountprovider/ConfirmAccountProviderPresenterTest.kt b/features/login/impl/src/test/kotlin/io/element/android/features/login/impl/screens/confirmaccountprovider/ConfirmAccountProviderPresenterTest.kt index 82c2caff61..792abdf1a4 100644 --- a/features/login/impl/src/test/kotlin/io/element/android/features/login/impl/screens/confirmaccountprovider/ConfirmAccountProviderPresenterTest.kt +++ b/features/login/impl/src/test/kotlin/io/element/android/features/login/impl/screens/confirmaccountprovider/ConfirmAccountProviderPresenterTest.kt @@ -13,6 +13,7 @@ import app.cash.turbine.test import com.google.common.truth.Truth.assertThat import io.element.android.appconfig.AuthenticationConfig import io.element.android.features.enterprise.test.FakeEnterpriseService +import io.element.android.features.login.impl.aMatrixHomeServerDetails import io.element.android.features.login.impl.accountprovider.AccountProviderDataSource import io.element.android.features.login.impl.login.LoginMode import io.element.android.features.login.impl.screens.createaccount.AccountCreationNotSupported @@ -22,8 +23,6 @@ import io.element.android.features.login.impl.web.WebClientUrlForAuthenticationR import io.element.android.libraries.architecture.AsyncData import io.element.android.libraries.matrix.api.auth.MatrixAuthenticationService import io.element.android.libraries.matrix.test.AN_EXCEPTION -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.auth.FakeMatrixAuthenticationService import io.element.android.libraries.oidc.api.OidcAction import io.element.android.libraries.oidc.api.OidcActionFlow @@ -55,7 +54,7 @@ class ConfirmAccountProviderPresenterTest { fun `present - continue password login`() = runTest { val authenticationService = FakeMatrixAuthenticationService( setHomeserverResult = { - Result.success(A_HOMESERVER) + Result.success(aMatrixHomeServerDetails(supportsPasswordLogin = true)) }, ) val presenter = createConfirmAccountProviderPresenter( @@ -80,7 +79,7 @@ class ConfirmAccountProviderPresenterTest { fun `present - continue oidc`() = runTest { val authenticationService = FakeMatrixAuthenticationService( setHomeserverResult = { - Result.success(A_HOMESERVER_OIDC) + Result.success(aMatrixHomeServerDetails(supportsOidcLogin = true)) }, ) val presenter = createConfirmAccountProviderPresenter( @@ -105,7 +104,7 @@ class ConfirmAccountProviderPresenterTest { fun `present - oidc - cancel with failure`() = runTest { val authenticationService = FakeMatrixAuthenticationService( setHomeserverResult = { - Result.success(A_HOMESERVER_OIDC) + Result.success(aMatrixHomeServerDetails(supportsOidcLogin = true)) }, ) val defaultOidcActionFlow = FakeOidcActionFlow() @@ -136,7 +135,7 @@ class ConfirmAccountProviderPresenterTest { fun `present - oidc - cancel with success`() = runTest { val authenticationService = FakeMatrixAuthenticationService( setHomeserverResult = { - Result.success(A_HOMESERVER_OIDC) + Result.success(aMatrixHomeServerDetails(supportsOidcLogin = true)) }, ) val defaultOidcActionFlow = FakeOidcActionFlow() @@ -166,7 +165,7 @@ class ConfirmAccountProviderPresenterTest { fun `present - oidc - cancel to unblock`() = runTest { val authenticationService = FakeMatrixAuthenticationService( setHomeserverResult = { - Result.success(A_HOMESERVER_OIDC) + Result.success(aMatrixHomeServerDetails(supportsOidcLogin = true)) }, ) val defaultOidcActionFlow = FakeOidcActionFlow() @@ -192,7 +191,7 @@ class ConfirmAccountProviderPresenterTest { fun `present - oidc - success with failure`() = runTest { val authenticationService = FakeMatrixAuthenticationService( setHomeserverResult = { - Result.success(A_HOMESERVER_OIDC) + Result.success(aMatrixHomeServerDetails(supportsOidcLogin = true)) }, ) val defaultOidcActionFlow = FakeOidcActionFlow() @@ -225,7 +224,7 @@ class ConfirmAccountProviderPresenterTest { fun `present - oidc - success with success`() = runTest { val authenticationService = FakeMatrixAuthenticationService( setHomeserverResult = { - Result.success(A_HOMESERVER_OIDC) + Result.success(aMatrixHomeServerDetails(supportsOidcLogin = true)) }, ) val defaultOidcActionFlow = FakeOidcActionFlow() @@ -308,7 +307,7 @@ class ConfirmAccountProviderPresenterTest { fun `present - confirm account creation without oidc and without url generates an error`() = runTest { val authenticationService = FakeMatrixAuthenticationService( setHomeserverResult = { - Result.success(A_HOMESERVER) + Result.success(aMatrixHomeServerDetails()) }, ) val presenter = createConfirmAccountProviderPresenter( @@ -338,7 +337,7 @@ class ConfirmAccountProviderPresenterTest { fun `present - confirm account creation with oidc is successful`() = runTest { val authenticationService = FakeMatrixAuthenticationService( setHomeserverResult = { - Result.success(A_HOMESERVER_OIDC) + Result.success(aMatrixHomeServerDetails(supportsOidcLogin = true)) }, ) val presenter = createConfirmAccountProviderPresenter( @@ -362,7 +361,7 @@ class ConfirmAccountProviderPresenterTest { val aUrl = "aUrl" val authenticationService = FakeMatrixAuthenticationService( setHomeserverResult = { - Result.success(A_HOMESERVER_OIDC) + Result.success(aMatrixHomeServerDetails(supportsOidcLogin = true)) }, ) val presenter = createConfirmAccountProviderPresenter( @@ -387,7 +386,7 @@ class ConfirmAccountProviderPresenterTest { val aUrl = "aUrl" val authenticationService = FakeMatrixAuthenticationService( setHomeserverResult = { - Result.success(A_HOMESERVER) + Result.success(aMatrixHomeServerDetails()) }, ) val presenter = createConfirmAccountProviderPresenter( diff --git a/features/login/impl/src/test/kotlin/io/element/android/features/login/impl/screens/loginpassword/LoginPasswordPresenterTest.kt b/features/login/impl/src/test/kotlin/io/element/android/features/login/impl/screens/loginpassword/LoginPasswordPresenterTest.kt index fd048d1db0..bfdc0a6785 100644 --- a/features/login/impl/src/test/kotlin/io/element/android/features/login/impl/screens/loginpassword/LoginPasswordPresenterTest.kt +++ b/features/login/impl/src/test/kotlin/io/element/android/features/login/impl/screens/loginpassword/LoginPasswordPresenterTest.kt @@ -10,11 +10,11 @@ package io.element.android.features.login.impl.screens.loginpassword import com.google.common.truth.Truth.assertThat import io.element.android.appconfig.AuthenticationConfig import io.element.android.features.enterprise.test.FakeEnterpriseService +import io.element.android.features.login.impl.aMatrixHomeServerDetails import io.element.android.features.login.impl.accountprovider.AccountProviderDataSource import io.element.android.libraries.architecture.AsyncData import io.element.android.libraries.matrix.api.core.SessionId import io.element.android.libraries.matrix.test.AN_EXCEPTION -import io.element.android.libraries.matrix.test.A_HOMESERVER 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_USER_NAME @@ -44,7 +44,7 @@ class LoginPasswordPresenterTest { fun `present - enter login and password`() = runTest { val authenticationService = FakeMatrixAuthenticationService( setHomeserverResult = { - Result.success(A_HOMESERVER) + Result.success(aMatrixHomeServerDetails()) }, ) createLoginPasswordPresenter( @@ -66,7 +66,7 @@ class LoginPasswordPresenterTest { fun `present - submit`() = runTest { val authenticationService = FakeMatrixAuthenticationService( setHomeserverResult = { - Result.success(A_HOMESERVER) + Result.success(aMatrixHomeServerDetails()) }, ) createLoginPasswordPresenter( @@ -89,7 +89,7 @@ class LoginPasswordPresenterTest { fun `present - submit with error`() = runTest { val authenticationService = FakeMatrixAuthenticationService( setHomeserverResult = { - Result.success(A_HOMESERVER) + Result.success(aMatrixHomeServerDetails()) }, ) createLoginPasswordPresenter( @@ -113,7 +113,7 @@ class LoginPasswordPresenterTest { fun `present - clear error`() = runTest { val authenticationService = FakeMatrixAuthenticationService( setHomeserverResult = { - Result.success(A_HOMESERVER) + Result.success(aMatrixHomeServerDetails()) }, ) createLoginPasswordPresenter( diff --git a/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/TestData.kt b/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/TestData.kt index 8c22c90cd7..dc1817cf12 100644 --- a/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/TestData.kt +++ b/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/TestData.kt @@ -8,7 +8,6 @@ package io.element.android.libraries.matrix.test import androidx.annotation.ColorInt -import io.element.android.libraries.matrix.api.auth.MatrixHomeServerDetails import io.element.android.libraries.matrix.api.core.DeviceId import io.element.android.libraries.matrix.api.core.EventId import io.element.android.libraries.matrix.api.core.RoomAlias @@ -79,8 +78,6 @@ const val AN_ACCOUNT_PROVIDER = "matrix.org" const val AN_ACCOUNT_PROVIDER_2 = "element.io" const val AN_ACCOUNT_PROVIDER_3 = "other.io" -val A_HOMESERVER = MatrixHomeServerDetails(A_HOMESERVER_URL, supportsPasswordLogin = true, supportsOidcLogin = false) -val A_HOMESERVER_OIDC = MatrixHomeServerDetails(A_HOMESERVER_URL, supportsPasswordLogin = false, supportsOidcLogin = true) val A_ROOM_NOTIFICATION_MODE = RoomNotificationMode.MUTE const val AN_AVATAR_URL = "mxc://data"