Add unit test on MediaItemsPostProcessor

This commit is contained in:
Benoit Marty 2024-12-10 16:07:27 +01:00
parent 076e371908
commit 4d997a88db
4 changed files with 228 additions and 10 deletions

View file

@ -12,7 +12,7 @@ import io.element.android.libraries.architecture.AsyncData
import io.element.android.libraries.matrix.api.core.UniqueId
import io.element.android.libraries.mediaviewer.impl.details.MediaBottomSheetState
import io.element.android.libraries.mediaviewer.impl.details.aMediaDetailsBottomSheetState
import io.element.android.libraries.mediaviewer.impl.gallery.ui.aDate
import io.element.android.libraries.mediaviewer.impl.gallery.ui.aMediaItemDateSeparator
import io.element.android.libraries.mediaviewer.impl.gallery.ui.aMediaItemFile
import io.element.android.libraries.mediaviewer.impl.gallery.ui.aMediaItemImage
import io.element.android.libraries.mediaviewer.impl.gallery.ui.aMediaItemLoadingIndicator
@ -29,9 +29,9 @@ open class MediaGalleryStateProvider : PreviewParameterProvider<MediaGalleryStat
groupedMediaItems = AsyncData.Success(
aGroupedMediaItems(
imageAndVideoItems = listOf(
aDate(id = UniqueId("0")),
aMediaItemDateSeparator(id = UniqueId("0")),
aMediaItemImage(id = UniqueId("1")),
aDate(
aMediaItemDateSeparator(
id = UniqueId("2"),
formattedDate = "September 2004",
),
@ -55,9 +55,9 @@ open class MediaGalleryStateProvider : PreviewParameterProvider<MediaGalleryStat
groupedMediaItems = AsyncData.Success(
aGroupedMediaItems(
fileItems = listOf(
aDate(id = UniqueId("0")),
aMediaItemDateSeparator(id = UniqueId("0")),
aMediaItemFile(id = UniqueId("1")),
aDate(
aMediaItemDateSeparator(
id = UniqueId("2"),
formattedDate = "September 2004",
),

View file

@ -54,10 +54,10 @@ class MediaItemsPostProcessor @Inject constructor() {
when (item) {
is MediaItem.Image,
is MediaItem.Video -> {
imageAndVideoItemsSubList.add(item)
imageAndVideoItemsSubList.add(0, item)
}
is MediaItem.File -> {
fileItemsSublist.add(item)
fileItemsSublist.add(0, item)
}
}
}
@ -67,6 +67,14 @@ class MediaItemsPostProcessor @Inject constructor() {
}
}
}
if (imageAndVideoItemsSubList.isNotEmpty()) {
// Should not happen, since the SDK is always adding a date separator
imageAndVideoItems.addAll(imageAndVideoItemsSubList)
}
if (fileItemsSublist.isNotEmpty()) {
// Should not happen, since the SDK is always adding a date separator
fileItems.addAll(fileItemsSublist)
}
return GroupedMediaItems(
imageAndVideoItems = imageAndVideoItems.toImmutableList(),
fileItems = fileItems.toImmutableList(),

View file

@ -14,12 +14,12 @@ import io.element.android.libraries.mediaviewer.impl.gallery.MediaItem
class MediaItemDateSeparatorProvider : PreviewParameterProvider<MediaItem.DateSeparator> {
override val values: Sequence<MediaItem.DateSeparator>
get() = sequenceOf(
aDate(),
aDate(formattedDate = "A long date that should be truncated"),
aMediaItemDateSeparator(),
aMediaItemDateSeparator(formattedDate = "A long date that should be truncated"),
)
}
fun aDate(
fun aMediaItemDateSeparator(
id: UniqueId = UniqueId("dateId"),
formattedDate: String = "October 2024",
): MediaItem.DateSeparator {