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:
Salud Lemus
2021-03-02 01:01:00 +00:00
parent 5e57390696
commit b45d87715a
5 changed files with 167 additions and 35 deletions

View File

@@ -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);
}
}