Snap for 8750964 from ea9b715e78 to tm-qpr1-release

Change-Id: I2fe5aed4cfe003954e0bf7eb5eec131cb6830a8b
This commit is contained in:
Android Build Coastguard Worker
2022-06-22 01:25:39 +00:00
4 changed files with 95 additions and 8 deletions

View File

@@ -34,6 +34,7 @@ import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.net.Uri; import android.net.Uri;
import android.telephony.SubscriptionManager; import android.telephony.SubscriptionManager;
import android.util.EventLog;
import android.util.Log; import android.util.Log;
import android.view.WindowManager.LayoutParams; import android.view.WindowManager.LayoutParams;
@@ -103,6 +104,12 @@ public class ProviderModelSlice extends WifiSlice {
// Fifth section: Add the Wi-Fi items which are not connected. // Fifth section: Add the Wi-Fi items which are not connected.
// Sixth section: Add the See All item. // Sixth section: Add the See All item.
final ListBuilder listBuilder = mHelper.createListBuilder(getUri()); final ListBuilder listBuilder = mHelper.createListBuilder(getUri());
if (isGuestUser(mContext)) {
Log.e(TAG, "Guest user is not allowed to configure Internet!");
EventLog.writeEvent(0x534e4554, "227470877", -1 /* UID */, "User is a guest");
return listBuilder.build();
}
int maxListSize = 0; int maxListSize = 0;
final NetworkProviderWorker worker = getWorker(); final NetworkProviderWorker worker = getWorker();
if (worker != null) { if (worker != null) {
@@ -297,6 +304,8 @@ public class ProviderModelSlice extends WifiSlice {
@Override @Override
public Class getBackgroundWorkerClass() { public Class getBackgroundWorkerClass() {
if (isGuestUser(mContext)) return null;
return NetworkProviderWorker.class; return NetworkProviderWorker.class;
} }

View File

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

View File

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

View File

@@ -42,6 +42,7 @@ import android.graphics.drawable.ColorDrawable;
import android.net.ConnectivityManager; import android.net.ConnectivityManager;
import android.net.Uri; import android.net.Uri;
import android.net.wifi.WifiManager; import android.net.wifi.WifiManager;
import android.os.UserManager;
import android.telephony.SubscriptionManager; import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager; import android.telephony.TelephonyManager;
@@ -86,6 +87,8 @@ public class ProviderModelSliceTest {
private ListBuilder mListBuilder; private ListBuilder mListBuilder;
private MockNetworkProviderWorker mMockNetworkProviderWorker; private MockNetworkProviderWorker mMockNetworkProviderWorker;
@Mock
private UserManager mUserManager;
@Mock @Mock
private SubscriptionManager mSubscriptionManager; private SubscriptionManager mSubscriptionManager;
@Mock @Mock
@@ -122,6 +125,8 @@ public class ProviderModelSliceTest {
any(), any(), any(), any(), any(), anyLong(), anyLong(), any())) any(), any(), any(), any(), any(), anyLong(), anyLong(), any()))
.thenReturn(mWifiPickerTracker); .thenReturn(mWifiPickerTracker);
when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager);
when(mUserManager.isGuestUser()).thenReturn(false);
when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager); when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager);
when(mContext.getSystemService(ConnectivityManager.class)).thenReturn(mConnectivityManager); when(mContext.getSystemService(ConnectivityManager.class)).thenReturn(mConnectivityManager);
when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager); when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager);
@@ -162,6 +167,17 @@ public class ProviderModelSliceTest {
.isEqualTo(Intent.FLAG_RECEIVER_FOREGROUND); .isEqualTo(Intent.FLAG_RECEIVER_FOREGROUND);
} }
@Test
@UiThreadTest
public void getSlice_isGuestUser_shouldNotAddRow() {
when(mUserManager.isGuestUser()).thenReturn(true);
final Slice slice = mMockProviderModelSlice.getSlice();
assertThat(slice).isNotNull();
verify(mListBuilder, never()).addRow(any());
}
@Test @Test
@UiThreadTest @UiThreadTest
public void getSlice_noWifiAndHasCarrierNoData_oneCarrier() { public void getSlice_noWifiAndHasCarrierNoData_oneCarrier() {
@@ -319,6 +335,21 @@ public class ProviderModelSliceTest {
assertThat(mMockProviderModelSlice.hasSeeAllRow()).isTrue(); assertThat(mMockProviderModelSlice.hasSeeAllRow()).isTrue();
} }
@Test
public void getBackgroundWorkerClass_isGuestUser_returnNull() {
when(mUserManager.isGuestUser()).thenReturn(true);
assertThat(mMockProviderModelSlice.getBackgroundWorkerClass()).isNull();
}
@Test
public void getBackgroundWorkerClass_notGuestUser_returnWorkerClass() {
when(mUserManager.isGuestUser()).thenReturn(false);
assertThat(mMockProviderModelSlice.getBackgroundWorkerClass())
.isEqualTo(NetworkProviderWorker.class);
}
@Test @Test
public void providerModelSlice_hasCorrectUri() { public void providerModelSlice_hasCorrectUri() {
assertThat(mMockProviderModelSlice.getUri()).isEqualTo(PROVIDER_MODEL_SLICE_URI); assertThat(mMockProviderModelSlice.getUri()).isEqualTo(PROVIDER_MODEL_SLICE_URI);