diff --git a/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/screens/qrcode/scan/QrCodeScanPresenter.kt b/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/screens/qrcode/scan/QrCodeScanPresenter.kt index 2f93d5b214..5e298604a4 100644 --- a/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/screens/qrcode/scan/QrCodeScanPresenter.kt +++ b/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/screens/qrcode/scan/QrCodeScanPresenter.kt @@ -17,7 +17,6 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue import dev.zacsweers.metro.Inject -import io.element.android.features.login.impl.accesscontrol.DefaultAccountProviderAccessControl import io.element.android.features.login.impl.qrcode.QrCodeLoginManager import io.element.android.libraries.architecture.AsyncAction import io.element.android.libraries.architecture.Presenter @@ -39,7 +38,6 @@ class QrCodeScanPresenter( private val qrCodeLoginDataFactory: MatrixQrCodeLoginDataFactory, private val qrCodeLoginManager: QrCodeLoginManager, private val coroutineDispatchers: CoroutineDispatchers, - private val defaultAccountProviderAccessControl: DefaultAccountProviderAccessControl, ) : Presenter { private var isScanning by mutableStateOf(true) @@ -97,13 +95,6 @@ class QrCodeScanPresenter( val data = qrCodeLoginDataFactory.parseQrCodeData(code).onFailure { Timber.e(it, "Error parsing QR code data") }.getOrThrow() - val serverName = data.serverName() - if (serverName != null) { - defaultAccountProviderAccessControl.assertIsAllowedToConnectToAccountProvider( - title = serverName, - accountProviderUrl = serverName, - ) - } data }.runCatchingUpdatingState(codeScannedAction) }.invokeOnCompletion { diff --git a/features/login/impl/src/test/kotlin/io/element/android/features/login/impl/screens/qrcode/scan/QrCodeScanPresenterTest.kt b/features/login/impl/src/test/kotlin/io/element/android/features/login/impl/screens/qrcode/scan/QrCodeScanPresenterTest.kt index 65a0713f64..d4f23a452c 100644 --- a/features/login/impl/src/test/kotlin/io/element/android/features/login/impl/screens/qrcode/scan/QrCodeScanPresenterTest.kt +++ b/features/login/impl/src/test/kotlin/io/element/android/features/login/impl/screens/qrcode/scan/QrCodeScanPresenterTest.kt @@ -9,18 +9,12 @@ package io.element.android.features.login.impl.screens.qrcode.scan 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.accesscontrol.DefaultAccountProviderAccessControl -import io.element.android.features.login.impl.changeserver.AccountProviderAccessException import io.element.android.features.login.impl.qrcode.FakeQrCodeLoginManager -import io.element.android.features.wellknown.test.FakeWellknownRetriever import io.element.android.libraries.core.coroutine.CoroutineDispatchers import io.element.android.libraries.matrix.api.auth.qrlogin.QrCodeLoginStep import io.element.android.libraries.matrix.api.auth.qrlogin.QrLoginException import io.element.android.libraries.matrix.test.auth.qrlogin.FakeMatrixQrCodeLoginData import io.element.android.libraries.matrix.test.auth.qrlogin.FakeMatrixQrCodeLoginDataFactory -import io.element.android.libraries.wellknown.api.WellknownRetriever import io.element.android.tests.testutils.lambda.lambdaRecorder import io.element.android.tests.testutils.test import io.element.android.tests.testutils.testCoroutineDispatchers @@ -53,9 +47,6 @@ class QrCodeScanPresenterTest { ) val presenter = createQrCodeScanPresenter( qrCodeLoginDataFactory = qrCodeLoginDataFactory, - enterpriseService = FakeEnterpriseService( - isAllowedToConnectToHomeserverResult = { true }, - ) ) presenter.test { val initialState = awaitItem() @@ -66,44 +57,6 @@ class QrCodeScanPresenterTest { } } - @Test - fun `present - scanned QR code successfully, but homeserver not allowed`() = runTest { - val qrCodeLoginDataFactory = FakeMatrixQrCodeLoginDataFactory( - parseQrCodeLoginDataResult = { - Result.success( - FakeMatrixQrCodeLoginData( - serverNameResult = { "example.com" } - ) - ) - } - ) - val presenter = createQrCodeScanPresenter( - qrCodeLoginDataFactory = qrCodeLoginDataFactory, - enterpriseService = FakeEnterpriseService( - isAllowedToConnectToHomeserverResult = { false }, - defaultHomeserverListResult = { listOf("element.io") }, - ) - ) - presenter.test { - val initialState = awaitItem() - initialState.eventSink(QrCodeScanEvents.QrCodeScanned(byteArrayOf())) - assertThat(awaitItem().isScanning).isFalse() - assertThat(awaitItem().authenticationAction.isLoading()).isTrue() - awaitItem().also { state -> - assertThat( - (state.authenticationAction - .errorOrNull() as AccountProviderAccessException.UnauthorizedAccountProviderException).unauthorisedAccountProviderTitle - ) - .isEqualTo("example.com") - assertThat( - (state.authenticationAction - .errorOrNull() as AccountProviderAccessException.UnauthorizedAccountProviderException).authorisedAccountProviderTitles - ) - .containsExactly("element.io") - } - } - } - @Test fun `present - scanned QR code failed and can be retried`() = runTest { val qrCodeLoginDataFactory = FakeMatrixQrCodeLoginDataFactory( @@ -153,15 +106,9 @@ class QrCodeScanPresenterTest { qrCodeLoginDataFactory: FakeMatrixQrCodeLoginDataFactory = FakeMatrixQrCodeLoginDataFactory(), coroutineDispatchers: CoroutineDispatchers = testCoroutineDispatchers(), qrCodeLoginManager: FakeQrCodeLoginManager = FakeQrCodeLoginManager(), - enterpriseService: EnterpriseService = FakeEnterpriseService(), - wellknownRetriever: WellknownRetriever = FakeWellknownRetriever(), ) = QrCodeScanPresenter( qrCodeLoginDataFactory = qrCodeLoginDataFactory, qrCodeLoginManager = qrCodeLoginManager, coroutineDispatchers = coroutineDispatchers, - defaultAccountProviderAccessControl = DefaultAccountProviderAccessControl( - enterpriseService = enterpriseService, - wellknownRetriever = wellknownRetriever, - ), ) }