diff options
| author | 2022-11-21 12:38:14 -0500 | |
|---|---|---|
| committer | 2022-12-13 20:54:04 +0000 | |
| commit | d5eb50ac083b03edf84c904e2ec16acb6ca50fdd (patch) | |
| tree | 42079a7fd5391d981b23ed5a84fdc1316cc38d94 /java/tests/src | |
| parent | 92269439a35e7bc3b81c7e7efdef7ae0b63a6637 (diff) | |
Extract ChooserGridAdapter.
As of ag/20463973 there's no major design changes required to lift
this out of being an inner class, and this combines with ag/20455546
to pull *most* UI considerations out of `ChooserActivity` (namely,
any that involve our "grid" except where those considerations are
bridged across the `ChooserGridAdapter.ChooserActivityDelegate`).
The testing changes were probably part of another CL that got included
here accidentally, but they're improvements we can go ahead with
anyways (switching some uses of mocks to real objects).
Test: atest IntentResolverUnitTests
Bug: 202167050
Change-Id: I4948bcd1fa58d4dbe44f7aef009db5f8864882de
Diffstat (limited to 'java/tests/src')
4 files changed, 49 insertions, 34 deletions
diff --git a/java/tests/src/com/android/intentresolver/ChooserListAdapterTest.kt b/java/tests/src/com/android/intentresolver/ChooserListAdapterTest.kt index 6184cd1c..58f6b733 100644 --- a/java/tests/src/com/android/intentresolver/ChooserListAdapterTest.kt +++ b/java/tests/src/com/android/intentresolver/ChooserListAdapterTest.kt @@ -115,11 +115,16 @@ class ChooserListAdapterTest { verify(testTaskProvider, times(1)).invoke() } - private fun createSelectableTargetInfo(): TargetInfo { - val displayInfo: DisplayResolveInfo = mock() - whenever(displayInfo.getAllSourceIntents()).thenReturn(listOf(mock())) - return SelectableTargetInfo.newSelectableTargetInfo( - /* sourceInfo = */ displayInfo, + private fun createSelectableTargetInfo(): TargetInfo = + SelectableTargetInfo.newSelectableTargetInfo( + /* sourceInfo = */ DisplayResolveInfo.newDisplayResolveInfo( + Intent(), + ResolverDataProvider.createResolveInfo(2, 0), + "label", + "extended info", + Intent(), + /* resolveInfoPresentationGetter= */ null + ), /* backupResolveInfo = */ mock(), /* resolvedIntent = */ Intent(), /* chooserTarget = */ createChooserTarget( @@ -130,7 +135,6 @@ class ChooserListAdapterTest { /* appTarget */ null, /* referrerFillInIntent = */ Intent() ) - } private fun createView(): View { val view = FrameLayout(context) diff --git a/java/tests/src/com/android/intentresolver/ChooserWrapperActivity.java b/java/tests/src/com/android/intentresolver/ChooserWrapperActivity.java index 8c842786..04e727ba 100644 --- a/java/tests/src/com/android/intentresolver/ChooserWrapperActivity.java +++ b/java/tests/src/com/android/intentresolver/ChooserWrapperActivity.java @@ -42,6 +42,7 @@ import com.android.intentresolver.ResolverListAdapter.ResolveInfoPresentationGet import com.android.intentresolver.chooser.DisplayResolveInfo; import com.android.intentresolver.chooser.NotSelectableTargetInfo; import com.android.intentresolver.chooser.TargetInfo; +import com.android.intentresolver.grid.ChooserGridAdapter; import com.android.intentresolver.shortcuts.ShortcutLoader; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; diff --git a/java/tests/src/com/android/intentresolver/ShortcutSelectionLogicTest.kt b/java/tests/src/com/android/intentresolver/ShortcutSelectionLogicTest.kt index e114d38d..a8d6f978 100644 --- a/java/tests/src/com/android/intentresolver/ShortcutSelectionLogicTest.kt +++ b/java/tests/src/com/android/intentresolver/ShortcutSelectionLogicTest.kt @@ -18,6 +18,8 @@ package com.android.intentresolver import android.content.ComponentName import android.content.Context +import android.content.Intent +import android.content.pm.ResolveInfo import android.content.pm.ShortcutInfo import android.service.chooser.ChooserTarget import com.android.intentresolver.chooser.DisplayResolveInfo @@ -48,6 +50,22 @@ class ShortcutSelectionLogicTest { } } + private val baseDisplayInfo = DisplayResolveInfo.newDisplayResolveInfo( + Intent(), + ResolverDataProvider.createResolveInfo(3, 0), + "label", + "extended info", + Intent(), + /* resolveInfoPresentationGetter= */ null) + + private val otherBaseDisplayInfo = DisplayResolveInfo.newDisplayResolveInfo( + Intent(), + ResolverDataProvider.createResolveInfo(4, 0), + "label 2", + "extended info 2", + Intent(), + /* resolveInfoPresentationGetter= */ null) + private operator fun Map<String, Array<ChooserTarget>>.get(pkg: String, idx: Int) = this[pkg]?.get(idx) ?: error("missing package $pkg") @@ -60,11 +78,9 @@ class ShortcutSelectionLogicTest { /* maxShortcutTargetsPerApp = */ 1, /* applySharingAppLimits = */ false ) - val displayInfo: DisplayResolveInfo = mock() - whenever(displayInfo.getAllSourceIntents()).thenReturn(listOf(mock())) val isUpdated = testSubject.addServiceResults( - /* origTarget = */ displayInfo, + /* origTarget = */ baseDisplayInfo, /* origTargetScore = */ 0.1f, /* targets = */ listOf(sc1, sc2), /* isShortcutResult = */ true, @@ -94,11 +110,9 @@ class ShortcutSelectionLogicTest { /* maxShortcutTargetsPerApp = */ 1, /* applySharingAppLimits = */ true ) - val displayInfo: DisplayResolveInfo = mock() - whenever(displayInfo.getAllSourceIntents()).thenReturn(listOf(mock())) val isUpdated = testSubject.addServiceResults( - /* origTarget = */ displayInfo, + /* origTarget = */ baseDisplayInfo, /* origTargetScore = */ 0.1f, /* targets = */ listOf(sc1, sc2), /* isShortcutResult = */ true, @@ -128,11 +142,9 @@ class ShortcutSelectionLogicTest { /* maxShortcutTargetsPerApp = */ 1, /* applySharingAppLimits = */ false ) - val displayInfo: DisplayResolveInfo = mock() - whenever(displayInfo.getAllSourceIntents()).thenReturn(listOf(mock())) val isUpdated = testSubject.addServiceResults( - /* origTarget = */ displayInfo, + /* origTarget = */ baseDisplayInfo, /* origTargetScore = */ 0.1f, /* targets = */ listOf(sc1, sc2), /* isShortcutResult = */ true, @@ -164,13 +176,9 @@ class ShortcutSelectionLogicTest { /* maxShortcutTargetsPerApp = */ 1, /* applySharingAppLimits = */ true ) - val displayInfo: DisplayResolveInfo = mock() - whenever(displayInfo.getAllSourceIntents()).thenReturn(listOf(mock())) - val displayInfo2: DisplayResolveInfo = mock() - whenever(displayInfo2.getAllSourceIntents()).thenReturn(listOf(mock())) - val isUpdated = testSubject.addServiceResults( - /* origTarget = */ displayInfo, + testSubject.addServiceResults( + /* origTarget = */ baseDisplayInfo, /* origTargetScore = */ 0.1f, /* targets = */ listOf(pkgAsc1, pkgAsc2), /* isShortcutResult = */ true, @@ -183,7 +191,7 @@ class ShortcutSelectionLogicTest { /* serviceTargets = */ serviceResults ) testSubject.addServiceResults( - /* origTarget = */ displayInfo2, + /* origTarget = */ otherBaseDisplayInfo, /* origTargetScore = */ 0.2f, /* targets = */ listOf(pkgBsc1, pkgBsc2), /* isShortcutResult = */ true, @@ -212,11 +220,9 @@ class ShortcutSelectionLogicTest { /* maxShortcutTargetsPerApp = */ 1, /* applySharingAppLimits = */ false ) - val displayInfo: DisplayResolveInfo = mock() - whenever(displayInfo.getAllSourceIntents()).thenReturn(listOf(mock())) val isUpdated = testSubject.addServiceResults( - /* origTarget = */ displayInfo, + /* origTarget = */ baseDisplayInfo, /* origTargetScore = */ 0.1f, /* targets = */ listOf(sc1, sc2), /* isShortcutResult = */ true, @@ -258,7 +264,7 @@ class ShortcutSelectionLogicTest { } testSubject.addServiceResults( - /* origTarget = */ null, + /* origTarget = */ baseDisplayInfo, /* origTargetScore = */ 0f, /* targets = */ listOf(sc1, sc2, sc3), /* isShortcutResult = */ false, diff --git a/java/tests/src/com/android/intentresolver/chooser/TargetInfoTest.kt b/java/tests/src/com/android/intentresolver/chooser/TargetInfoTest.kt index c29de0be..7c2b07a9 100644 --- a/java/tests/src/com/android/intentresolver/chooser/TargetInfoTest.kt +++ b/java/tests/src/com/android/intentresolver/chooser/TargetInfoTest.kt @@ -28,7 +28,6 @@ import com.android.intentresolver.createChooserTarget import com.android.intentresolver.createShortcutInfo import com.android.intentresolver.mock import com.android.intentresolver.ResolverDataProvider -import com.android.intentresolver.whenever import com.google.common.truth.Truth.assertThat import org.junit.Test @@ -55,20 +54,25 @@ class TargetInfoTest { @Test fun testNewSelectableTargetInfo() { - val displayInfo: DisplayResolveInfo = mock() - whenever(displayInfo.getAllSourceIntents()).thenReturn(listOf(mock())) + val resolvedIntent = Intent() + val baseDisplayInfo = DisplayResolveInfo.newDisplayResolveInfo( + resolvedIntent, + ResolverDataProvider.createResolveInfo(1, 0), + "label", + "extended info", + resolvedIntent, + /* resolveInfoPresentationGetter= */ null) val chooserTarget = createChooserTarget( - "title", 0.3f, ResolverDataProvider.createComponentName(1), "test_shortcut_id") - val shortcutInfo = createShortcutInfo("id", ResolverDataProvider.createComponentName(2), 3) + "title", 0.3f, ResolverDataProvider.createComponentName(2), "test_shortcut_id") + val shortcutInfo = createShortcutInfo("id", ResolverDataProvider.createComponentName(3), 3) val appTarget = AppTarget( AppTargetId("id"), chooserTarget.componentName.packageName, chooserTarget.componentName.className, UserHandle.CURRENT) - val resolvedIntent = mock<Intent>() val targetInfo = SelectableTargetInfo.newSelectableTargetInfo( - displayInfo, + baseDisplayInfo, mock(), resolvedIntent, chooserTarget, @@ -79,7 +83,7 @@ class TargetInfoTest { ) assertThat(targetInfo.isSelectableTargetInfo).isTrue() assertThat(targetInfo.isChooserTargetInfo).isTrue() // From legacy inheritance model. - assertThat(targetInfo.displayResolveInfo).isSameInstanceAs(displayInfo) + assertThat(targetInfo.displayResolveInfo).isSameInstanceAs(baseDisplayInfo) assertThat(targetInfo.chooserTargetComponentName).isEqualTo(chooserTarget.componentName) assertThat(targetInfo.directShareShortcutId).isEqualTo(shortcutInfo.id) assertThat(targetInfo.directShareShortcutInfo).isSameInstanceAs(shortcutInfo) |