diff options
author | 2024-05-24 15:23:55 +0000 | |
---|---|---|
committer | 2024-05-24 15:23:55 +0000 | |
commit | ad07ab8f46bbaba16b00c76960f6421312b38689 (patch) | |
tree | 26934d39f202f5de8380afb5834b904bd7426674 /tests | |
parent | 160289301fe214fa092f43cb0581a8688dca2487 (diff) | |
parent | 7bd1caf07c36f117bccd8bd462e3b9491b91acd5 (diff) |
Merge "Honor content types in shareousel" into main
Diffstat (limited to 'tests')
3 files changed, 54 insertions, 11 deletions
diff --git a/tests/shared/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/PayloadToggleInteractorKosmos.kt b/tests/shared/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/PayloadToggleInteractorKosmos.kt index 659c178c..8f7c59de 100644 --- a/tests/shared/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/PayloadToggleInteractorKosmos.kt +++ b/tests/shared/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/PayloadToggleInteractorKosmos.kt @@ -20,6 +20,7 @@ import com.android.intentresolver.backgroundDispatcher import com.android.intentresolver.contentResolver import com.android.intentresolver.contentpreview.HeadlineGenerator import com.android.intentresolver.contentpreview.ImageLoader +import com.android.intentresolver.contentpreview.mimetypeClassifier import com.android.intentresolver.contentpreview.payloadtoggle.data.repository.activityResultRepository import com.android.intentresolver.contentpreview.payloadtoggle.data.repository.cursorPreviewsRepository import com.android.intentresolver.contentpreview.payloadtoggle.data.repository.pendingSelectionCallbackRepository @@ -97,6 +98,7 @@ val Kosmos.selectionInteractor selectionsRepo = previewSelectionsRepository, targetIntentModifier = targetIntentModifier, updateTargetIntentInteractor = updateTargetIntentInteractor, + mimeTypeClassifier = mimetypeClassifier, ) val Kosmos.setCursorPreviewsInteractor diff --git a/tests/unit/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/SelectionInteractorTest.kt b/tests/unit/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/SelectionInteractorTest.kt index a64807b7..708e6cc6 100644 --- a/tests/unit/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/SelectionInteractorTest.kt +++ b/tests/unit/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/SelectionInteractorTest.kt @@ -18,6 +18,7 @@ package com.android.intentresolver.contentpreview.payloadtoggle.domain.interacto import android.content.Intent import android.net.Uri +import com.android.intentresolver.contentpreview.mimetypeClassifier import com.android.intentresolver.contentpreview.payloadtoggle.data.repository.previewSelectionsRepository import com.android.intentresolver.contentpreview.payloadtoggle.shared.model.PreviewModel import com.android.intentresolver.util.runKosmosTest @@ -35,7 +36,8 @@ class SelectionInteractorTest { SelectionInteractor( previewSelectionsRepository, { Intent() }, - updateTargetIntentInteractor + updateTargetIntentInteractor, + mimetypeClassifier, ) assertThat(underTest.selections.value).isEqualTo(setOf(initialPreview)) @@ -57,7 +59,8 @@ class SelectionInteractorTest { SelectionInteractor( previewSelectionsRepository, { Intent() }, - updateTargetIntentInteractor + updateTargetIntentInteractor, + mimetypeClassifier ) underTest.unselect(first) diff --git a/tests/unit/src/com/android/intentresolver/contentpreview/payloadtoggle/ui/viewmodel/ShareouselViewModelTest.kt b/tests/unit/src/com/android/intentresolver/contentpreview/payloadtoggle/ui/viewmodel/ShareouselViewModelTest.kt index bd3d88f8..fb3e9a3f 100644 --- a/tests/unit/src/com/android/intentresolver/contentpreview/payloadtoggle/ui/viewmodel/ShareouselViewModelTest.kt +++ b/tests/unit/src/com/android/intentresolver/contentpreview/payloadtoggle/ui/viewmodel/ShareouselViewModelTest.kt @@ -25,6 +25,7 @@ import android.graphics.drawable.Icon import android.net.Uri import com.android.intentresolver.FakeImageLoader import com.android.intentresolver.contentpreview.HeadlineGenerator +import com.android.intentresolver.contentpreview.mimetypeClassifier import com.android.intentresolver.contentpreview.payloadtoggle.data.model.CustomActionModel import com.android.intentresolver.contentpreview.payloadtoggle.data.repository.activityResultRepository import com.android.intentresolver.contentpreview.payloadtoggle.data.repository.cursorPreviewsRepository @@ -39,6 +40,7 @@ import com.android.intentresolver.contentpreview.payloadtoggle.domain.interactor import com.android.intentresolver.contentpreview.payloadtoggle.domain.interactor.payloadToggleImageLoader import com.android.intentresolver.contentpreview.payloadtoggle.domain.interactor.selectablePreviewsInteractor import com.android.intentresolver.contentpreview.payloadtoggle.domain.interactor.selectionInteractor +import com.android.intentresolver.contentpreview.payloadtoggle.shared.ContentType import com.android.intentresolver.contentpreview.payloadtoggle.shared.model.PreviewModel import com.android.intentresolver.contentpreview.payloadtoggle.shared.model.PreviewsModel import com.android.intentresolver.data.model.ChooserRequest @@ -68,23 +70,24 @@ class ShareouselViewModelTest { actionsInteractor = customActionsInteractor, headlineGenerator = headlineGenerator, chooserRequestInteractor = chooserRequestInteractor, + mimeTypeClassifier = mimetypeClassifier, selectionInteractor = selectionInteractor, scope = viewModelScope, ) } @Test - fun headline() = runTest { - assertThat(shareouselViewModel.headline.first()).isEqualTo("IMAGES: 1") + fun headline_images() = runTest { + assertThat(shareouselViewModel.headline.first()).isEqualTo("FILES: 1") previewSelectionsRepository.selections.value = setOf( PreviewModel( uri = Uri.fromParts("scheme", "ssp", "fragment"), - mimeType = null, + mimeType = "image/png", ), PreviewModel( uri = Uri.fromParts("scheme1", "ssp1", "fragment1"), - mimeType = null, + mimeType = "image/jpeg", ) ) runCurrent() @@ -92,6 +95,40 @@ class ShareouselViewModelTest { } @Test + fun headline_videos() = runTest { + previewSelectionsRepository.selections.value = + setOf( + PreviewModel( + uri = Uri.fromParts("scheme", "ssp", "fragment"), + mimeType = "video/mpeg", + ), + PreviewModel( + uri = Uri.fromParts("scheme1", "ssp1", "fragment1"), + mimeType = "video/mpeg", + ) + ) + runCurrent() + assertThat(shareouselViewModel.headline.first()).isEqualTo("VIDEOS: 2") + } + + @Test + fun headline_mixed() = runTest { + previewSelectionsRepository.selections.value = + setOf( + PreviewModel( + uri = Uri.fromParts("scheme", "ssp", "fragment"), + mimeType = "image/jpeg", + ), + PreviewModel( + uri = Uri.fromParts("scheme1", "ssp1", "fragment1"), + mimeType = "video/mpeg", + ) + ) + runCurrent() + assertThat(shareouselViewModel.headline.first()).isEqualTo("FILES: 2") + } + + @Test fun metadataText() = runTest { val request = ChooserRequest( @@ -115,11 +152,11 @@ class ShareouselViewModelTest { setOf( PreviewModel( uri = Uri.fromParts("scheme", "ssp", "fragment"), - mimeType = null, + mimeType = "image/png", ), PreviewModel( uri = Uri.fromParts("scheme1", "ssp1", "fragment1"), - mimeType = null, + mimeType = "video/mpeg", ) ), startIdx = 1, @@ -143,12 +180,13 @@ class ShareouselViewModelTest { shareouselViewModel.preview( PreviewModel( uri = Uri.fromParts("scheme1", "ssp1", "fragment1"), - mimeType = null + mimeType = "video/mpeg" ) ) assertWithMessage("preview bitmap is null").that(previewVm.bitmap.first()).isNotNull() assertThat(previewVm.isSelected.first()).isFalse() + assertThat(previewVm.contentType).isEqualTo(ContentType.Video) previewVm.setSelected(true) @@ -234,9 +272,9 @@ class ShareouselViewModelTest { override fun getFilesWithTextHeadline(text: CharSequence, count: Int): String = error("not supported") - override fun getVideosHeadline(count: Int): String = error("not supported") + override fun getVideosHeadline(count: Int): String = "VIDEOS: $count" - override fun getFilesHeadline(count: Int): String = error("not supported") + override fun getFilesHeadline(count: Int): String = "FILES: $count" } // instantiate the view model, and then runCurrent() so that it is fully hydrated before // starting the test |