[Wi-Fi] Create WifiNetworkDetailsFragment related version 2 files for WifiTracker2 development

Create below version 2 files for WifiTracker2 development, we can
check the feature flag only a few times and easily remove version 1
files in the future.

    src/com/android/settings/wifi/details2/
    src/com/android/settings/wifi/savedaccesspoints2/
    tests/robotests/src/com/android/settings/wifi/details2/
    tests/robotests/src/com/android/settings/wifi/savedaccesspoints2/

Bug: 143326832
Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.wifi.details2
      make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.wifi.savedaccesspoints2

Change-Id: I4d2caf1ce313871605252395764b02747240f217
This commit is contained in:
Arc Wang
2019-11-04 17:03:15 +08:00
parent b4a6245d8d
commit 75dc89b122
25 changed files with 4704 additions and 38 deletions

View File

@@ -0,0 +1,96 @@
/*
* Copyright (C) 2019 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.settings.wifi.details2;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import android.content.Context;
import android.net.wifi.WifiConfiguration;
import androidx.preference.DropDownPreference;
import com.android.settings.R;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
@RunWith(RobolectricTestRunner.class)
public class WifiMeteredPreferenceController2Test {
private static final int METERED_OVERRIDE_NONE = 0;
private static final int METERED_OVERRIDE_METERED = 1;
private static final int METERED_OVERRIDE_NOT_METERED = 2;
@Mock
private WifiConfiguration mWifiConfiguration;
private WifiMeteredPreferenceController2 mPreferenceController;
private Context mContext;
private DropDownPreference mDropDownPreference;
@Before
public void setUp() {
mContext = RuntimeEnvironment.application;
mPreferenceController = spy(
new WifiMeteredPreferenceController2(mContext, mWifiConfiguration));
mDropDownPreference = new DropDownPreference(mContext);
mDropDownPreference.setEntries(R.array.wifi_metered_entries);
mDropDownPreference.setEntryValues(R.array.wifi_metered_values);
}
@Test
public void testUpdateState_wifiMetered_setCorrectValue() {
doReturn(METERED_OVERRIDE_METERED).when(mPreferenceController).getMeteredOverride();
mPreferenceController.updateState(mDropDownPreference);
assertThat(mDropDownPreference.getEntry()).isEqualTo("Treat as metered");
}
@Test
public void testUpdateState_wifiNotMetered_setCorrectValue() {
doReturn(METERED_OVERRIDE_NOT_METERED).when(mPreferenceController).getMeteredOverride();
mPreferenceController.updateState(mDropDownPreference);
assertThat(mDropDownPreference.getEntry()).isEqualTo("Treat as unmetered");
}
@Test
public void testUpdateState_wifiAuto_setCorrectValue() {
doReturn(METERED_OVERRIDE_NONE).when(mPreferenceController).getMeteredOverride();
mPreferenceController.updateState(mDropDownPreference);
assertThat(mDropDownPreference.getEntry()).isEqualTo("Detect automatically");
}
@Test
public void testController_resilientToNullConfig() {
mPreferenceController = spy(new WifiMeteredPreferenceController2(mContext, null));
mPreferenceController.getMeteredOverride();
mPreferenceController.onPreferenceChange(mDropDownPreference, 1);
}
}

View File

@@ -0,0 +1,128 @@
/*
* Copyright (C) 2019 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.settings.wifi.details2;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import android.content.Context;
import android.net.wifi.WifiConfiguration;
import androidx.preference.DropDownPreference;
import com.android.settings.R;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
@RunWith(RobolectricTestRunner.class)
public class WifiPrivacyPreferenceController2Test {
private static final int PRIVACY_RANDOMIZED = WifiConfiguration.RANDOMIZATION_PERSISTENT;
private static final int PRIVACY_TRUSTED = WifiConfiguration.RANDOMIZATION_NONE;
@Mock
private WifiConfiguration mWifiConfiguration;
private WifiPrivacyPreferenceController2 mPreferenceController;
private Context mContext;
private DropDownPreference mDropDownPreference;
private String[] mPerferenceStrings;
@Before
public void setUp() {
mContext = RuntimeEnvironment.application;
WifiPrivacyPreferenceController2 preferenceController =
new WifiPrivacyPreferenceController2(mContext);
preferenceController.setWifiConfiguration(mWifiConfiguration);
mPreferenceController = spy(preferenceController);
mDropDownPreference = new DropDownPreference(mContext);
mDropDownPreference.setEntries(R.array.wifi_privacy_entries);
mDropDownPreference.setEntryValues(R.array.wifi_privacy_values);
mPerferenceStrings = mContext.getResources().getStringArray(R.array.wifi_privacy_entries);
}
@Test
public void testUpdateState_wifiPrivacy_setCorrectValue() {
doReturn(PRIVACY_TRUSTED).when(mPreferenceController).getRandomizationValue();
mPreferenceController.updateState(mDropDownPreference);
int prefValue = mPreferenceController.translateMacRandomizedValueToPrefValue(
PRIVACY_TRUSTED);
assertThat(mDropDownPreference.getEntry()).isEqualTo(mPerferenceStrings[prefValue]);
}
@Test
public void testUpdateState_wifiNotMetered_setCorrectValue() {
doReturn(PRIVACY_RANDOMIZED).when(mPreferenceController).getRandomizationValue();
mPreferenceController.updateState(mDropDownPreference);
int prefValue = mPreferenceController.translateMacRandomizedValueToPrefValue(
PRIVACY_RANDOMIZED);
assertThat(mDropDownPreference.getEntry()).isEqualTo(mPerferenceStrings[prefValue]);
}
@Test
public void testController_resilientToNullConfig() {
mPreferenceController = spy(new WifiPrivacyPreferenceController2(mContext));
mPreferenceController.getRandomizationValue();
mPreferenceController.onPreferenceChange(mDropDownPreference, "1");
}
@Test
public void testUpdateState_isNotEphemeralNetwork_shouldBeSelectable() {
mPreferenceController.setIsEphemeral(false);
mPreferenceController.updateState(mDropDownPreference);
assertThat(mDropDownPreference.isSelectable()).isTrue();
}
@Test
public void testUpdateState_isEphemeralNetwork_shouldNotSelectable() {
mPreferenceController.setIsEphemeral(true);
mPreferenceController.updateState(mDropDownPreference);
assertThat(mDropDownPreference.isSelectable()).isFalse();
}
@Test
public void testUpdateState_isNotPasspointNetwork_shouldBeSelectable() {
mPreferenceController.setIsPasspoint(false);
mPreferenceController.updateState(mDropDownPreference);
assertThat(mDropDownPreference.isSelectable()).isTrue();
}
@Test
public void testUpdateState_isPasspointNetwork_shouldNotSelectable() {
mPreferenceController.setIsPasspoint(true);
mPreferenceController.updateState(mDropDownPreference);
assertThat(mDropDownPreference.isSelectable()).isFalse();
}
}