Skip to content

Commit eea976b

Browse files
committed
Add unit test on toSessionData
1 parent c26e889 commit eea976b

File tree

1 file changed

+98
-0
lines changed
  • libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/mapper

1 file changed

+98
-0
lines changed
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
/*
2+
* Copyright 2024 New Vector Ltd.
3+
*
4+
* SPDX-License-Identifier: AGPL-3.0-only
5+
* Please see LICENSE in the repository root for full details.
6+
*/
7+
8+
package io.element.android.libraries.matrix.impl.mapper
9+
10+
import com.google.common.truth.Truth.assertThat
11+
import io.element.android.libraries.matrix.impl.paths.SessionPaths
12+
import io.element.android.libraries.matrix.test.A_DEVICE_ID
13+
import io.element.android.libraries.matrix.test.A_HOMESERVER_URL
14+
import io.element.android.libraries.matrix.test.A_HOMESERVER_URL_2
15+
import io.element.android.libraries.matrix.test.A_SECRET
16+
import io.element.android.libraries.matrix.test.A_USER_ID
17+
import io.element.android.libraries.sessionstorage.api.LoginType
18+
import org.junit.Test
19+
import org.matrix.rustcomponents.sdk.Session
20+
import org.matrix.rustcomponents.sdk.SlidingSyncVersion
21+
import java.io.File
22+
23+
class SessionKtTest {
24+
@Test
25+
fun `toSessionData compute the expected result`() {
26+
val result = aRustSession().toSessionData(
27+
isTokenValid = true,
28+
loginType = LoginType.PASSWORD,
29+
passphrase = A_SECRET,
30+
sessionPaths = SessionPaths(File("/a/file"), File("/a/cache")),
31+
)
32+
assertThat(result.userId).isEqualTo(A_USER_ID.value)
33+
assertThat(result.deviceId).isEqualTo(A_DEVICE_ID.value)
34+
assertThat(result.accessToken).isEqualTo("accessToken")
35+
assertThat(result.refreshToken).isEqualTo("refreshToken")
36+
assertThat(result.homeserverUrl).isEqualTo(A_HOMESERVER_URL)
37+
assertThat(result.isTokenValid).isTrue()
38+
assertThat(result.oidcData).isNull()
39+
assertThat(result.slidingSyncProxy).isNull()
40+
assertThat(result.loginType).isEqualTo(LoginType.PASSWORD)
41+
assertThat(result.loginTimestamp).isNotNull()
42+
assertThat(result.passphrase).isEqualTo(A_SECRET)
43+
assertThat(result.sessionPath).isEqualTo("/a/file")
44+
assertThat(result.cachePath).isEqualTo("/a/cache")
45+
}
46+
47+
@Test
48+
fun `toSessionData can change the validity of the token`() {
49+
val result = aRustSession().toSessionData(
50+
isTokenValid = false,
51+
loginType = LoginType.PASSWORD,
52+
passphrase = A_SECRET,
53+
sessionPaths = SessionPaths(File("/a/file"), File("/a/cache")),
54+
homeserverUrl = null,
55+
)
56+
assertThat(result.isTokenValid).isFalse()
57+
}
58+
59+
@Test
60+
fun `toSessionData can override the value of the homeserver url`() {
61+
val result = aRustSession().toSessionData(
62+
isTokenValid = true,
63+
loginType = LoginType.PASSWORD,
64+
passphrase = A_SECRET,
65+
sessionPaths = SessionPaths(File("/a/file"), File("/a/cache")),
66+
homeserverUrl = A_HOMESERVER_URL_2,
67+
)
68+
assertThat(result.homeserverUrl).isEqualTo(A_HOMESERVER_URL_2)
69+
}
70+
71+
@Test
72+
fun `toSessionData copy the sliding sync url if present`() {
73+
val result = aRustSession(
74+
proxy = SlidingSyncVersion.Proxy("proxyUrl")
75+
).toSessionData(
76+
isTokenValid = true,
77+
loginType = LoginType.PASSWORD,
78+
passphrase = A_SECRET,
79+
sessionPaths = SessionPaths(File("/a/file"), File("/a/cache")),
80+
homeserverUrl = A_HOMESERVER_URL_2,
81+
)
82+
assertThat(result.slidingSyncProxy).isEqualTo("proxyUrl")
83+
}
84+
}
85+
86+
internal fun aRustSession(
87+
proxy: SlidingSyncVersion = SlidingSyncVersion.None
88+
): Session {
89+
return Session(
90+
accessToken = "accessToken",
91+
refreshToken = "refreshToken",
92+
userId = A_USER_ID.value,
93+
deviceId = A_DEVICE_ID.value,
94+
homeserverUrl = A_HOMESERVER_URL,
95+
oidcData = null,
96+
slidingSyncVersion = proxy,
97+
)
98+
}

0 commit comments

Comments
 (0)