summaryrefslogtreecommitdiff
path: root/java/tests
diff options
context:
space:
mode:
author Mark Renouf <mrenouf@google.com> 2023-09-14 19:01:32 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2023-09-14 19:01:32 +0000
commit0aff6449c2f52ffb76108be40869d612a5daffc3 (patch)
tree3f049a6819982d64f29106af96a6c128af50fb83 /java/tests
parent9e2a01d0ca25a274ad317f1b1c7866b8967724b2 (diff)
parenta7382f3265d0bb76532b561059e56bafa855542e (diff)
Merge changes I13fbf290,I7440a6bb into main
* changes: Switches to HiltTestApplication in tests. Extract an interface for EventLog, rename implementation
Diffstat (limited to 'java/tests')
-rw-r--r--java/tests/Android.bp1
-rw-r--r--java/tests/AndroidManifest.xml2
-rw-r--r--java/tests/src/com/android/intentresolver/ChooserActionFactoryTest.kt3
-rw-r--r--java/tests/src/com/android/intentresolver/ChooserActivityOverrideData.java6
-rw-r--r--java/tests/src/com/android/intentresolver/ChooserListAdapterTest.kt4
-rw-r--r--java/tests/src/com/android/intentresolver/ChooserWrapperActivity.java6
-rw-r--r--java/tests/src/com/android/intentresolver/IChooserWrapper.java4
-rw-r--r--java/tests/src/com/android/intentresolver/TestApplication.kt26
-rw-r--r--java/tests/src/com/android/intentresolver/UnbundledChooserActivityTest.java20
-rw-r--r--java/tests/src/com/android/intentresolver/UnbundledChooserActivityWorkProfileTest.java9
-rw-r--r--java/tests/src/com/android/intentresolver/logging/EventLogImplTest.java (renamed from java/tests/src/com/android/intentresolver/logging/EventLogTest.java)49
11 files changed, 60 insertions, 70 deletions
diff --git a/java/tests/Android.bp b/java/tests/Android.bp
index e4d24eb5..974b8a47 100644
--- a/java/tests/Android.bp
+++ b/java/tests/Android.bp
@@ -44,6 +44,7 @@ android_test {
"androidx.lifecycle_lifecycle-common-java8",
"androidx.lifecycle_lifecycle-extensions",
"androidx.lifecycle_lifecycle-runtime-testing",
+ "hilt_android_testing",
"IntentResolver-core",
"junit",
"kotlinx_coroutines_test",
diff --git a/java/tests/AndroidManifest.xml b/java/tests/AndroidManifest.xml
index ae6a2205..35dc2ee6 100644
--- a/java/tests/AndroidManifest.xml
+++ b/java/tests/AndroidManifest.xml
@@ -23,7 +23,7 @@
<uses-permission android:name="android.permission.WRITE_DEVICE_CONFIG"/>
<uses-permission android:name="android.permission.READ_DEVICE_CONFIG" />
- <application android:name="com.android.intentresolver.TestApplication">
+ <application android:name="dagger.hilt.android.testing.HiltTestApplication">
<uses-library android:name="android.test.runner" />
<activity android:name="com.android.intentresolver.ChooserWrapperActivity" />
<activity android:name="com.android.intentresolver.ResolverWrapperActivity" />
diff --git a/java/tests/src/com/android/intentresolver/ChooserActionFactoryTest.kt b/java/tests/src/com/android/intentresolver/ChooserActionFactoryTest.kt
index 2d1ac4e4..e2b987c2 100644
--- a/java/tests/src/com/android/intentresolver/ChooserActionFactoryTest.kt
+++ b/java/tests/src/com/android/intentresolver/ChooserActionFactoryTest.kt
@@ -28,12 +28,13 @@ import android.graphics.drawable.Icon
import android.service.chooser.ChooserAction
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry
-import com.android.intentresolver.logging.EventLog
+import com.android.intentresolver.logging.EventLogImpl
import com.google.common.collect.ImmutableList
import com.google.common.truth.Truth.assertThat
import java.util.concurrent.CountDownLatch
import java.util.concurrent.TimeUnit
import java.util.function.Consumer
+import com.android.intentresolver.logging.EventLog
import org.junit.After
import org.junit.Assert.assertEquals
import org.junit.Assert.assertTrue
diff --git a/java/tests/src/com/android/intentresolver/ChooserActivityOverrideData.java b/java/tests/src/com/android/intentresolver/ChooserActivityOverrideData.java
index 5b938aa1..b5c14ff1 100644
--- a/java/tests/src/com/android/intentresolver/ChooserActivityOverrideData.java
+++ b/java/tests/src/com/android/intentresolver/ChooserActivityOverrideData.java
@@ -29,7 +29,7 @@ import android.os.UserHandle;
import com.android.intentresolver.AbstractMultiProfilePagerAdapter.CrossProfileIntentsChecker;
import com.android.intentresolver.chooser.TargetInfo;
import com.android.intentresolver.contentpreview.ImageLoader;
-import com.android.intentresolver.logging.EventLog;
+import com.android.intentresolver.logging.EventLogImpl;
import com.android.intentresolver.shortcuts.ShortcutLoader;
import java.util.function.Consumer;
@@ -64,7 +64,7 @@ public class ChooserActivityOverrideData {
public Cursor resolverCursor;
public boolean resolverForceException;
public ImageLoader imageLoader;
- public EventLog mEventLog;
+ public EventLogImpl mEventLog;
public int alternateProfileSetting;
public Resources resources;
public UserHandle workProfileUserHandle;
@@ -86,7 +86,7 @@ public class ChooserActivityOverrideData {
resolverForceException = false;
resolverListController = mock(ChooserActivity.ChooserListController.class);
workResolverListController = mock(ChooserActivity.ChooserListController.class);
- mEventLog = mock(EventLog.class);
+ mEventLog = mock(EventLogImpl.class);
alternateProfileSetting = 0;
resources = null;
workProfileUserHandle = null;
diff --git a/java/tests/src/com/android/intentresolver/ChooserListAdapterTest.kt b/java/tests/src/com/android/intentresolver/ChooserListAdapterTest.kt
index 9b5e2d1c..87e58954 100644
--- a/java/tests/src/com/android/intentresolver/ChooserListAdapterTest.kt
+++ b/java/tests/src/com/android/intentresolver/ChooserListAdapterTest.kt
@@ -32,7 +32,7 @@ import com.android.intentresolver.chooser.DisplayResolveInfo
import com.android.intentresolver.chooser.SelectableTargetInfo
import com.android.intentresolver.chooser.TargetInfo
import com.android.intentresolver.icons.TargetDataLoader
-import com.android.intentresolver.logging.EventLog
+import com.android.intentresolver.logging.EventLogImpl
import com.android.internal.R
import com.google.common.truth.Truth.assertThat
import org.junit.Before
@@ -54,7 +54,7 @@ class ChooserListAdapterTest {
private val resolverListController = mock<ResolverListController>()
private val appLabel = "App"
private val targetLabel = "Target"
- private val mEventLog = mock<EventLog>()
+ private val mEventLog = mock<EventLogImpl>()
private val mTargetDataLoader = mock<TargetDataLoader>()
private val testSubject by lazy {
diff --git a/java/tests/src/com/android/intentresolver/ChooserWrapperActivity.java b/java/tests/src/com/android/intentresolver/ChooserWrapperActivity.java
index 578b9557..d488e02b 100644
--- a/java/tests/src/com/android/intentresolver/ChooserWrapperActivity.java
+++ b/java/tests/src/com/android/intentresolver/ChooserWrapperActivity.java
@@ -39,7 +39,7 @@ import com.android.intentresolver.chooser.DisplayResolveInfo;
import com.android.intentresolver.chooser.TargetInfo;
import com.android.intentresolver.grid.ChooserGridAdapter;
import com.android.intentresolver.icons.TargetDataLoader;
-import com.android.intentresolver.logging.EventLog;
+import com.android.intentresolver.logging.EventLogImpl;
import com.android.intentresolver.shortcuts.ShortcutLoader;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
@@ -204,7 +204,7 @@ public class ChooserWrapperActivity extends ChooserActivity implements IChooserW
}
@Override
- public EventLog getEventLog() {
+ public EventLogImpl getEventLog() {
return sOverrides.mEventLog;
}
@@ -263,7 +263,7 @@ public class ChooserWrapperActivity extends ChooserActivity implements IChooserW
@Override
public Context createContextAsUser(UserHandle user, int flags) {
// return the current context as a work profile doesn't really exist in these tests
- return getApplicationContext();
+ return this;
}
@Override
diff --git a/java/tests/src/com/android/intentresolver/IChooserWrapper.java b/java/tests/src/com/android/intentresolver/IChooserWrapper.java
index 3326d7f2..54e4da9e 100644
--- a/java/tests/src/com/android/intentresolver/IChooserWrapper.java
+++ b/java/tests/src/com/android/intentresolver/IChooserWrapper.java
@@ -23,7 +23,7 @@ import android.content.pm.ResolveInfo;
import android.os.UserHandle;
import com.android.intentresolver.chooser.DisplayResolveInfo;
-import com.android.intentresolver.logging.EventLog;
+import com.android.intentresolver.logging.EventLogImpl;
import java.util.concurrent.Executor;
@@ -42,6 +42,6 @@ public interface IChooserWrapper {
CharSequence pLabel, CharSequence pInfo, Intent replacementIntent,
@Nullable TargetPresentationGetter resolveInfoPresentationGetter);
UserHandle getCurrentUserHandle();
- EventLog getEventLog();
+ EventLogImpl getEventLog();
Executor getMainExecutor();
}
diff --git a/java/tests/src/com/android/intentresolver/TestApplication.kt b/java/tests/src/com/android/intentresolver/TestApplication.kt
deleted file mode 100644
index b57fd4d9..00000000
--- a/java/tests/src/com/android/intentresolver/TestApplication.kt
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.intentresolver
-
-import android.content.Context
-import android.os.UserHandle
-
-class TestApplication : MainApplication() {
-
- // return the current context as a work profile doesn't really exist in these tests
- override fun createContextAsUser(user: UserHandle, flags: Int): Context = this
-}
diff --git a/java/tests/src/com/android/intentresolver/UnbundledChooserActivityTest.java b/java/tests/src/com/android/intentresolver/UnbundledChooserActivityTest.java
index 59357843..0b3cb20a 100644
--- a/java/tests/src/com/android/intentresolver/UnbundledChooserActivityTest.java
+++ b/java/tests/src/com/android/intentresolver/UnbundledChooserActivityTest.java
@@ -113,6 +113,7 @@ import androidx.test.rule.ActivityTestRule;
import com.android.intentresolver.chooser.DisplayResolveInfo;
import com.android.intentresolver.contentpreview.ImageLoader;
import com.android.intentresolver.logging.EventLog;
+import com.android.intentresolver.logging.EventLogImpl;
import com.android.intentresolver.shortcuts.ShortcutLoader;
import com.android.internal.config.sysui.SystemUiDeviceConfigFlags;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
@@ -145,6 +146,9 @@ import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Consumer;
import java.util.function.Function;
+import dagger.hilt.android.testing.HiltAndroidRule;
+import dagger.hilt.android.testing.HiltAndroidTest;
+
/**
* Instrumentation tests for ChooserActivity.
* <p>
@@ -152,6 +156,7 @@ import java.util.function.Function;
* <p>
*/
@RunWith(Parameterized.class)
+@HiltAndroidTest
public class UnbundledChooserActivityTest {
private static final UserHandle PERSONAL_USER_HANDLE = InstrumentationRegistry
@@ -186,7 +191,10 @@ public class UnbundledChooserActivityTest {
cleanOverrideData();
}
- @Rule
+ @Rule(order = 0)
+ public HiltAndroidRule mHiltAndroidRule = new HiltAndroidRule(this);
+
+ @Rule(order = 1)
public ActivityTestRule<ChooserWrapperActivity> mActivityRule =
new ActivityTestRule<>(ChooserWrapperActivity.class, false, false);
@@ -845,7 +853,7 @@ public class UnbundledChooserActivityTest {
onView(withId(R.id.copy)).perform(click());
EventLog logger = activity.getEventLog();
- verify(logger, times(1)).logActionSelected(eq(EventLog.SELECTION_TYPE_COPY));
+ verify(logger, times(1)).logActionSelected(eq(EventLogImpl.SELECTION_TYPE_COPY));
}
@Test
@@ -1466,7 +1474,7 @@ public class UnbundledChooserActivityTest {
ArgumentCaptor<HashedStringCache.HashResult> hashCaptor =
ArgumentCaptor.forClass(HashedStringCache.HashResult.class);
verify(activity.getEventLog(), times(1)).logShareTargetSelected(
- eq(EventLog.SELECTION_TYPE_SERVICE),
+ eq(EventLogImpl.SELECTION_TYPE_SERVICE),
/* packageName= */ any(),
/* positionPicked= */ anyInt(),
/* directTargetAlsoRanked= */ eq(-1),
@@ -1547,7 +1555,7 @@ public class UnbundledChooserActivityTest {
waitForIdle();
verify(activity.getEventLog(), times(1)).logShareTargetSelected(
- eq(EventLog.SELECTION_TYPE_SERVICE),
+ eq(EventLogImpl.SELECTION_TYPE_SERVICE),
/* packageName= */ any(),
/* positionPicked= */ anyInt(),
/* directTargetAlsoRanked= */ eq(0),
@@ -1963,7 +1971,7 @@ public class UnbundledChooserActivityTest {
EventLog logger = wrapper.getEventLog();
verify(logger, times(1)).logShareTargetSelected(
- eq(EventLog.SELECTION_TYPE_SERVICE),
+ eq(EventLogImpl.SELECTION_TYPE_SERVICE),
/* packageName= */ any(),
/* positionPicked= */ anyInt(),
// The packages sholdn't match for app target and direct target:
@@ -2296,7 +2304,7 @@ public class UnbundledChooserActivityTest {
EventLog logger = activity.getEventLog();
ArgumentCaptor<Integer> typeCaptor = ArgumentCaptor.forClass(Integer.class);
verify(logger, times(1)).logShareTargetSelected(
- eq(EventLog.SELECTION_TYPE_SERVICE),
+ eq(EventLogImpl.SELECTION_TYPE_SERVICE),
/* packageName= */ any(),
/* positionPicked= */ anyInt(),
/* directTargetAlsoRanked= */ anyInt(),
diff --git a/java/tests/src/com/android/intentresolver/UnbundledChooserActivityWorkProfileTest.java b/java/tests/src/com/android/intentresolver/UnbundledChooserActivityWorkProfileTest.java
index 92bccb7d..f0e88564 100644
--- a/java/tests/src/com/android/intentresolver/UnbundledChooserActivityWorkProfileTest.java
+++ b/java/tests/src/com/android/intentresolver/UnbundledChooserActivityWorkProfileTest.java
@@ -64,15 +64,22 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.List;
+import dagger.hilt.android.testing.HiltAndroidRule;
+import dagger.hilt.android.testing.HiltAndroidTest;
+
@DeviceFilter.MediumType
@RunWith(Parameterized.class)
+@HiltAndroidTest
public class UnbundledChooserActivityWorkProfileTest {
private static final UserHandle PERSONAL_USER_HANDLE = InstrumentationRegistry
.getInstrumentation().getTargetContext().getUser();
private static final UserHandle WORK_USER_HANDLE = UserHandle.of(10);
- @Rule
+ @Rule(order = 0)
+ public HiltAndroidRule mHiltAndroidRule = new HiltAndroidRule(this);
+
+ @Rule(order = 1)
public ActivityTestRule<ChooserWrapperActivity> mActivityRule =
new ActivityTestRule<>(ChooserWrapperActivity.class, false,
false);
diff --git a/java/tests/src/com/android/intentresolver/logging/EventLogTest.java b/java/tests/src/com/android/intentresolver/logging/EventLogImplTest.java
index 17452774..19177798 100644
--- a/java/tests/src/com/android/intentresolver/logging/EventLogTest.java
+++ b/java/tests/src/com/android/intentresolver/logging/EventLogImplTest.java
@@ -32,10 +32,9 @@ import static org.mockito.Mockito.verifyNoMoreInteractions;
import android.content.Intent;
import android.metrics.LogMaker;
-import com.android.intentresolver.logging.EventLog.FrameworkStatsLogger;
-import com.android.intentresolver.logging.EventLog.SharesheetStandardEvent;
-import com.android.intentresolver.logging.EventLog.SharesheetStartedEvent;
-import com.android.intentresolver.logging.EventLog.SharesheetTargetSelectedEvent;
+import com.android.intentresolver.logging.EventLogImpl.SharesheetStandardEvent;
+import com.android.intentresolver.logging.EventLogImpl.SharesheetStartedEvent;
+import com.android.intentresolver.logging.EventLogImpl.SharesheetTargetSelectedEvent;
import com.android.intentresolver.contentpreview.ContentPreviewType;
import com.android.internal.logging.InstanceId;
import com.android.internal.logging.MetricsLogger;
@@ -53,17 +52,17 @@ import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
@RunWith(MockitoJUnitRunner.class)
-public final class EventLogTest {
+public final class EventLogImplTest {
@Mock private UiEventLogger mUiEventLog;
@Mock private FrameworkStatsLogger mFrameworkLog;
@Mock private MetricsLogger mMetricsLogger;
- private EventLog mChooserLogger;
+ private EventLogImpl mChooserLogger;
@Before
public void setUp() {
//Mockito.reset(mUiEventLog, mFrameworkLog, mMetricsLogger);
- mChooserLogger = new EventLog(mUiEventLog, mFrameworkLog, mMetricsLogger);
+ mChooserLogger = new EventLogImpl(mUiEventLog, mFrameworkLog, mMetricsLogger);
}
@After
@@ -151,7 +150,7 @@ public final class EventLogTest {
@Test
public void testLogShareTargetSelected() {
- final int targetType = EventLog.SELECTION_TYPE_SERVICE;
+ final int targetType = EventLogImpl.SELECTION_TYPE_SERVICE;
final String packageName = "com.test.foo";
final int positionPicked = 123;
final int directTargetAlsoRanked = -1;
@@ -189,7 +188,7 @@ public final class EventLogTest {
@Test
public void testLogActionSelected() {
- mChooserLogger.logActionSelected(EventLog.SELECTION_TYPE_COPY);
+ mChooserLogger.logActionSelected(EventLogImpl.SELECTION_TYPE_COPY);
verify(mFrameworkLog).write(
eq(FrameworkStatsLog.RANKING_SELECTED),
@@ -320,10 +319,10 @@ public final class EventLogTest {
@Test
public void testDifferentLoggerInstancesUseDifferentInstanceIds() {
ArgumentCaptor<Integer> idIntCaptor = ArgumentCaptor.forClass(Integer.class);
- EventLog chooserLogger2 =
- new EventLog(mUiEventLog, mFrameworkLog, mMetricsLogger);
+ EventLogImpl chooserLogger2 =
+ new EventLogImpl(mUiEventLog, mFrameworkLog, mMetricsLogger);
- final int targetType = EventLog.SELECTION_TYPE_COPY;
+ final int targetType = EventLogImpl.SELECTION_TYPE_COPY;
final String packageName = "com.test.foo";
final int positionPicked = 123;
final int directTargetAlsoRanked = -1;
@@ -370,7 +369,7 @@ public final class EventLogTest {
ArgumentCaptor<Integer> idIntCaptor = ArgumentCaptor.forClass(Integer.class);
ArgumentCaptor<InstanceId> idObjectCaptor = ArgumentCaptor.forClass(InstanceId.class);
- final int targetType = EventLog.SELECTION_TYPE_COPY;
+ final int targetType = EventLogImpl.SELECTION_TYPE_COPY;
final String packageName = "com.test.foo";
final int positionPicked = 123;
final int directTargetAlsoRanked = -1;
@@ -403,20 +402,20 @@ public final class EventLogTest {
@Test
public void testTargetSelectionCategories() {
- assertThat(EventLog.getTargetSelectionCategory(
- EventLog.SELECTION_TYPE_SERVICE))
+ assertThat(EventLogImpl.getTargetSelectionCategory(
+ EventLogImpl.SELECTION_TYPE_SERVICE))
.isEqualTo(MetricsEvent.ACTION_ACTIVITY_CHOOSER_PICKED_SERVICE_TARGET);
- assertThat(EventLog.getTargetSelectionCategory(
- EventLog.SELECTION_TYPE_APP))
+ assertThat(EventLogImpl.getTargetSelectionCategory(
+ EventLogImpl.SELECTION_TYPE_APP))
.isEqualTo(MetricsEvent.ACTION_ACTIVITY_CHOOSER_PICKED_APP_TARGET);
- assertThat(EventLog.getTargetSelectionCategory(
- EventLog.SELECTION_TYPE_STANDARD))
+ assertThat(EventLogImpl.getTargetSelectionCategory(
+ EventLogImpl.SELECTION_TYPE_STANDARD))
.isEqualTo(MetricsEvent.ACTION_ACTIVITY_CHOOSER_PICKED_STANDARD_TARGET);
- assertThat(EventLog.getTargetSelectionCategory(
- EventLog.SELECTION_TYPE_COPY)).isEqualTo(0);
- assertThat(EventLog.getTargetSelectionCategory(
- EventLog.SELECTION_TYPE_NEARBY)).isEqualTo(0);
- assertThat(EventLog.getTargetSelectionCategory(
- EventLog.SELECTION_TYPE_EDIT)).isEqualTo(0);
+ assertThat(EventLogImpl.getTargetSelectionCategory(
+ EventLogImpl.SELECTION_TYPE_COPY)).isEqualTo(0);
+ assertThat(EventLogImpl.getTargetSelectionCategory(
+ EventLogImpl.SELECTION_TYPE_NEARBY)).isEqualTo(0);
+ assertThat(EventLogImpl.getTargetSelectionCategory(
+ EventLogImpl.SELECTION_TYPE_EDIT)).isEqualTo(0);
}
}