diff options
author | 2024-08-22 19:32:32 -0700 | |
---|---|---|
committer | 2024-08-22 19:39:48 -0700 | |
commit | 7b7c943272725f89495ade08b299ec4e431ded36 (patch) | |
tree | 71ceea2eadf035016444d7ed9e09046b0daca842 /tests | |
parent | 57bad9d1cf27d0272f18285f4b31ca0e31a6411b (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.kt | 24 | ||||
-rw-r--r-- | tests/unit/src/com/android/intentresolver/ui/viewmodel/ChooserRequestTest.kt | 22 |
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) + } + } } |