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;
import android.app.role.RoleManager;
import android.content.Context;
import com.android.settings.applications.defaultapps.DefaultPhonePreferenceController;
public class DefaultPhoneShortcutPreferenceController
extends DefaultAppShortcutPreferenceControllerBase {
private static final String KEY = "default_phone_app";
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 org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
import android.content.Context;
import android.content.pm.PackageManager;
import com.android.settings.applications.defaultapps.DefaultPhonePreferenceController;
import android.permission.PermissionControllerManager;
import org.junit.Before;
import org.junit.Test;
@@ -33,64 +28,30 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
import org.robolectric.shadows.ShadowApplication;
@RunWith(RobolectricTestRunner.class)
public class DefaultPhoneShortcutPreferenceControllerTest {
@Mock
private PackageManager mPackageManager;
private static final String TEST_PACKAGE_NAME = "TestPackage";
private static final String PREFERENCE_KEY = "default_phone_app";
@Mock
private PermissionControllerManager mPermissionControllerManager;
private Context mContext;
private DefaultPhoneShortcutPreferenceController mController;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
mContext = spy(RuntimeEnvironment.application);
when(mContext.getPackageManager()).thenReturn(mPackageManager);
mController = new DefaultPhoneShortcutPreferenceController(mContext, "Package1");
ShadowApplication.getInstance().setSystemService(Context.PERMISSION_CONTROLLER_SERVICE,
mPermissionControllerManager);
mController = new DefaultPhoneShortcutPreferenceController(RuntimeEnvironment.application,
TEST_PACKAGE_NAME);
}
@Test
public void getPreferenceKey_shouldReturnDefaultPhone() {
assertThat(mController.getPreferenceKey()).isEqualTo("default_phone_app");
}
@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;
}
assertThat(mController.getPreferenceKey()).isEqualTo(PREFERENCE_KEY);
}
}