Loading src/com/android/settings/wifi/WifiScanModeActivity.java +21 −1 Original line number Diff line number Diff line Loading @@ -18,11 +18,15 @@ package com.android.settings.wifi; import android.app.Dialog; import android.app.settings.SettingsEnums; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.net.wifi.WifiManager; import android.os.Bundle; import android.os.UserManager; import android.text.TextUtils; import android.util.EventLog; import android.util.Log; import android.view.WindowManager; import androidx.annotation.VisibleForTesting; Loading @@ -39,6 +43,7 @@ import com.android.settingslib.wifi.WifiPermissionChecker; * This activity requests users permission to allow scanning even when Wi-Fi is turned off */ public class WifiScanModeActivity extends FragmentActivity { private static final String TAG = "WifiScanModeActivity"; private DialogFragment mDialog; @VisibleForTesting String mApp; Loading Loading @@ -78,7 +83,15 @@ public class WifiScanModeActivity extends FragmentActivity { mApp = Utils.getApplicationLabel(getApplicationContext(), packageName).toString(); } private void createDialog() { @VisibleForTesting void createDialog() { if (isGuestUser(getApplicationContext())) { Log.e(TAG, "Guest user is not allowed to configure Wi-Fi Scan Mode!"); EventLog.writeEvent(0x534e4554, "235601169", -1 /* UID */, "User is a guest"); finish(); return; } if (mDialog == null) { mDialog = AlertDialogFragment.newInstance(mApp); mDialog.show(getSupportFragmentManager(), "dialog"); Loading Loading @@ -169,4 +182,11 @@ public class WifiScanModeActivity extends FragmentActivity { ((WifiScanModeActivity) getActivity()).doNegativeClick(); } } 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/wifi/WifiScanModeActivityTest.java +33 −0 Original line number Diff line number Diff line Loading @@ -18,11 +18,17 @@ package com.android.settings.wifi; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.content.Context; import android.os.UserManager; import android.text.TextUtils; import androidx.test.core.app.ApplicationProvider; import com.android.settings.testutils.shadow.ShadowUtils; import com.android.settingslib.wifi.WifiPermissionChecker; Loading @@ -32,6 +38,7 @@ import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.Spy; import org.mockito.junit.MockitoJUnit; import org.mockito.junit.MockitoRule; import org.robolectric.Robolectric; Loading @@ -47,6 +54,10 @@ public class WifiScanModeActivityTest { @Rule public final MockitoRule mMockitoRule = MockitoJUnit.rule(); @Spy Context mContext = ApplicationProvider.getApplicationContext(); @Mock UserManager mUserManager; @Mock WifiPermissionChecker mWifiPermissionChecker; Loading @@ -54,7 +65,11 @@ public class WifiScanModeActivityTest { @Before public void setUp() { when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager); when(mUserManager.isGuestUser()).thenReturn(false); mActivity = spy(Robolectric.setupActivity(WifiScanModeActivity.class)); when(mActivity.getApplicationContext()).thenReturn(mContext); mActivity.mWifiPermissionChecker = mWifiPermissionChecker; } Loading Loading @@ -87,4 +102,22 @@ public class WifiScanModeActivityTest { assertThat(mActivity.mApp).isEqualTo(APP_LABEL); } @Test public void createDialog_isNotGuestUser_shouldNotFinishDialog() { when(mUserManager.isGuestUser()).thenReturn(false); mActivity.createDialog(); verify(mActivity, never()).finish(); } @Test public void createDialog_isGuestUser_shouldFinishDialog() { when(mUserManager.isGuestUser()).thenReturn(true); mActivity.createDialog(); verify(mActivity).finish(); } } Loading
src/com/android/settings/wifi/WifiScanModeActivity.java +21 −1 Original line number Diff line number Diff line Loading @@ -18,11 +18,15 @@ package com.android.settings.wifi; import android.app.Dialog; import android.app.settings.SettingsEnums; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.net.wifi.WifiManager; import android.os.Bundle; import android.os.UserManager; import android.text.TextUtils; import android.util.EventLog; import android.util.Log; import android.view.WindowManager; import androidx.annotation.VisibleForTesting; Loading @@ -39,6 +43,7 @@ import com.android.settingslib.wifi.WifiPermissionChecker; * This activity requests users permission to allow scanning even when Wi-Fi is turned off */ public class WifiScanModeActivity extends FragmentActivity { private static final String TAG = "WifiScanModeActivity"; private DialogFragment mDialog; @VisibleForTesting String mApp; Loading Loading @@ -78,7 +83,15 @@ public class WifiScanModeActivity extends FragmentActivity { mApp = Utils.getApplicationLabel(getApplicationContext(), packageName).toString(); } private void createDialog() { @VisibleForTesting void createDialog() { if (isGuestUser(getApplicationContext())) { Log.e(TAG, "Guest user is not allowed to configure Wi-Fi Scan Mode!"); EventLog.writeEvent(0x534e4554, "235601169", -1 /* UID */, "User is a guest"); finish(); return; } if (mDialog == null) { mDialog = AlertDialogFragment.newInstance(mApp); mDialog.show(getSupportFragmentManager(), "dialog"); Loading Loading @@ -169,4 +182,11 @@ public class WifiScanModeActivity extends FragmentActivity { ((WifiScanModeActivity) getActivity()).doNegativeClick(); } } 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/wifi/WifiScanModeActivityTest.java +33 −0 Original line number Diff line number Diff line Loading @@ -18,11 +18,17 @@ package com.android.settings.wifi; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.content.Context; import android.os.UserManager; import android.text.TextUtils; import androidx.test.core.app.ApplicationProvider; import com.android.settings.testutils.shadow.ShadowUtils; import com.android.settingslib.wifi.WifiPermissionChecker; Loading @@ -32,6 +38,7 @@ import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.Spy; import org.mockito.junit.MockitoJUnit; import org.mockito.junit.MockitoRule; import org.robolectric.Robolectric; Loading @@ -47,6 +54,10 @@ public class WifiScanModeActivityTest { @Rule public final MockitoRule mMockitoRule = MockitoJUnit.rule(); @Spy Context mContext = ApplicationProvider.getApplicationContext(); @Mock UserManager mUserManager; @Mock WifiPermissionChecker mWifiPermissionChecker; Loading @@ -54,7 +65,11 @@ public class WifiScanModeActivityTest { @Before public void setUp() { when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager); when(mUserManager.isGuestUser()).thenReturn(false); mActivity = spy(Robolectric.setupActivity(WifiScanModeActivity.class)); when(mActivity.getApplicationContext()).thenReturn(mContext); mActivity.mWifiPermissionChecker = mWifiPermissionChecker; } Loading Loading @@ -87,4 +102,22 @@ public class WifiScanModeActivityTest { assertThat(mActivity.mApp).isEqualTo(APP_LABEL); } @Test public void createDialog_isNotGuestUser_shouldNotFinishDialog() { when(mUserManager.isGuestUser()).thenReturn(false); mActivity.createDialog(); verify(mActivity, never()).finish(); } @Test public void createDialog_isGuestUser_shouldFinishDialog() { when(mUserManager.isGuestUser()).thenReturn(true); mActivity.createDialog(); verify(mActivity).finish(); } }