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;
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 */);
}
}

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_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<AppOpsManager.PackageOps> 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<AppOpsManager.OpEntry> 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);