Merge "Enforce wifi config lockdown on details page." into oc-mr1-dev am: 10adff1163

am: e7cf5e6221

Change-Id: I356a58cadd3e19e61d9585f08e47c9d4cdcf4318
This commit is contained in:
Charles He
2017-09-06 16:12:08 +00:00
committed by android-build-merger
3 changed files with 13 additions and 3 deletions

View File

@@ -1130,7 +1130,7 @@ public class WifiSettings extends RestrictedSettingsFragment
* @param config The WiFi config. * @param config The WiFi config.
* @return true if the config is not editable through Settings. * @return true if the config is not editable through Settings.
*/ */
static boolean isEditabilityLockedDown(Context context, WifiConfiguration config) { public static boolean isEditabilityLockedDown(Context context, WifiConfiguration config) {
return !canModifyNetwork(context, config); return !canModifyNetwork(context, config);
} }

View File

@@ -19,6 +19,8 @@ import static android.net.NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL;
import static android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED; import static android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED;
import static android.net.NetworkCapabilities.TRANSPORT_WIFI; import static android.net.NetworkCapabilities.TRANSPORT_WIFI;
import static com.android.settings.wifi.WifiSettings.isEditabilityLockedDown;
import android.app.Fragment; import android.app.Fragment;
import android.content.BroadcastReceiver; import android.content.BroadcastReceiver;
import android.content.Context; import android.content.Context;
@@ -479,7 +481,9 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
* Returns whether the network represented by this preference can be forgotten. * Returns whether the network represented by this preference can be forgotten.
*/ */
private boolean canForgetNetwork() { private boolean canForgetNetwork() {
return mWifiInfo != null && mWifiInfo.isEphemeral() || mWifiConfig != null; // TODO(65396674): create test for the locked down scenario
return (mWifiInfo != null && mWifiInfo.isEphemeral())
|| (mWifiConfig != null && !isEditabilityLockedDown(mContext, mWifiConfig));
} }
/** /**

View File

@@ -18,12 +18,15 @@ package com.android.settings.wifi.details;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.ArgumentMatchers.nullable; import static org.mockito.ArgumentMatchers.nullable;
import static org.mockito.Matchers.any; import static org.mockito.Matchers.any;
import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.inOrder; import static org.mockito.Mockito.inOrder;
import static org.mockito.Mockito.never; import static org.mockito.Mockito.never;
import static org.mockito.Mockito.reset; import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times; import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
@@ -138,7 +141,7 @@ public class WifiDetailPreferenceControllerTest {
@Captor private ArgumentCaptor<View.OnClickListener> mForgetClickListener; @Captor private ArgumentCaptor<View.OnClickListener> mForgetClickListener;
@Captor private ArgumentCaptor<Preference> mIpv6AddressCaptor; @Captor private ArgumentCaptor<Preference> mIpv6AddressCaptor;
private Context mContext = RuntimeEnvironment.application; private Context mContext;
private Lifecycle mLifecycle; private Lifecycle mLifecycle;
private LinkProperties mLinkProperties; private LinkProperties mLinkProperties;
private WifiDetailPreferenceController mController; private WifiDetailPreferenceController mController;
@@ -199,6 +202,7 @@ public class WifiDetailPreferenceControllerTest {
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mContext = spy(RuntimeEnvironment.application);
mLifecycle = new Lifecycle(); mLifecycle = new Lifecycle();
when(mockAccessPoint.getConfig()).thenReturn(mockWifiConfig); when(mockAccessPoint.getConfig()).thenReturn(mockWifiConfig);
@@ -233,6 +237,8 @@ public class WifiDetailPreferenceControllerTest {
when(mockHeaderController.setSummary(anyString())).thenReturn(mockHeaderController); when(mockHeaderController.setSummary(anyString())).thenReturn(mockHeaderController);
when(mockIconInjector.getIcon(anyInt())).thenReturn(new ColorDrawable()); when(mockIconInjector.getIcon(anyInt())).thenReturn(new ColorDrawable());
doReturn(null).when(mContext).getSystemService(eq(Context.DEVICE_POLICY_SERVICE));
setupMockedPreferenceScreen(); setupMockedPreferenceScreen();
mController = newWifiDetailPreferenceController(); mController = newWifiDetailPreferenceController();
} }