Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ea9b715e authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Restrict ProviderModelSlice for guest user" into tm-qpr-dev

parents 2d0e1dc7 88037e4f
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.telephony.SubscriptionManager;
import android.util.EventLog;
import android.util.Log;
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.
        //  Sixth section: Add the See All item.
        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;
        final NetworkProviderWorker worker = getWorker();
        if (worker != null) {
@@ -297,6 +304,8 @@ public class ProviderModelSlice extends WifiSlice {

    @Override
    public Class getBackgroundWorkerClass() {
        if (isGuestUser(mContext)) return null;

        return NetworkProviderWorker.class;
    }

+31 −0
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ import android.graphics.drawable.ColorDrawable;
import android.net.ConnectivityManager;
import android.net.Uri;
import android.net.wifi.WifiManager;
import android.os.UserManager;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;

@@ -86,6 +87,8 @@ public class ProviderModelSliceTest {
    private ListBuilder mListBuilder;
    private MockNetworkProviderWorker mMockNetworkProviderWorker;

    @Mock
    private UserManager mUserManager;
    @Mock
    private SubscriptionManager mSubscriptionManager;
    @Mock
@@ -122,6 +125,8 @@ public class ProviderModelSliceTest {
                        any(), any(), any(), any(), any(), anyLong(), anyLong(), any()))
                .thenReturn(mWifiPickerTracker);

        when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager);
        when(mUserManager.isGuestUser()).thenReturn(false);
        when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager);
        when(mContext.getSystemService(ConnectivityManager.class)).thenReturn(mConnectivityManager);
        when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager);
@@ -162,6 +167,17 @@ public class ProviderModelSliceTest {
                .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
    @UiThreadTest
    public void getSlice_noWifiAndHasCarrierNoData_oneCarrier() {
@@ -319,6 +335,21 @@ public class ProviderModelSliceTest {
        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
    public void providerModelSlice_hasCorrectUri() {
        assertThat(mMockProviderModelSlice.getUri()).isEqualTo(PROVIDER_MODEL_SLICE_URI);