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

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.TRANSPORT_WIFI;
import static com.android.settings.wifi.WifiSettings.isEditabilityLockedDown;
import android.app.Fragment;
import android.content.BroadcastReceiver;
import android.content.Context;
@@ -479,7 +481,9 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
* Returns whether the network represented by this preference can be forgotten.
*/
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 org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.ArgumentMatchers.nullable;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.inOrder;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -138,7 +141,7 @@ public class WifiDetailPreferenceControllerTest {
@Captor private ArgumentCaptor<View.OnClickListener> mForgetClickListener;
@Captor private ArgumentCaptor<Preference> mIpv6AddressCaptor;
private Context mContext = RuntimeEnvironment.application;
private Context mContext;
private Lifecycle mLifecycle;
private LinkProperties mLinkProperties;
private WifiDetailPreferenceController mController;
@@ -199,6 +202,7 @@ public class WifiDetailPreferenceControllerTest {
public void setUp() {
MockitoAnnotations.initMocks(this);
mContext = spy(RuntimeEnvironment.application);
mLifecycle = new Lifecycle();
when(mockAccessPoint.getConfig()).thenReturn(mockWifiConfig);
@@ -233,6 +237,8 @@ public class WifiDetailPreferenceControllerTest {
when(mockHeaderController.setSummary(anyString())).thenReturn(mockHeaderController);
when(mockIconInjector.getIcon(anyInt())).thenReturn(new ColorDrawable());
doReturn(null).when(mContext).getSystemService(eq(Context.DEVICE_POLICY_SERVICE));
setupMockedPreferenceScreen();
mController = newWifiDetailPreferenceController();
}