Skip to content

Commit 70e3e76

Browse files
committed
Avoid usage of not() and add unit tests.
1 parent 98792c9 commit 70e3e76

File tree

7 files changed

+58
-6
lines changed

7 files changed

+58
-6
lines changed

features/login/impl/src/main/kotlin/io/element/android/features/login/impl/changeserver/ChangeServerPresenter.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ class ChangeServerPresenter(
6161
accountProviderUrl = data.url,
6262
)
6363
val details = authenticationService.setHomeserver(data.url).getOrThrow()
64-
if (details.supportsOidcLogin.not() && details.supportsPasswordLogin.not()) {
64+
if (details.isSupported) {
6565
throw ChangeServerError.UnsupportedServer
6666
}
6767
// Homeserver is valid, remember user choice

features/login/impl/src/test/kotlin/io/element/android/features/login/impl/changeserver/ChangeServerPresenterTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ package io.element.android.features.login.impl.changeserver
1010
import com.google.common.truth.Truth.assertThat
1111
import io.element.android.features.enterprise.api.EnterpriseService
1212
import io.element.android.features.enterprise.test.FakeEnterpriseService
13-
import io.element.android.features.login.impl.aMatrixHomeServerDetails
1413
import io.element.android.features.login.impl.accesscontrol.DefaultAccountProviderAccessControl
1514
import io.element.android.features.login.impl.accountprovider.AccountProvider
1615
import io.element.android.features.login.impl.accountprovider.AccountProviderDataSource
@@ -22,6 +21,7 @@ import io.element.android.libraries.core.uri.ensureProtocol
2221
import io.element.android.libraries.matrix.test.AN_EXCEPTION
2322
import io.element.android.libraries.matrix.test.A_HOMESERVER_URL
2423
import io.element.android.libraries.matrix.test.auth.FakeMatrixAuthenticationService
24+
import io.element.android.libraries.matrix.test.auth.aMatrixHomeServerDetails
2525
import io.element.android.libraries.wellknown.api.ElementWellKnown
2626
import io.element.android.libraries.wellknown.api.WellknownRetriever
2727
import io.element.android.libraries.wellknown.api.WellknownRetrieverResult

features/login/impl/src/test/kotlin/io/element/android/features/login/impl/screens/confirmaccountprovider/ConfirmAccountProviderPresenterTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ package io.element.android.features.login.impl.screens.confirmaccountprovider
1010
import com.google.common.truth.Truth.assertThat
1111
import io.element.android.appconfig.AuthenticationConfig
1212
import io.element.android.features.enterprise.test.FakeEnterpriseService
13-
import io.element.android.features.login.impl.aMatrixHomeServerDetails
1413
import io.element.android.features.login.impl.accountprovider.AccountProviderDataSource
1514
import io.element.android.features.login.impl.login.LoginMode
1615
import io.element.android.features.login.impl.screens.createaccount.AccountCreationNotSupported
@@ -21,6 +20,7 @@ import io.element.android.libraries.architecture.AsyncData
2120
import io.element.android.libraries.matrix.api.auth.MatrixAuthenticationService
2221
import io.element.android.libraries.matrix.test.AN_EXCEPTION
2322
import io.element.android.libraries.matrix.test.auth.FakeMatrixAuthenticationService
23+
import io.element.android.libraries.matrix.test.auth.aMatrixHomeServerDetails
2424
import io.element.android.libraries.oidc.api.OidcAction
2525
import io.element.android.libraries.oidc.api.OidcActionFlow
2626
import io.element.android.libraries.oidc.test.customtab.FakeOidcActionFlow

features/login/impl/src/test/kotlin/io/element/android/features/login/impl/screens/loginpassword/LoginPasswordPresenterTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ package io.element.android.features.login.impl.screens.loginpassword
1010
import com.google.common.truth.Truth.assertThat
1111
import io.element.android.appconfig.AuthenticationConfig
1212
import io.element.android.features.enterprise.test.FakeEnterpriseService
13-
import io.element.android.features.login.impl.aMatrixHomeServerDetails
1413
import io.element.android.features.login.impl.accountprovider.AccountProviderDataSource
1514
import io.element.android.libraries.architecture.AsyncData
1615
import io.element.android.libraries.matrix.api.core.SessionId
@@ -19,6 +18,7 @@ import io.element.android.libraries.matrix.test.A_PASSWORD
1918
import io.element.android.libraries.matrix.test.A_SESSION_ID
2019
import io.element.android.libraries.matrix.test.A_USER_NAME
2120
import io.element.android.libraries.matrix.test.auth.FakeMatrixAuthenticationService
21+
import io.element.android.libraries.matrix.test.auth.aMatrixHomeServerDetails
2222
import io.element.android.tests.testutils.WarmUpRule
2323
import io.element.android.tests.testutils.test
2424
import kotlinx.coroutines.test.runTest

libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/auth/MatrixHomeServerDetails.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,6 @@ data class MatrixHomeServerDetails(
1111
val url: String,
1212
val supportsPasswordLogin: Boolean,
1313
val supportsOidcLogin: Boolean,
14-
)
14+
) {
15+
val isSupported = supportsPasswordLogin || supportsOidcLogin
16+
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
/*
2+
* Copyright 2025 New Vector Ltd.
3+
*
4+
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
5+
* Please see LICENSE files in the repository root for full details.
6+
*/
7+
8+
package io.element.android.libraries.matrix.api.auth
9+
10+
import com.google.common.truth.Truth.assertThat
11+
import io.element.android.libraries.matrix.test.auth.aMatrixHomeServerDetails
12+
import org.junit.Test
13+
14+
class MatrixHomeServerDetailsTest {
15+
@Test
16+
fun `if homeserver supports oidc, then it is supported`() {
17+
val sut = aMatrixHomeServerDetails(
18+
supportsOidcLogin = true,
19+
supportsPasswordLogin = false,
20+
)
21+
assertThat(sut.isSupported).isTrue()
22+
}
23+
24+
@Test
25+
fun `if homeserver supports password, then it is supported`() {
26+
val sut = aMatrixHomeServerDetails(
27+
supportsOidcLogin = false,
28+
supportsPasswordLogin = true,
29+
)
30+
assertThat(sut.isSupported).isTrue()
31+
}
32+
33+
@Test
34+
fun `if homeserver supports both, then it is supported`() {
35+
val sut = aMatrixHomeServerDetails(
36+
supportsOidcLogin = true,
37+
supportsPasswordLogin = true,
38+
)
39+
assertThat(sut.isSupported).isTrue()
40+
}
41+
42+
@Test
43+
fun `if homeserver supports none, then it is not supported`() {
44+
val sut = aMatrixHomeServerDetails(
45+
supportsOidcLogin = false,
46+
supportsPasswordLogin = false,
47+
)
48+
assertThat(sut.isSupported).isFalse()
49+
}
50+
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* Please see LICENSE files in the repository root for full details.
66
*/
77

8-
package io.element.android.features.login.impl
8+
package io.element.android.libraries.matrix.test.auth
99

1010
import io.element.android.libraries.matrix.api.auth.MatrixHomeServerDetails
1111
import io.element.android.libraries.matrix.test.A_HOMESERVER_URL

0 commit comments

Comments
 (0)