From 50c8cdbf7ea01cea705a61d5389e722b368ba3b8 Mon Sep 17 00:00:00 2001 From: Fan Zhang Date: Fri, 15 Jun 2018 10:33:46 -0700 Subject: [PATCH] Fix robotest Change-Id: Id6e9c82121873b68e6806d6c80634d592606f479 Fixes: 110263693 Test: robotest --- ...ckLocationAppPreferenceControllerTest.java | 39 ++++++++++--------- .../RestrictAppPreferenceControllerTest.java | 33 ++++++---------- 2 files changed, 33 insertions(+), 39 deletions(-) diff --git a/tests/robotests/src/com/android/settings/development/MockLocationAppPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/MockLocationAppPreferenceControllerTest.java index e247485f082..a8f534129c2 100644 --- a/tests/robotests/src/com/android/settings/development/MockLocationAppPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/development/MockLocationAppPreferenceControllerTest.java @@ -1,6 +1,7 @@ package com.android.settings.development; -import static com.android.settings.development.DevelopmentOptionsActivityRequestCodes.REQUEST_MOCK_LOCATION_APP; +import static com.android.settings.development.DevelopmentOptionsActivityRequestCodes + .REQUEST_MOCK_LOCATION_APP; import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; @@ -16,14 +17,11 @@ import android.content.Context; import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; -import androidx.preference.Preference; -import androidx.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.testutils.SettingsRobolectricTestRunner; import org.junit.Before; -import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; @@ -33,8 +31,10 @@ import org.robolectric.util.ReflectionHelpers; import java.util.Collections; +import androidx.preference.Preference; +import androidx.preference.PreferenceScreen; + @RunWith(SettingsRobolectricTestRunner.class) -@Ignore public class MockLocationAppPreferenceControllerTest { @Mock @@ -47,10 +47,7 @@ public class MockLocationAppPreferenceControllerTest { private Preference mPreference; @Mock private PreferenceScreen mScreen; - @Mock - private AppOpsManager.PackageOps mPackageOps; - @Mock - private AppOpsManager.OpEntry mOpEntry; + @Mock private ApplicationInfo mApplicationInfo; @@ -71,11 +68,12 @@ public class MockLocationAppPreferenceControllerTest { @Test public void updateState_foobarAppSelected_shouldSetSummaryToFoobar() { final String appName = "foobar"; + + final AppOpsManager.PackageOps packageOps = + new AppOpsManager.PackageOps(appName, 0, + Collections.singletonList(createOpEntry(AppOpsManager.MODE_ALLOWED))); when(mAppOpsManager.getPackagesForOps(any())).thenReturn( - Collections.singletonList(mPackageOps)); - when(mPackageOps.getOps()).thenReturn(Collections.singletonList(mOpEntry)); - when(mOpEntry.getMode()).thenReturn(AppOpsManager.MODE_ALLOWED); - when(mPackageOps.getPackageName()).thenReturn(appName); + Collections.singletonList(packageOps)); mController.updateState(mPreference); @@ -98,16 +96,16 @@ public class MockLocationAppPreferenceControllerTest { final String newAppName = "bar"; final Intent intent = new Intent(); intent.setAction(newAppName); + final AppOpsManager.PackageOps packageOps = new AppOpsManager.PackageOps(prevAppName, 0, + Collections.singletonList(createOpEntry(AppOpsManager.MODE_ALLOWED))); + when(mAppOpsManager.getPackagesForOps(any())) - .thenReturn(Collections.singletonList(mPackageOps)); - when(mPackageOps.getOps()).thenReturn(Collections.singletonList(mOpEntry)); - when(mOpEntry.getMode()).thenReturn(AppOpsManager.MODE_ALLOWED); - when(mPackageOps.getPackageName()).thenReturn(prevAppName); + .thenReturn(Collections.singletonList(packageOps)); when(mPackageManager.getApplicationInfo(anyString(), eq(PackageManager.MATCH_DISABLED_COMPONENTS))).thenReturn(mApplicationInfo); final boolean handled = - mController.onActivityResult(REQUEST_MOCK_LOCATION_APP, Activity.RESULT_OK, intent); + mController.onActivityResult(REQUEST_MOCK_LOCATION_APP, Activity.RESULT_OK, intent); assertThat(handled).isTrue(); verify(mAppOpsManager).setMode(anyInt(), anyInt(), eq(newAppName), @@ -141,4 +139,9 @@ public class MockLocationAppPreferenceControllerTest { assertThat(mController.handlePreferenceTreeClick(mPreference)).isFalse(); } + + private AppOpsManager.OpEntry createOpEntry(int opMode) { + return new AppOpsManager.OpEntry(0, opMode, 0l /* time */, 0 /* rejectTime */, + 0 /* duration */, 0 /* proxyUid */, null /* proxyPackage */); + } } diff --git a/tests/robotests/src/com/android/settings/fuelgauge/RestrictAppPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/RestrictAppPreferenceControllerTest.java index a377c16439b..81cf6526347 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/RestrictAppPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/RestrictAppPreferenceControllerTest.java @@ -18,9 +18,7 @@ package com.android.settings.fuelgauge; import static com.android.settings.SettingsActivity.EXTRA_SHOW_FRAGMENT; import static com.android.settings.SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE_RESID; - import static com.google.common.truth.Truth.assertThat; - import static org.mockito.Matchers.any; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; @@ -31,15 +29,12 @@ import android.content.Context; import android.content.Intent; import android.os.UserHandle; import android.os.UserManager; -import androidx.preference.Preference; import com.android.settings.R; -import com.android.settings.SettingsActivity; import com.android.settings.core.InstrumentedPreferenceFragment; import com.android.settings.fuelgauge.batterytip.AppInfo; import org.junit.Before; -import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; @@ -51,8 +46,9 @@ import org.robolectric.RuntimeEnvironment; import java.util.ArrayList; import java.util.List; +import androidx.preference.Preference; + @RunWith(RobolectricTestRunner.class) -@Ignore public class RestrictAppPreferenceControllerTest { private static final int ALLOWED_UID = 111; private static final String ALLOWED_PACKAGE_NAME = "com.android.allowed.package"; @@ -63,15 +59,13 @@ public class RestrictAppPreferenceControllerTest { @Mock private AppOpsManager mAppOpsManager; @Mock - private AppOpsManager.PackageOps mRestrictedPackageOps; - @Mock - private AppOpsManager.PackageOps mAllowedPackageOps; - @Mock - private AppOpsManager.PackageOps mOtherUserPackageOps; - @Mock private InstrumentedPreferenceFragment mFragment; @Mock private UserManager mUserManager; + + private AppOpsManager.PackageOps mRestrictedPackageOps; + private AppOpsManager.PackageOps mAllowedPackageOps; + private AppOpsManager.PackageOps mOtherUserPackageOps; private List mPackageOpsList; private RestrictAppPreferenceController mRestrictAppPreferenceController; private Preference mPreference; @@ -89,15 +83,12 @@ public class RestrictAppPreferenceControllerTest { AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, AppOpsManager.MODE_IGNORED, 0, 0, 0, 0, ""); final List restrictedOps = new ArrayList<>(); restrictedOps.add(restrictedOpEntry); - doReturn(ALLOWED_UID).when(mAllowedPackageOps).getUid(); - doReturn(ALLOWED_PACKAGE_NAME).when(mAllowedPackageOps).getPackageName(); - doReturn(allowOps).when(mAllowedPackageOps).getOps(); - doReturn(RESTRICTED_UID).when(mRestrictedPackageOps).getUid(); - doReturn(RESTRICTED_PACKAGE_NAME).when(mRestrictedPackageOps).getPackageName(); - doReturn(restrictedOps).when(mRestrictedPackageOps).getOps(); - doReturn(OTHER_USER_UID).when(mOtherUserPackageOps).getUid(); - doReturn(RESTRICTED_PACKAGE_NAME).when(mOtherUserPackageOps).getPackageName(); - doReturn(restrictedOps).when(mOtherUserPackageOps).getOps(); + mAllowedPackageOps = new AppOpsManager.PackageOps( + ALLOWED_PACKAGE_NAME, ALLOWED_UID, allowOps); + mRestrictedPackageOps = new AppOpsManager.PackageOps( + RESTRICTED_PACKAGE_NAME, RESTRICTED_UID, restrictedOps); + mOtherUserPackageOps = new AppOpsManager.PackageOps( + RESTRICTED_PACKAGE_NAME, OTHER_USER_UID, restrictedOps); mContext = spy(RuntimeEnvironment.application); doReturn(mAppOpsManager).when(mContext).getSystemService(Context.APP_OPS_SERVICE);