Add test on MessagesViewTest: long click on an Event.
This commit is contained in:
parent
81ca61645f
commit
446ba571a3
2 changed files with 60 additions and 3 deletions
|
|
@ -92,6 +92,9 @@ fun aMessagesState(
|
||||||
roomName: AsyncData<String> = AsyncData.Success("Room name"),
|
roomName: AsyncData<String> = AsyncData.Success("Room name"),
|
||||||
roomAvatar: AsyncData<AvatarData> = AsyncData.Success(AvatarData("!id:domain", "Room name", size = AvatarSize.TimelineRoom)),
|
roomAvatar: AsyncData<AvatarData> = AsyncData.Success(AvatarData("!id:domain", "Room name", size = AvatarSize.TimelineRoom)),
|
||||||
userHasPermissionToSendMessage: Boolean = true,
|
userHasPermissionToSendMessage: Boolean = true,
|
||||||
|
userHasPermissionToRedactOwn: Boolean = false,
|
||||||
|
userHasPermissionToRedactOther: Boolean = false,
|
||||||
|
userHasPermissionToSendReaction: Boolean = true,
|
||||||
composerState: MessageComposerState = aMessageComposerState(
|
composerState: MessageComposerState = aMessageComposerState(
|
||||||
richTextEditorState = RichTextEditorState("Hello", initialFocus = true),
|
richTextEditorState = RichTextEditorState("Hello", initialFocus = true),
|
||||||
isFullScreen = false,
|
isFullScreen = false,
|
||||||
|
|
@ -112,9 +115,9 @@ fun aMessagesState(
|
||||||
roomName = roomName,
|
roomName = roomName,
|
||||||
roomAvatar = roomAvatar,
|
roomAvatar = roomAvatar,
|
||||||
userHasPermissionToSendMessage = userHasPermissionToSendMessage,
|
userHasPermissionToSendMessage = userHasPermissionToSendMessage,
|
||||||
userHasPermissionToRedactOwn = false,
|
userHasPermissionToRedactOwn = userHasPermissionToRedactOwn,
|
||||||
userHasPermissionToRedactOther = false,
|
userHasPermissionToRedactOther = userHasPermissionToRedactOther,
|
||||||
userHasPermissionToSendReaction = true,
|
userHasPermissionToSendReaction = userHasPermissionToSendReaction,
|
||||||
composerState = composerState,
|
composerState = composerState,
|
||||||
voiceMessageComposerState = voiceMessageComposerState,
|
voiceMessageComposerState = voiceMessageComposerState,
|
||||||
timelineState = aTimelineState(
|
timelineState = aTimelineState(
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,7 @@ import androidx.compose.ui.test.onNodeWithText
|
||||||
import androidx.compose.ui.test.performClick
|
import androidx.compose.ui.test.performClick
|
||||||
import androidx.compose.ui.test.performTouchInput
|
import androidx.compose.ui.test.performTouchInput
|
||||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||||
|
import io.element.android.features.messages.impl.actionlist.ActionListEvents
|
||||||
import io.element.android.features.messages.impl.actionlist.ActionListState
|
import io.element.android.features.messages.impl.actionlist.ActionListState
|
||||||
import io.element.android.features.messages.impl.actionlist.anActionListState
|
import io.element.android.features.messages.impl.actionlist.anActionListState
|
||||||
import io.element.android.features.messages.impl.actionlist.model.TimelineItemAction
|
import io.element.android.features.messages.impl.actionlist.model.TimelineItemAction
|
||||||
|
|
@ -146,6 +147,59 @@ class MessagesViewTest {
|
||||||
eventsRecorder.assertSingle(RetrySendMenuEvents.EventSelected(timelineItem))
|
eventsRecorder.assertSingle(RetrySendMenuEvents.EventSelected(timelineItem))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `long clicking on an Event emits the expected Event userHasPermissionToSendMessage`() {
|
||||||
|
`long clicking on an Event emits the expected Event`(userHasPermissionToSendMessage = true)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `long clicking on an Event emits the expected Event userHasPermissionToRedactOwn`() {
|
||||||
|
`long clicking on an Event emits the expected Event`(userHasPermissionToRedactOwn = true)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `long clicking on an Event emits the expected Event userHasPermissionToRedactOther`() {
|
||||||
|
`long clicking on an Event emits the expected Event`(userHasPermissionToRedactOther = true)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `long clicking on an Event emits the expected Event userHasPermissionToSendReaction`() {
|
||||||
|
`long clicking on an Event emits the expected Event`(userHasPermissionToSendReaction = true)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun `long clicking on an Event emits the expected Event`(
|
||||||
|
userHasPermissionToSendMessage: Boolean = false,
|
||||||
|
userHasPermissionToRedactOwn: Boolean = false,
|
||||||
|
userHasPermissionToRedactOther: Boolean = false,
|
||||||
|
userHasPermissionToSendReaction: Boolean = false,
|
||||||
|
) {
|
||||||
|
val eventsRecorder = EventsRecorder<ActionListEvents>()
|
||||||
|
val state = aMessagesState(
|
||||||
|
actionListState = anActionListState(
|
||||||
|
eventSink = eventsRecorder
|
||||||
|
),
|
||||||
|
userHasPermissionToSendMessage = userHasPermissionToSendMessage,
|
||||||
|
userHasPermissionToRedactOwn = userHasPermissionToRedactOwn,
|
||||||
|
userHasPermissionToRedactOther = userHasPermissionToRedactOther,
|
||||||
|
userHasPermissionToSendReaction = userHasPermissionToSendReaction,
|
||||||
|
)
|
||||||
|
val timelineItem = state.timelineState.timelineItems.first() as TimelineItem.Event
|
||||||
|
rule.setMessagesView(
|
||||||
|
state = state,
|
||||||
|
)
|
||||||
|
// Cannot perform click on "Text", it's not detected. Use tag instead
|
||||||
|
rule.onAllNodesWithTag(TestTags.messageBubble.value).onFirst().performTouchInput { longClick() }
|
||||||
|
eventsRecorder.assertSingle(
|
||||||
|
ActionListEvents.ComputeForMessage(
|
||||||
|
event = timelineItem,
|
||||||
|
canRedactOwn = state.userHasPermissionToRedactOwn,
|
||||||
|
canRedactOther = state.userHasPermissionToRedactOther,
|
||||||
|
canSendMessage = state.userHasPermissionToSendMessage,
|
||||||
|
canSendReaction = state.userHasPermissionToSendReaction,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `clicking on send location invoke expected callback`() {
|
fun `clicking on send location invoke expected callback`() {
|
||||||
val eventsRecorder = EventsRecorder<MessagesEvents>(expectEvents = false)
|
val eventsRecorder = EventsRecorder<MessagesEvents>(expectEvents = false)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue