Loading src/com/android/settings/datausage/DataUsageList.java +19 −4 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ import android.os.UserManager; import android.provider.Settings; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.util.EventLog; import android.util.Log; import android.util.SparseArray; import android.view.View; Loading Loading @@ -131,8 +132,14 @@ public class DataUsageList extends DataUsageBaseFragment @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); final Activity activity = getActivity(); if (isGuestUser(getContext())) { Log.e(TAG, "This setting isn't available for guest user"); EventLog.writeEvent(0x534e4554, "262741858", -1 /* UID */, "Guest user"); finish(); return; } final Activity activity = getActivity(); if (!isBandwidthControlEnabled()) { Log.w(TAG, "No bandwidth control; leaving"); activity.finish(); Loading Loading @@ -234,9 +241,10 @@ public class DataUsageList extends DataUsageBaseFragment @Override public void onDestroy() { if (mUidDetailProvider != null) { mUidDetailProvider.clearCache(); mUidDetailProvider = null; } super.onDestroy(); } Loading Loading @@ -614,4 +622,11 @@ public class DataUsageList extends DataUsageBaseFragment } } }; 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(); } } tests/robotests/src/com/android/settings/datausage/DataUsageListTest.java +43 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; Loading @@ -31,6 +32,7 @@ import android.content.Intent; import android.net.ConnectivityManager; import android.net.NetworkTemplate; import android.os.Bundle; import android.os.UserManager; import android.provider.Settings; import android.view.LayoutInflater; import android.view.View; Loading Loading @@ -60,6 +62,9 @@ import org.mockito.MockitoAnnotations; import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; import org.robolectric.android.controller.ActivityController; import org.robolectric.annotation.Config; import org.robolectric.annotation.Implementation; import org.robolectric.annotation.Implements; import org.robolectric.util.ReflectionHelpers; import java.util.ArrayList; Loading @@ -74,6 +79,8 @@ public class DataUsageListTest { private TemplatePreference.NetworkServices mNetworkServices; @Mock private LoaderManager mLoaderManager; @Mock private UserManager mUserManager; private Activity mActivity; private DataUsageList mDataUsageList; Loading @@ -90,6 +97,8 @@ public class DataUsageListTest { mDataUsageList.mDataStateListener = mMobileDataEnabledListener; doReturn(mActivity).when(mDataUsageList).getContext(); doReturn(mUserManager).when(mActivity).getSystemService(UserManager.class); doReturn(false).when(mUserManager).isGuestUser(); ReflectionHelpers.setField(mDataUsageList, "mDataStateListener", mMobileDataEnabledListener); ReflectionHelpers.setField(mDataUsageList, "services", mNetworkServices); Loading @@ -97,6 +106,27 @@ public class DataUsageListTest { mDataUsageList.mLoadingViewController = mock(LoadingViewController.class); } @Test @Config(shadows = ShadowDataUsageBaseFragment.class) public void onCreate_isNotGuestUser_shouldNotFinish() { doReturn(false).when(mUserManager).isGuestUser(); doNothing().when(mDataUsageList).processArgument(); mDataUsageList.onCreate(null); verify(mDataUsageList, never()).finish(); } @Test @Config(shadows = ShadowDataUsageBaseFragment.class) public void onCreate_isGuestUser_shouldFinish() { doReturn(true).when(mUserManager).isGuestUser(); mDataUsageList.onCreate(null); verify(mDataUsageList).finish(); } @Test public void resume_shouldListenDataStateChange() { ReflectionHelpers.setField( Loading Loading @@ -241,4 +271,17 @@ public class DataUsageListTest { final Spinner spinner = header.findViewById(R.id.filter_spinner); return spinner; } @Implements(DataUsageBaseFragment.class) public static class ShadowDataUsageBaseFragment { @Implementation public void onCreate(Bundle icicle) { // do nothing } @Implementation protected boolean isBandwidthControlEnabled() { return true; } } } Loading
src/com/android/settings/datausage/DataUsageList.java +19 −4 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ import android.os.UserManager; import android.provider.Settings; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.util.EventLog; import android.util.Log; import android.util.SparseArray; import android.view.View; Loading Loading @@ -131,8 +132,14 @@ public class DataUsageList extends DataUsageBaseFragment @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); final Activity activity = getActivity(); if (isGuestUser(getContext())) { Log.e(TAG, "This setting isn't available for guest user"); EventLog.writeEvent(0x534e4554, "262741858", -1 /* UID */, "Guest user"); finish(); return; } final Activity activity = getActivity(); if (!isBandwidthControlEnabled()) { Log.w(TAG, "No bandwidth control; leaving"); activity.finish(); Loading Loading @@ -234,9 +241,10 @@ public class DataUsageList extends DataUsageBaseFragment @Override public void onDestroy() { if (mUidDetailProvider != null) { mUidDetailProvider.clearCache(); mUidDetailProvider = null; } super.onDestroy(); } Loading Loading @@ -614,4 +622,11 @@ public class DataUsageList extends DataUsageBaseFragment } } }; 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(); } }
tests/robotests/src/com/android/settings/datausage/DataUsageListTest.java +43 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; Loading @@ -31,6 +32,7 @@ import android.content.Intent; import android.net.ConnectivityManager; import android.net.NetworkTemplate; import android.os.Bundle; import android.os.UserManager; import android.provider.Settings; import android.view.LayoutInflater; import android.view.View; Loading Loading @@ -60,6 +62,9 @@ import org.mockito.MockitoAnnotations; import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; import org.robolectric.android.controller.ActivityController; import org.robolectric.annotation.Config; import org.robolectric.annotation.Implementation; import org.robolectric.annotation.Implements; import org.robolectric.util.ReflectionHelpers; import java.util.ArrayList; Loading @@ -74,6 +79,8 @@ public class DataUsageListTest { private TemplatePreference.NetworkServices mNetworkServices; @Mock private LoaderManager mLoaderManager; @Mock private UserManager mUserManager; private Activity mActivity; private DataUsageList mDataUsageList; Loading @@ -90,6 +97,8 @@ public class DataUsageListTest { mDataUsageList.mDataStateListener = mMobileDataEnabledListener; doReturn(mActivity).when(mDataUsageList).getContext(); doReturn(mUserManager).when(mActivity).getSystemService(UserManager.class); doReturn(false).when(mUserManager).isGuestUser(); ReflectionHelpers.setField(mDataUsageList, "mDataStateListener", mMobileDataEnabledListener); ReflectionHelpers.setField(mDataUsageList, "services", mNetworkServices); Loading @@ -97,6 +106,27 @@ public class DataUsageListTest { mDataUsageList.mLoadingViewController = mock(LoadingViewController.class); } @Test @Config(shadows = ShadowDataUsageBaseFragment.class) public void onCreate_isNotGuestUser_shouldNotFinish() { doReturn(false).when(mUserManager).isGuestUser(); doNothing().when(mDataUsageList).processArgument(); mDataUsageList.onCreate(null); verify(mDataUsageList, never()).finish(); } @Test @Config(shadows = ShadowDataUsageBaseFragment.class) public void onCreate_isGuestUser_shouldFinish() { doReturn(true).when(mUserManager).isGuestUser(); mDataUsageList.onCreate(null); verify(mDataUsageList).finish(); } @Test public void resume_shouldListenDataStateChange() { ReflectionHelpers.setField( Loading Loading @@ -241,4 +271,17 @@ public class DataUsageListTest { final Spinner spinner = header.findViewById(R.id.filter_spinner); return spinner; } @Implements(DataUsageBaseFragment.class) public static class ShadowDataUsageBaseFragment { @Implementation public void onCreate(Bundle icicle) { // do nothing } @Implementation protected boolean isBandwidthControlEnabled() { return true; } } }