summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/shared/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/PayloadToggleInteractorKosmos.kt2
-rw-r--r--tests/unit/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/SelectionInteractorTest.kt7
-rw-r--r--tests/unit/src/com/android/intentresolver/contentpreview/payloadtoggle/ui/viewmodel/ShareouselViewModelTest.kt56
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