Fix robotest

Change-Id: Id6e9c82121873b68e6806d6c80634d592606f479
Fixes: 110263693
Test: robotest
This commit is contained in:
Fan Zhang
2018-06-15 10:33:46 -07:00
parent 81ec9e1131
commit 50c8cdbf7e
2 changed files with 33 additions and 39 deletions

View File

@@ -1,6 +1,7 @@
package com.android.settings.development; 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 com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyInt;
@@ -16,14 +17,11 @@ import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.pm.ApplicationInfo; import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.SettingsRobolectricTestRunner;
import org.junit.Before; import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.mockito.Mock; import org.mockito.Mock;
@@ -33,8 +31,10 @@ import org.robolectric.util.ReflectionHelpers;
import java.util.Collections; import java.util.Collections;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
@RunWith(SettingsRobolectricTestRunner.class) @RunWith(SettingsRobolectricTestRunner.class)
@Ignore
public class MockLocationAppPreferenceControllerTest { public class MockLocationAppPreferenceControllerTest {
@Mock @Mock
@@ -47,10 +47,7 @@ public class MockLocationAppPreferenceControllerTest {
private Preference mPreference; private Preference mPreference;
@Mock @Mock
private PreferenceScreen mScreen; private PreferenceScreen mScreen;
@Mock
private AppOpsManager.PackageOps mPackageOps;
@Mock
private AppOpsManager.OpEntry mOpEntry;
@Mock @Mock
private ApplicationInfo mApplicationInfo; private ApplicationInfo mApplicationInfo;
@@ -71,11 +68,12 @@ public class MockLocationAppPreferenceControllerTest {
@Test @Test
public void updateState_foobarAppSelected_shouldSetSummaryToFoobar() { public void updateState_foobarAppSelected_shouldSetSummaryToFoobar() {
final String appName = "foobar"; final String appName = "foobar";
final AppOpsManager.PackageOps packageOps =
new AppOpsManager.PackageOps(appName, 0,
Collections.singletonList(createOpEntry(AppOpsManager.MODE_ALLOWED)));
when(mAppOpsManager.getPackagesForOps(any())).thenReturn( when(mAppOpsManager.getPackagesForOps(any())).thenReturn(
Collections.singletonList(mPackageOps)); Collections.singletonList(packageOps));
when(mPackageOps.getOps()).thenReturn(Collections.singletonList(mOpEntry));
when(mOpEntry.getMode()).thenReturn(AppOpsManager.MODE_ALLOWED);
when(mPackageOps.getPackageName()).thenReturn(appName);
mController.updateState(mPreference); mController.updateState(mPreference);
@@ -98,11 +96,11 @@ public class MockLocationAppPreferenceControllerTest {
final String newAppName = "bar"; final String newAppName = "bar";
final Intent intent = new Intent(); final Intent intent = new Intent();
intent.setAction(newAppName); intent.setAction(newAppName);
final AppOpsManager.PackageOps packageOps = new AppOpsManager.PackageOps(prevAppName, 0,
Collections.singletonList(createOpEntry(AppOpsManager.MODE_ALLOWED)));
when(mAppOpsManager.getPackagesForOps(any())) when(mAppOpsManager.getPackagesForOps(any()))
.thenReturn(Collections.singletonList(mPackageOps)); .thenReturn(Collections.singletonList(packageOps));
when(mPackageOps.getOps()).thenReturn(Collections.singletonList(mOpEntry));
when(mOpEntry.getMode()).thenReturn(AppOpsManager.MODE_ALLOWED);
when(mPackageOps.getPackageName()).thenReturn(prevAppName);
when(mPackageManager.getApplicationInfo(anyString(), when(mPackageManager.getApplicationInfo(anyString(),
eq(PackageManager.MATCH_DISABLED_COMPONENTS))).thenReturn(mApplicationInfo); eq(PackageManager.MATCH_DISABLED_COMPONENTS))).thenReturn(mApplicationInfo);
@@ -141,4 +139,9 @@ public class MockLocationAppPreferenceControllerTest {
assertThat(mController.handlePreferenceTreeClick(mPreference)).isFalse(); 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 */);
}
} }

View File

@@ -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;
import static com.android.settings.SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE_RESID; import static com.android.settings.SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE_RESID;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Matchers.any; import static org.mockito.Matchers.any;
import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy; import static org.mockito.Mockito.spy;
@@ -31,15 +29,12 @@ import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.os.UserHandle; import android.os.UserHandle;
import android.os.UserManager; import android.os.UserManager;
import androidx.preference.Preference;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.SettingsActivity;
import com.android.settings.core.InstrumentedPreferenceFragment; import com.android.settings.core.InstrumentedPreferenceFragment;
import com.android.settings.fuelgauge.batterytip.AppInfo; import com.android.settings.fuelgauge.batterytip.AppInfo;
import org.junit.Before; import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor; import org.mockito.ArgumentCaptor;
@@ -51,8 +46,9 @@ import org.robolectric.RuntimeEnvironment;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import androidx.preference.Preference;
@RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class)
@Ignore
public class RestrictAppPreferenceControllerTest { public class RestrictAppPreferenceControllerTest {
private static final int ALLOWED_UID = 111; private static final int ALLOWED_UID = 111;
private static final String ALLOWED_PACKAGE_NAME = "com.android.allowed.package"; private static final String ALLOWED_PACKAGE_NAME = "com.android.allowed.package";
@@ -63,15 +59,13 @@ public class RestrictAppPreferenceControllerTest {
@Mock @Mock
private AppOpsManager mAppOpsManager; private AppOpsManager mAppOpsManager;
@Mock @Mock
private AppOpsManager.PackageOps mRestrictedPackageOps;
@Mock
private AppOpsManager.PackageOps mAllowedPackageOps;
@Mock
private AppOpsManager.PackageOps mOtherUserPackageOps;
@Mock
private InstrumentedPreferenceFragment mFragment; private InstrumentedPreferenceFragment mFragment;
@Mock @Mock
private UserManager mUserManager; private UserManager mUserManager;
private AppOpsManager.PackageOps mRestrictedPackageOps;
private AppOpsManager.PackageOps mAllowedPackageOps;
private AppOpsManager.PackageOps mOtherUserPackageOps;
private List<AppOpsManager.PackageOps> mPackageOpsList; private List<AppOpsManager.PackageOps> mPackageOpsList;
private RestrictAppPreferenceController mRestrictAppPreferenceController; private RestrictAppPreferenceController mRestrictAppPreferenceController;
private Preference mPreference; private Preference mPreference;
@@ -89,15 +83,12 @@ public class RestrictAppPreferenceControllerTest {
AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, AppOpsManager.MODE_IGNORED, 0, 0, 0, 0, ""); AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, AppOpsManager.MODE_IGNORED, 0, 0, 0, 0, "");
final List<AppOpsManager.OpEntry> restrictedOps = new ArrayList<>(); final List<AppOpsManager.OpEntry> restrictedOps = new ArrayList<>();
restrictedOps.add(restrictedOpEntry); restrictedOps.add(restrictedOpEntry);
doReturn(ALLOWED_UID).when(mAllowedPackageOps).getUid(); mAllowedPackageOps = new AppOpsManager.PackageOps(
doReturn(ALLOWED_PACKAGE_NAME).when(mAllowedPackageOps).getPackageName(); ALLOWED_PACKAGE_NAME, ALLOWED_UID, allowOps);
doReturn(allowOps).when(mAllowedPackageOps).getOps(); mRestrictedPackageOps = new AppOpsManager.PackageOps(
doReturn(RESTRICTED_UID).when(mRestrictedPackageOps).getUid(); RESTRICTED_PACKAGE_NAME, RESTRICTED_UID, restrictedOps);
doReturn(RESTRICTED_PACKAGE_NAME).when(mRestrictedPackageOps).getPackageName(); mOtherUserPackageOps = new AppOpsManager.PackageOps(
doReturn(restrictedOps).when(mRestrictedPackageOps).getOps(); RESTRICTED_PACKAGE_NAME, OTHER_USER_UID, restrictedOps);
doReturn(OTHER_USER_UID).when(mOtherUserPackageOps).getUid();
doReturn(RESTRICTED_PACKAGE_NAME).when(mOtherUserPackageOps).getPackageName();
doReturn(restrictedOps).when(mOtherUserPackageOps).getOps();
mContext = spy(RuntimeEnvironment.application); mContext = spy(RuntimeEnvironment.application);
doReturn(mAppOpsManager).when(mContext).getSystemService(Context.APP_OPS_SERVICE); doReturn(mAppOpsManager).when(mContext).getSystemService(Context.APP_OPS_SERVICE);