Restrict AddAppNetworksActivity for guest user
- Don't show AddAppNetworksActivity if the user is a guest. Bug: 224772678 Test: manual test make RunSettingsRoboTests ROBOTEST_FILTER=AddAppNetworksActivityTest Change-Id: I17571905f1c4a38db884e6d0523b7f8d668df607
This commit is contained in:
@@ -18,11 +18,14 @@ package com.android.settings.wifi.addappnetworks;
|
|||||||
|
|
||||||
import android.app.ActivityManager;
|
import android.app.ActivityManager;
|
||||||
import android.app.IActivityManager;
|
import android.app.IActivityManager;
|
||||||
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
|
import android.os.UserManager;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
import android.util.EventLog;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.Gravity;
|
import android.view.Gravity;
|
||||||
import android.view.Window;
|
import android.view.Window;
|
||||||
@@ -85,7 +88,13 @@ public class AddAppNetworksActivity extends FragmentActivity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
protected boolean showAddNetworksFragment() {
|
boolean showAddNetworksFragment() {
|
||||||
|
if (isGuestUser(getApplicationContext())) {
|
||||||
|
Log.e(TAG, "Guest user is not allowed to configure Wi-Fi!");
|
||||||
|
EventLog.writeEvent(0x534e4554, "224772678", -1 /* UID */, "User is a guest");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (!isAddWifiConfigAllow()) {
|
if (!isAddWifiConfigAllow()) {
|
||||||
Log.d(TAG, "Not allowed by Enterprise Restriction");
|
Log.d(TAG, "Not allowed by Enterprise Restriction");
|
||||||
return false;
|
return false;
|
||||||
@@ -130,4 +139,11 @@ public class AddAppNetworksActivity extends FragmentActivity {
|
|||||||
boolean isAddWifiConfigAllow() {
|
boolean isAddWifiConfigAllow() {
|
||||||
return WifiEnterpriseRestrictionUtils.isAddWifiConfigAllowed(this);
|
return WifiEnterpriseRestrictionUtils.isAddWifiConfigAllowed(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static boolean isGuestUser(Context context) {
|
||||||
|
if (context == null) return false;
|
||||||
|
final UserManager userManager = context.getSystemService(UserManager.class);
|
||||||
|
if (userManager == null) return false;
|
||||||
|
return userManager.isGuestUser();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -18,24 +18,38 @@ package com.android.settings.wifi.addappnetworks;
|
|||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
|
||||||
import android.annotation.Nullable;
|
|
||||||
import android.app.IActivityManager;
|
|
||||||
import android.os.RemoteException;
|
|
||||||
|
|
||||||
import static org.mockito.ArgumentMatchers.any;
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
|
import static org.mockito.Mockito.spy;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
|
import android.annotation.Nullable;
|
||||||
|
import android.app.IActivityManager;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.os.RemoteException;
|
||||||
|
import android.os.UserManager;
|
||||||
|
|
||||||
|
import androidx.test.core.app.ApplicationProvider;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.mockito.Mock;
|
import org.mockito.Mock;
|
||||||
import org.mockito.MockitoAnnotations;
|
import org.mockito.Spy;
|
||||||
|
import org.mockito.junit.MockitoJUnit;
|
||||||
|
import org.mockito.junit.MockitoRule;
|
||||||
import org.robolectric.Robolectric;
|
import org.robolectric.Robolectric;
|
||||||
import org.robolectric.RobolectricTestRunner;
|
import org.robolectric.RobolectricTestRunner;
|
||||||
|
|
||||||
@RunWith(RobolectricTestRunner.class)
|
@RunWith(RobolectricTestRunner.class)
|
||||||
public class AddAppNetworksActivityTest {
|
public class AddAppNetworksActivityTest {
|
||||||
|
|
||||||
|
@Rule
|
||||||
|
public final MockitoRule mMockitoRule = MockitoJUnit.rule();
|
||||||
|
@Spy
|
||||||
|
Context mContext = ApplicationProvider.getApplicationContext();
|
||||||
|
@Mock
|
||||||
|
UserManager mUserManager;
|
||||||
@Mock
|
@Mock
|
||||||
private IActivityManager mIActivityManager;
|
private IActivityManager mIActivityManager;
|
||||||
|
|
||||||
@@ -43,10 +57,13 @@ public class AddAppNetworksActivityTest {
|
|||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
MockitoAnnotations.initMocks(this);
|
when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager);
|
||||||
|
when(mUserManager.isGuestUser()).thenReturn(false);
|
||||||
|
|
||||||
mActivity = Robolectric.buildActivity(FakeAddAppNetworksActivity.class).create().get();
|
mActivity = spy(Robolectric.buildActivity(FakeAddAppNetworksActivity.class).create().get());
|
||||||
|
when(mActivity.getApplicationContext()).thenReturn(mContext);
|
||||||
mActivity.mActivityManager = mIActivityManager;
|
mActivity.mActivityManager = mIActivityManager;
|
||||||
|
fakeCallingPackage("com.android.settings");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -84,6 +101,20 @@ public class AddAppNetworksActivityTest {
|
|||||||
assertThat(mActivity.showAddNetworksFragment()).isFalse();
|
assertThat(mActivity.showAddNetworksFragment()).isFalse();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void showAddNetworksFragment_isGuestUser_returnFalse() {
|
||||||
|
when(mUserManager.isGuestUser()).thenReturn(true);
|
||||||
|
|
||||||
|
assertThat(mActivity.showAddNetworksFragment()).isFalse();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void showAddNetworksFragment_notGuestUser_returnTrue() {
|
||||||
|
when(mUserManager.isGuestUser()).thenReturn(false);
|
||||||
|
|
||||||
|
assertThat(mActivity.showAddNetworksFragment()).isTrue();
|
||||||
|
}
|
||||||
|
|
||||||
private void fakeCallingPackage(@Nullable String packageName) {
|
private void fakeCallingPackage(@Nullable String packageName) {
|
||||||
try {
|
try {
|
||||||
when(mIActivityManager.getLaunchedFromPackage(any())).thenReturn(packageName);
|
when(mIActivityManager.getLaunchedFromPackage(any())).thenReturn(packageName);
|
||||||
|
Reference in New Issue
Block a user