Merge "Use role for App info default phone shortcut."

This commit is contained in:
TreeHugger Robot
2019-01-30 22:23:40 +00:00
committed by Android (Google) Code Review
2 changed files with 14 additions and 65 deletions

View File

@@ -14,27 +14,15 @@
package com.android.settings.applications.appinfo; package com.android.settings.applications.appinfo;
import android.app.role.RoleManager;
import android.content.Context; import android.content.Context;
import com.android.settings.applications.defaultapps.DefaultPhonePreferenceController;
public class DefaultPhoneShortcutPreferenceController public class DefaultPhoneShortcutPreferenceController
extends DefaultAppShortcutPreferenceControllerBase { extends DefaultAppShortcutPreferenceControllerBase {
private static final String KEY = "default_phone_app"; private static final String KEY = "default_phone_app";
public DefaultPhoneShortcutPreferenceController(Context context, String packageName) { public DefaultPhoneShortcutPreferenceController(Context context, String packageName) {
super(context, KEY, packageName); super(context, KEY, RoleManager.ROLE_DIALER, packageName);
} }
@Override
protected boolean hasAppCapability() {
return DefaultPhonePreferenceController.hasPhonePreference(mPackageName, mContext);
}
@Override
protected boolean isDefaultApp() {
return DefaultPhonePreferenceController.isPhoneDefault(mPackageName, mContext);
}
} }

View File

@@ -18,13 +18,8 @@ package com.android.settings.applications.appinfo;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
import android.content.Context; import android.content.Context;
import android.content.pm.PackageManager; import android.permission.PermissionControllerManager;
import com.android.settings.applications.defaultapps.DefaultPhonePreferenceController;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
@@ -33,64 +28,30 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations; import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner; import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment; import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config; import org.robolectric.shadows.ShadowApplication;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
@RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class)
public class DefaultPhoneShortcutPreferenceControllerTest { public class DefaultPhoneShortcutPreferenceControllerTest {
@Mock private static final String TEST_PACKAGE_NAME = "TestPackage";
private PackageManager mPackageManager; private static final String PREFERENCE_KEY = "default_phone_app";
@Mock
private PermissionControllerManager mPermissionControllerManager;
private Context mContext;
private DefaultPhoneShortcutPreferenceController mController; private DefaultPhoneShortcutPreferenceController mController;
@Before @Before
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mContext = spy(RuntimeEnvironment.application); ShadowApplication.getInstance().setSystemService(Context.PERMISSION_CONTROLLER_SERVICE,
when(mContext.getPackageManager()).thenReturn(mPackageManager); mPermissionControllerManager);
mController = new DefaultPhoneShortcutPreferenceController(mContext, "Package1"); mController = new DefaultPhoneShortcutPreferenceController(RuntimeEnvironment.application,
TEST_PACKAGE_NAME);
} }
@Test @Test
public void getPreferenceKey_shouldReturnDefaultPhone() { public void getPreferenceKey_shouldReturnDefaultPhone() {
assertThat(mController.getPreferenceKey()).isEqualTo("default_phone_app"); assertThat(mController.getPreferenceKey()).isEqualTo(PREFERENCE_KEY);
}
@Test
@Config(shadows = ShadowDefaultPhonePreferenceController.class)
public void hasAppCapability_hasPhoneCapability_shouldReturnTrue() {
assertThat(mController.hasAppCapability()).isTrue();
}
@Test
public void hasAppCapability_noPhoneCapability_shouldReturnFalse() {
assertThat(mController.hasAppCapability()).isFalse();
}
@Test
@Config(shadows = ShadowDefaultPhonePreferenceController.class)
public void isDefaultApp_isDefaultPhone_shouldReturnTrue() {
assertThat(mController.isDefaultApp()).isTrue();
}
@Test
public void isDefaultApp_notDefaultPhone_shouldReturnFalse() {
assertThat(mController.isDefaultApp()).isFalse();
}
@Implements(DefaultPhonePreferenceController.class)
public static class ShadowDefaultPhonePreferenceController {
@Implementation
protected static boolean hasPhonePreference(String pkg, Context context) {
return true;
}
@Implementation
protected static boolean isPhoneDefault(String pkg, Context context) {
return true;
}
} }
} }