summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
author Andrey Yepin <ayepin@google.com> 2024-08-22 19:32:32 -0700
committer Andrey Yepin <ayepin@google.com> 2024-08-22 19:39:48 -0700
commit7b7c943272725f89495ade08b299ec4e431ded36 (patch)
tree71ceea2eadf035016444d7ed9e09046b0daca842 /tests
parent57bad9d1cf27d0272f18285f4b31ca0e31a6411b (diff)
Fix ChooserRequest.sharedText value parsing
readChooserRequest was reading sharedText value from the chooser intent's extra instead of the target intent's extra. Additional refactorings: * sharedTextTitle is added to the ChooserReqeust (read from target intent's EXTRA_TITLE extra); * ChooserContentPreviewUi is modified to use ChooserReqeust instead of extracting values form the target intent. Fix: 361654855 Test: atest IntentResolver-tests-unit Test: manual testing various previw variations with the ShareTest app Flag: EXEMPT bugfix Change-Id: Ic9e0e200f4b9a84df4830e99dd42cb1bc7258caf
Diffstat (limited to 'tests')
-rw-r--r--tests/unit/src/com/android/intentresolver/contentpreview/ChooserContentPreviewUiTest.kt24
-rw-r--r--tests/unit/src/com/android/intentresolver/ui/viewmodel/ChooserRequestTest.kt22
2 files changed, 37 insertions, 9 deletions
diff --git a/tests/unit/src/com/android/intentresolver/contentpreview/ChooserContentPreviewUiTest.kt b/tests/unit/src/com/android/intentresolver/contentpreview/ChooserContentPreviewUiTest.kt
index 27d98ece..a80cc02b 100644
--- a/tests/unit/src/com/android/intentresolver/contentpreview/ChooserContentPreviewUiTest.kt
+++ b/tests/unit/src/com/android/intentresolver/contentpreview/ChooserContentPreviewUiTest.kt
@@ -23,6 +23,7 @@ import android.platform.test.flag.junit.DeviceFlagsValueProvider
import com.android.intentresolver.ContentTypeHint
import com.android.intentresolver.FakeImageLoader
import com.android.intentresolver.contentpreview.ChooserContentPreviewUi.ActionFactory
+import com.android.intentresolver.data.model.ChooserRequest
import com.android.intentresolver.widget.ActionRow
import com.android.intentresolver.widget.ImagePreviewView
import com.google.common.truth.Truth.assertThat
@@ -61,13 +62,18 @@ class ChooserContentPreviewUiTest {
@get:Rule val checkFlagsRule: CheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule()
private fun createContentPreviewUi(
- targetIntent: Intent,
+ action: String,
+ sharedText: CharSequence? = null,
isPayloadTogglingEnabled: Boolean = false
) =
ChooserContentPreviewUi(
testScope,
previewData,
- targetIntent,
+ ChooserRequest(
+ targetIntent = Intent(action),
+ sharedText = sharedText,
+ launchedFromPackage = "org.pkg",
+ ),
imageLoader,
actionFactory,
{ null },
@@ -81,7 +87,7 @@ class ChooserContentPreviewUiTest {
@Test
fun test_textPreviewType_useTextPreviewUi() {
whenever(previewData.previewType).thenReturn(ContentPreviewType.CONTENT_PREVIEW_TEXT)
- val testSubject = createContentPreviewUi(targetIntent = Intent(Intent.ACTION_VIEW))
+ val testSubject = createContentPreviewUi(action = Intent.ACTION_VIEW)
assertThat(testSubject.preferredContentPreview)
.isEqualTo(ContentPreviewType.CONTENT_PREVIEW_TEXT)
@@ -92,7 +98,7 @@ class ChooserContentPreviewUiTest {
@Test
fun test_filePreviewType_useFilePreviewUi() {
whenever(previewData.previewType).thenReturn(ContentPreviewType.CONTENT_PREVIEW_FILE)
- val testSubject = createContentPreviewUi(targetIntent = Intent(Intent.ACTION_SEND))
+ val testSubject = createContentPreviewUi(action = Intent.ACTION_SEND)
assertThat(testSubject.preferredContentPreview)
.isEqualTo(ContentPreviewType.CONTENT_PREVIEW_FILE)
assertThat(testSubject.mContentPreviewUi).isInstanceOf(FileContentPreviewUi::class.java)
@@ -109,8 +115,8 @@ class ChooserContentPreviewUiTest {
whenever(previewData.imagePreviewFileInfoFlow).thenReturn(MutableSharedFlow())
val testSubject =
createContentPreviewUi(
- targetIntent =
- Intent(Intent.ACTION_SEND).apply { putExtra(Intent.EXTRA_TEXT, "Shared text") }
+ action = Intent.ACTION_SEND,
+ sharedText = "Shared text",
)
assertThat(testSubject.mContentPreviewUi)
.isInstanceOf(FilesPlusTextContentPreviewUi::class.java)
@@ -126,7 +132,7 @@ class ChooserContentPreviewUiTest {
whenever(previewData.firstFileInfo)
.thenReturn(FileInfo.Builder(uri).withPreviewUri(uri).withMimeType("image/png").build())
whenever(previewData.imagePreviewFileInfoFlow).thenReturn(MutableSharedFlow())
- val testSubject = createContentPreviewUi(targetIntent = Intent(Intent.ACTION_SEND))
+ val testSubject = createContentPreviewUi(action = Intent.ACTION_SEND)
assertThat(testSubject.preferredContentPreview)
.isEqualTo(ContentPreviewType.CONTENT_PREVIEW_IMAGE)
assertThat(testSubject.mContentPreviewUi).isInstanceOf(UnifiedContentPreviewUi::class.java)
@@ -146,8 +152,8 @@ class ChooserContentPreviewUiTest {
whenever(previewData.imagePreviewFileInfoFlow).thenReturn(MutableSharedFlow())
val testSubject =
createContentPreviewUi(
- targetIntent = Intent(Intent.ACTION_SEND),
- isPayloadTogglingEnabled = true
+ action = Intent.ACTION_SEND,
+ isPayloadTogglingEnabled = true,
)
assertThat(testSubject.mContentPreviewUi)
.isInstanceOf(ShareouselContentPreviewUi::class.java)
diff --git a/tests/unit/src/com/android/intentresolver/ui/viewmodel/ChooserRequestTest.kt b/tests/unit/src/com/android/intentresolver/ui/viewmodel/ChooserRequestTest.kt
index 2d5a44ed..01904c7f 100644
--- a/tests/unit/src/com/android/intentresolver/ui/viewmodel/ChooserRequestTest.kt
+++ b/tests/unit/src/com/android/intentresolver/ui/viewmodel/ChooserRequestTest.kt
@@ -25,6 +25,8 @@ import android.content.Intent.EXTRA_CHOOSER_ADDITIONAL_CONTENT_URI
import android.content.Intent.EXTRA_CHOOSER_FOCUSED_ITEM_POSITION
import android.content.Intent.EXTRA_INTENT
import android.content.Intent.EXTRA_REFERRER
+import android.content.Intent.EXTRA_TEXT
+import android.content.Intent.EXTRA_TITLE
import android.net.Uri
import android.service.chooser.Flags
import androidx.core.net.toUri
@@ -271,4 +273,24 @@ class ChooserRequestTest {
assertThat(result.value.metadataText).isEqualTo(metadataText)
}
+
+ @Test
+ fun textSharedTextAndTitle() {
+ val text: CharSequence = "Shared text"
+ val title: CharSequence = "Title"
+ val targetIntent =
+ Intent().apply {
+ putExtra(EXTRA_TITLE, title)
+ putExtra(EXTRA_TEXT, text)
+ }
+ val model = createActivityModel(targetIntent)
+
+ val result = readChooserRequest(model, fakeChooserServiceFlags)
+
+ assertThat(result).isInstanceOf(Valid::class.java)
+ (result as Valid<ChooserRequest>).value.let { request ->
+ assertThat(request.sharedText).isEqualTo(text)
+ assertThat(request.sharedTextTitle).isEqualTo(title)
+ }
+ }
}