Add test on MediaViewerDataSource

This commit is contained in:
Benoit Marty 2025-01-22 10:25:13 +01:00 committed by Benoit Marty
parent 36924070df
commit b0bfea9cc4
4 changed files with 284 additions and 4 deletions

View file

@ -9,6 +9,7 @@ package io.element.android.libraries.mediaviewer.impl.gallery.ui
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
import io.element.android.libraries.core.preview.loremIpsum
import io.element.android.libraries.matrix.api.core.EventId
import io.element.android.libraries.matrix.api.core.UniqueId
import io.element.android.libraries.matrix.api.media.MediaSource
import io.element.android.libraries.mediaviewer.api.aPdfMediaInfo
@ -30,12 +31,13 @@ class MediaItemFileProvider : PreviewParameterProvider<MediaItem.File> {
fun aMediaItemFile(
id: UniqueId = UniqueId("fileId"),
eventId: EventId? = null,
filename: String = "filename",
caption: String? = null,
): MediaItem.File {
return MediaItem.File(
id = id,
eventId = null,
eventId = eventId,
mediaInfo = aPdfMediaInfo(
filename = filename,
caption = caption,

View file

@ -13,10 +13,11 @@ import io.element.android.libraries.mediaviewer.impl.gallery.MediaItem
fun aMediaItemLoadingIndicator(
id: UniqueId = UniqueId("loadingId"),
direction: Timeline.PaginationDirection = Timeline.PaginationDirection.BACKWARDS,
): MediaItem.LoadingIndicator {
return MediaItem.LoadingIndicator(
id = id,
direction = Timeline.PaginationDirection.BACKWARDS,
direction = direction,
timestamp = 123,
)
}

View file

@ -7,6 +7,7 @@
package io.element.android.libraries.mediaviewer.impl.viewer
import androidx.annotation.VisibleForTesting
import androidx.compose.runtime.Composable
import androidx.compose.runtime.MutableState
import androidx.compose.runtime.State
@ -63,7 +64,8 @@ class MediaViewerDataSource(
return remember { dataFlow() }.collectAsState(initialData())
}
private fun dataFlow(): Flow<PersistentList<MediaViewerPageData>> {
@VisibleForTesting
fun dataFlow(): Flow<PersistentList<MediaViewerPageData>> {
return galleryDataSource.groupedMediaItemsFlow()
.map { groupedItems ->
val mediaItems = groupedItems.dataOrNull()?.getItems(galleryMode).orEmpty()
@ -104,7 +106,7 @@ class MediaViewerDataSource(
}
}
if (isEmpty()) {
MediaViewerPageData.Loading(Timeline.PaginationDirection.BACKWARDS)
add(MediaViewerPageData.Loading(Timeline.PaginationDirection.BACKWARDS))
}
}.toPersistentList()