mirror of
https://github.com/vector-im/riotX-android
synced 2025-10-05 15:52:47 +02:00
test : try to fix some tests
This commit is contained in:
@@ -35,7 +35,7 @@ data class PowerLevelsContent(
|
|||||||
*/
|
*/
|
||||||
@Json(name = "kick") val kick: Int? = null,
|
@Json(name = "kick") val kick: Int? = null,
|
||||||
/**
|
/**
|
||||||
* The level required to invite a user. Defaults to 50 if unspecified.
|
* The level required to invite a user. Defaults to 0 if unspecified.
|
||||||
*/
|
*/
|
||||||
@Json(name = "invite") val invite: Int? = null,
|
@Json(name = "invite") val invite: Int? = null,
|
||||||
/**
|
/**
|
||||||
|
@@ -52,6 +52,7 @@ import org.matrix.android.sdk.api.session.room.model.RoomTopicContent
|
|||||||
import org.matrix.android.sdk.api.session.room.model.create.CreateRoomPreset
|
import org.matrix.android.sdk.api.session.room.model.create.CreateRoomPreset
|
||||||
import org.matrix.android.sdk.api.session.room.model.create.RoomCreateContent
|
import org.matrix.android.sdk.api.session.room.model.create.RoomCreateContent
|
||||||
import org.matrix.android.sdk.api.session.room.powerlevels.Role
|
import org.matrix.android.sdk.api.session.room.powerlevels.Role
|
||||||
|
import org.matrix.android.sdk.api.session.room.powerlevels.UserPowerLevel
|
||||||
import org.matrix.android.sdk.api.session.user.UserService
|
import org.matrix.android.sdk.api.session.user.UserService
|
||||||
import org.matrix.android.sdk.api.session.user.model.User
|
import org.matrix.android.sdk.api.session.user.model.User
|
||||||
import org.matrix.android.sdk.internal.session.profile.ThirdPartyIdentifier.Companion.MEDIUM_EMAIL
|
import org.matrix.android.sdk.internal.session.profile.ThirdPartyIdentifier.Companion.MEDIUM_EMAIL
|
||||||
@@ -372,13 +373,13 @@ internal class DefaultCreateLocalRoomStateEventsTaskTest {
|
|||||||
// Power levels
|
// Power levels
|
||||||
val powerLevelsContent = result.find { it.type == EventType.STATE_ROOM_POWER_LEVELS }?.content.toModel<PowerLevelsContent>()
|
val powerLevelsContent = result.find { it.type == EventType.STATE_ROOM_POWER_LEVELS }?.content.toModel<PowerLevelsContent>()
|
||||||
powerLevelsContent.shouldNotBeNull()
|
powerLevelsContent.shouldNotBeNull()
|
||||||
powerLevelsContent.ban shouldBeEqualTo Role.Moderator.value
|
powerLevelsContent.ban shouldBeEqualTo UserPowerLevel.Moderator.value
|
||||||
powerLevelsContent.kick shouldBeEqualTo Role.Moderator.value
|
powerLevelsContent.kick shouldBeEqualTo UserPowerLevel.Moderator.value
|
||||||
powerLevelsContent.invite shouldBeEqualTo Role.Moderator.value
|
powerLevelsContent.invite shouldBeEqualTo UserPowerLevel.User.value
|
||||||
powerLevelsContent.redact shouldBeEqualTo Role.Moderator.value
|
powerLevelsContent.redact shouldBeEqualTo UserPowerLevel.Moderator.value
|
||||||
powerLevelsContent.eventsDefault shouldBeEqualTo Role.User.value
|
powerLevelsContent.eventsDefault shouldBeEqualTo UserPowerLevel.User.value
|
||||||
powerLevelsContent.usersDefault shouldBeEqualTo Role.User.value
|
powerLevelsContent.usersDefault shouldBeEqualTo UserPowerLevel.User.value
|
||||||
powerLevelsContent.stateDefault shouldBeEqualTo Role.Moderator.value
|
powerLevelsContent.stateDefault shouldBeEqualTo UserPowerLevel.Moderator.value
|
||||||
// Guest access
|
// Guest access
|
||||||
result.find { it.type == EventType.STATE_ROOM_GUEST_ACCESS }
|
result.find { it.type == EventType.STATE_ROOM_GUEST_ACCESS }
|
||||||
?.content.toModel<RoomGuestAccessContent>()?.guestAccess shouldBeEqualTo GuestAccess.Forbidden
|
?.content.toModel<RoomGuestAccessContent>()?.guestAccess shouldBeEqualTo GuestAccess.Forbidden
|
||||||
|
@@ -10,12 +10,27 @@ package im.vector.app.core.utils
|
|||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.pm.PackageManager
|
import android.content.pm.PackageManager
|
||||||
import androidx.core.app.ActivityCompat
|
import androidx.core.app.ActivityCompat
|
||||||
|
import dagger.Binds
|
||||||
|
import dagger.hilt.InstallIn
|
||||||
|
import dagger.hilt.components.SingletonComponent
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
class PermissionChecker @Inject constructor(
|
interface PermissionChecker {
|
||||||
|
|
||||||
|
@InstallIn(SingletonComponent::class)
|
||||||
|
@dagger.Module
|
||||||
|
interface Module {
|
||||||
|
@Binds
|
||||||
|
fun bindPermissionChecker(permissionChecker: AndroidPermissionChecker): PermissionChecker
|
||||||
|
}
|
||||||
|
|
||||||
|
fun checkPermission(vararg permissions: String): Boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
class AndroidPermissionChecker @Inject constructor(
|
||||||
private val applicationContext: Context,
|
private val applicationContext: Context,
|
||||||
) {
|
) : PermissionChecker {
|
||||||
fun checkPermission(vararg permissions: String): Boolean {
|
override fun checkPermission(vararg permissions: String): Boolean {
|
||||||
return permissions.any { permission ->
|
return permissions.any { permission ->
|
||||||
ActivityCompat.checkSelfPermission(applicationContext, permission) != PackageManager.PERMISSION_GRANTED
|
ActivityCompat.checkSelfPermission(applicationContext, permission) != PackageManager.PERMISSION_GRANTED
|
||||||
}
|
}
|
||||||
|
@@ -14,6 +14,7 @@ import im.vector.app.features.session.coroutineScope
|
|||||||
import im.vector.app.test.fakes.FakeActiveSessionHolder
|
import im.vector.app.test.fakes.FakeActiveSessionHolder
|
||||||
import im.vector.app.test.fakes.FakeContext
|
import im.vector.app.test.fakes.FakeContext
|
||||||
import im.vector.app.test.fakes.FakeLocationManager
|
import im.vector.app.test.fakes.FakeLocationManager
|
||||||
|
import im.vector.app.test.fakes.FakePermissionChecker
|
||||||
import im.vector.app.test.fixtures.aBuildMeta
|
import im.vector.app.test.fixtures.aBuildMeta
|
||||||
import im.vector.app.test.test
|
import im.vector.app.test.test
|
||||||
import io.mockk.every
|
import io.mockk.every
|
||||||
@@ -29,6 +30,7 @@ import kotlinx.coroutines.test.runTest
|
|||||||
import org.amshove.kluent.shouldBeEqualTo
|
import org.amshove.kluent.shouldBeEqualTo
|
||||||
import org.junit.After
|
import org.junit.After
|
||||||
import org.junit.Before
|
import org.junit.Before
|
||||||
|
import org.junit.Ignore
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
|
||||||
private const val A_LATITUDE = 1.2
|
private const val A_LATITUDE = 1.2
|
||||||
@@ -48,7 +50,7 @@ class LocationTrackerTest {
|
|||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
mockkStatic("im.vector.app.features.session.SessionCoroutineScopesKt")
|
mockkStatic("im.vector.app.features.session.SessionCoroutineScopesKt")
|
||||||
locationTracker = LocationTracker(fakeContext.instance, fakeActiveSessionHolder.instance, aBuildMeta())
|
locationTracker = LocationTracker(fakeContext.instance, fakeActiveSessionHolder.instance, aBuildMeta(), FakePermissionChecker())
|
||||||
fakeLocationManager.givenRemoveUpdates(locationTracker)
|
fakeLocationManager.givenRemoveUpdates(locationTracker)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -12,6 +12,7 @@ import im.vector.app.features.location.LocationData
|
|||||||
import im.vector.app.features.location.live.StopLiveLocationShareUseCase
|
import im.vector.app.features.location.live.StopLiveLocationShareUseCase
|
||||||
import im.vector.app.test.fakes.FakeLocationSharingServiceConnection
|
import im.vector.app.test.fakes.FakeLocationSharingServiceConnection
|
||||||
import im.vector.app.test.fakes.FakeLocationTracker
|
import im.vector.app.test.fakes.FakeLocationTracker
|
||||||
|
import im.vector.app.test.fakes.FakePermissionChecker
|
||||||
import im.vector.app.test.fakes.FakeSession
|
import im.vector.app.test.fakes.FakeSession
|
||||||
import im.vector.app.test.test
|
import im.vector.app.test.test
|
||||||
import io.mockk.every
|
import io.mockk.every
|
||||||
@@ -38,6 +39,7 @@ class LiveLocationMapViewModelTest {
|
|||||||
private val fakeLocationSharingServiceConnection = FakeLocationSharingServiceConnection()
|
private val fakeLocationSharingServiceConnection = FakeLocationSharingServiceConnection()
|
||||||
private val fakeStopLiveLocationShareUseCase = mockk<StopLiveLocationShareUseCase>()
|
private val fakeStopLiveLocationShareUseCase = mockk<StopLiveLocationShareUseCase>()
|
||||||
private val fakeLocationTracker = FakeLocationTracker()
|
private val fakeLocationTracker = FakeLocationTracker()
|
||||||
|
private val fakePermissionChecker = FakePermissionChecker()
|
||||||
|
|
||||||
private fun createViewModel(): LiveLocationMapViewModel {
|
private fun createViewModel(): LiveLocationMapViewModel {
|
||||||
return LiveLocationMapViewModel(
|
return LiveLocationMapViewModel(
|
||||||
@@ -47,6 +49,7 @@ class LiveLocationMapViewModelTest {
|
|||||||
locationSharingServiceConnection = fakeLocationSharingServiceConnection.instance,
|
locationSharingServiceConnection = fakeLocationSharingServiceConnection.instance,
|
||||||
stopLiveLocationShareUseCase = fakeStopLiveLocationShareUseCase,
|
stopLiveLocationShareUseCase = fakeStopLiveLocationShareUseCase,
|
||||||
locationTracker = fakeLocationTracker.instance,
|
locationTracker = fakeLocationTracker.instance,
|
||||||
|
permissionChecker = fakePermissionChecker
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -0,0 +1,16 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2022-2024 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 im.vector.app.test.fakes
|
||||||
|
|
||||||
|
import im.vector.app.core.utils.PermissionChecker
|
||||||
|
|
||||||
|
class FakePermissionChecker(val permissionResult: Boolean = true) : PermissionChecker {
|
||||||
|
override fun checkPermission(vararg permissions: String): Boolean {
|
||||||
|
return permissionResult
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user