Update Action Not Allowed Dialog text for a financed device
Bug: 173826319 Bug: 158157476 Test: Used a test device that is registered via ZT Test: m RunSettingsRoboTests ROBOTEST_FILTER=ActionDisabledByAdminDialogHelperTest Change-Id: Iefeb0b653764952e409dfd862d9cc54c4f5e7fc9
This commit is contained in:
@@ -16,6 +16,8 @@
|
||||
|
||||
package com.android.settings.enterprise;
|
||||
|
||||
import static android.app.admin.DevicePolicyManager.DEVICE_OWNER_TYPE_FINANCED;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertNull;
|
||||
@@ -34,8 +36,10 @@ import android.content.pm.UserInfo;
|
||||
import android.os.Process;
|
||||
import android.os.UserHandle;
|
||||
import android.os.UserManager;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
@@ -104,12 +108,24 @@ public class ActionDisabledByAdminDialogHelperTest {
|
||||
Settings.DeviceAdminSettingsActivity.class.getName()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSetAdminSupportIconForFinancedDevice_adminSupportIconIsGone() {
|
||||
final ShadowDevicePolicyManager dpmShadow = ShadowDevicePolicyManager.getShadow();
|
||||
final ViewGroup view = new FrameLayout(mActivity);
|
||||
final ImageView supportIconImageView = createAdminSupportIconImageView(view, mActivity);
|
||||
final ComponentName component = new ComponentName("some.package.name",
|
||||
"some.package.name.SomeClass");
|
||||
setupFinancedDevice(dpmShadow);
|
||||
|
||||
mHelper.setAdminSupportIcon(view, component, 123);
|
||||
|
||||
assertEquals(View.GONE, supportIconImageView.getVisibility());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSetAdminSupportTitle() {
|
||||
final ViewGroup view = new FrameLayout(mActivity);
|
||||
final TextView textView = new TextView(mActivity);
|
||||
textView.setId(R.id.admin_support_dialog_title);
|
||||
view.addView(textView);
|
||||
final TextView textView = createAdminSupportDialogTitleTextView(view, mActivity);
|
||||
|
||||
mHelper.setAdminSupportTitle(view, UserManager.DISALLOW_ADJUST_VOLUME);
|
||||
assertEquals(Shadows.shadowOf(textView).innerText(),
|
||||
@@ -144,6 +160,19 @@ public class ActionDisabledByAdminDialogHelperTest {
|
||||
mActivity.getString(R.string.disabled_by_policy_title));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSetAdminSupportTitleForFinancedDevice() {
|
||||
final ShadowDevicePolicyManager dpmShadow = ShadowDevicePolicyManager.getShadow();
|
||||
final ViewGroup view = new FrameLayout(mActivity);
|
||||
final TextView textView = createAdminSupportDialogTitleTextView(view, mActivity);
|
||||
setupFinancedDevice(dpmShadow);
|
||||
|
||||
mHelper.setAdminSupportTitle(view, null);
|
||||
|
||||
assertEquals(Shadows.shadowOf(textView).innerText(),
|
||||
mActivity.getString(R.string.disabled_by_policy_title_financed_device));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSetAdminSupportDetails() {
|
||||
final ShadowDevicePolicyManager dpmShadow = ShadowDevicePolicyManager.getShadow();
|
||||
@@ -154,17 +183,13 @@ public class ActionDisabledByAdminDialogHelperTest {
|
||||
final ComponentName component = new ComponentName("some.package.name",
|
||||
"some.package.name.SomeClass");
|
||||
final EnforcedAdmin admin = new EnforcedAdmin(component, UserHandle.of(123));
|
||||
final TextView textView = new TextView(mActivity);
|
||||
|
||||
textView.setId(R.id.admin_support_msg);
|
||||
view.addView(textView);
|
||||
final TextView textView = createAdminSupportTextView(view, mActivity);
|
||||
dpmShadow.setShortSupportMessageForUser(component, 123, "some message");
|
||||
dpmShadow.setIsAdminActiveAsUser(true);
|
||||
userManagerShadow.addProfile(new UserInfo(123, null, 0));
|
||||
userManagerShadow.addUserProfile(new UserHandle(123));
|
||||
ShadowProcess.setUid(Process.SYSTEM_UID);
|
||||
createShadowWorkProfile(userManagerShadow);
|
||||
|
||||
mHelper.setAdminSupportDetails(mActivity, view, admin);
|
||||
|
||||
assertNotNull(admin.component);
|
||||
assertEquals("some message", Shadows.shadowOf(textView).innerText());
|
||||
}
|
||||
@@ -175,16 +200,40 @@ public class ActionDisabledByAdminDialogHelperTest {
|
||||
final UserManager userManager = RuntimeEnvironment.application.getSystemService(
|
||||
UserManager.class);
|
||||
final ShadowUserManager userManagerShadow = Shadow.extract(userManager);
|
||||
final ViewGroup view = new FrameLayout(mActivity);
|
||||
final ComponentName component = new ComponentName("some.package.name",
|
||||
"some.package.name.SomeClass");
|
||||
final EnforcedAdmin admin = new EnforcedAdmin(component, UserHandle.of(123));
|
||||
|
||||
final TextView textView = createAdminSupportTextView(view, mActivity);
|
||||
dpmShadow.setShortSupportMessageForUser(component, 123, "some message");
|
||||
dpmShadow.setIsAdminActiveAsUser(false);
|
||||
userManagerShadow.addProfile(new UserInfo(123, null, 0));
|
||||
|
||||
mHelper.setAdminSupportDetails(mActivity, null, admin);
|
||||
mHelper.setAdminSupportDetails(mActivity, textView, admin);
|
||||
|
||||
assertNull(admin.component);
|
||||
assertEquals(mActivity.getString(R.string.default_admin_support_msg),
|
||||
Shadows.shadowOf(textView).innerText());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSetAdminSupportDetailsForFinancedDevice_shortSupportMessageIsNull() {
|
||||
final ShadowDevicePolicyManager dpmShadow = ShadowDevicePolicyManager.getShadow();
|
||||
final UserManager userManager = RuntimeEnvironment.application.getSystemService(
|
||||
UserManager.class);
|
||||
final ShadowUserManager userManagerShadow = Shadow.extract(userManager);
|
||||
final ViewGroup view = new FrameLayout(mActivity);
|
||||
final ComponentName component = new ComponentName("some.package.name",
|
||||
"some.package.name.SomeClass");
|
||||
final EnforcedAdmin admin = new EnforcedAdmin(component, UserHandle.of(123));
|
||||
final TextView textView = createAdminSupportTextView(view, mActivity);
|
||||
setupFinancedDevice(dpmShadow);
|
||||
createShadowWorkProfile(userManagerShadow);
|
||||
|
||||
mHelper.setAdminSupportDetails(mActivity, view, admin);
|
||||
|
||||
assertNotNull(admin.component);
|
||||
assertEquals("", Shadows.shadowOf(textView).innerText());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -210,4 +259,44 @@ public class ActionDisabledByAdminDialogHelperTest {
|
||||
mHelper.maybeSetLearnMoreButton(builder);
|
||||
verify(builder, never()).setNeutralButton(anyInt(), any());
|
||||
}
|
||||
|
||||
private static ImageView createAdminSupportIconImageView(final ViewGroup view,
|
||||
final Activity activity) {
|
||||
final ImageView supportIconView = new ImageView(activity);
|
||||
supportIconView.setId(R.id.admin_support_icon);
|
||||
view.addView(supportIconView);
|
||||
return supportIconView;
|
||||
}
|
||||
|
||||
private static TextView createAdminSupportDialogTitleTextView(final ViewGroup view,
|
||||
final Activity activity) {
|
||||
final TextView textView = new TextView(activity);
|
||||
textView.setId(R.id.admin_support_dialog_title);
|
||||
view.addView(textView);
|
||||
return textView;
|
||||
}
|
||||
|
||||
private static TextView createAdminSupportTextView(final ViewGroup view,
|
||||
final Activity activity) {
|
||||
final TextView textView = new TextView(activity);
|
||||
textView.setId(R.id.admin_support_msg);
|
||||
view.addView(textView);
|
||||
return textView;
|
||||
}
|
||||
|
||||
private static void createShadowWorkProfile(final ShadowUserManager userManagerShadow) {
|
||||
userManagerShadow.addProfile(new UserInfo(123, null, 0));
|
||||
userManagerShadow.addUserProfile(new UserHandle(123));
|
||||
ShadowProcess.setUid(Process.SYSTEM_UID);
|
||||
}
|
||||
|
||||
private static void setupFinancedDevice(final ShadowDevicePolicyManager dpmShadow) {
|
||||
final ComponentName component = new ComponentName("some.package.name",
|
||||
"some.package.name.SomeClass");
|
||||
dpmShadow.setDeviceOwner(component);
|
||||
dpmShadow.setDeviceOwnerComponentOnAnyUser(component);
|
||||
dpmShadow.setDeviceOwnerType(component, DEVICE_OWNER_TYPE_FINANCED);
|
||||
dpmShadow.setShortSupportMessageForUser(component, 123, null);
|
||||
dpmShadow.setIsAdminActiveAsUser(true);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user