From 59e6bcbfdf9872ee9d7220ef4c6664e41a8fb8fd Mon Sep 17 00:00:00 2001 From: Arc Wang Date: Fri, 15 May 2020 10:31:21 +0800 Subject: [PATCH] [Wi-Fi] Remove all files in com.android.settings.wifi.savedaccesspoints Developers should developer the files of com.android.settings.wifi.savedaccesspoints2 with WifiTrackerLib objects. Bug: 152571756 Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.wifi.savedaccesspoints2 Change-Id: I6c8548fb7b3c9403ad300da0024e93e0e0cb8607 --- res/xml/wifi_display_saved_access_points.xml | 33 ----- .../core/gateway/SettingsGateway.java | 2 - .../settings/wifi/WifiPickerActivity.java | 12 +- ...SavedAccessPointsPreferenceController.java | 109 -------------- .../SavedAccessPointsWifiSettings.java | 137 ------------------ .../SavedNetworkComparator.java | 40 ----- ...ribedAccessPointsPreferenceController.java | 46 ------ ...dAccessPointsPreferenceControllerTest.java | 123 ---------------- .../SavedAccessPointsWifiSettingsTest.java | 68 --------- ...dAccessPointsPreferenceControllerTest.java | 124 ---------------- 10 files changed, 2 insertions(+), 692 deletions(-) delete mode 100644 res/xml/wifi_display_saved_access_points.xml delete mode 100644 src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsPreferenceController.java delete mode 100644 src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsWifiSettings.java delete mode 100644 src/com/android/settings/wifi/savedaccesspoints/SavedNetworkComparator.java delete mode 100644 src/com/android/settings/wifi/savedaccesspoints/SubscribedAccessPointsPreferenceController.java delete mode 100644 tests/robotests/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsPreferenceControllerTest.java delete mode 100644 tests/robotests/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsWifiSettingsTest.java delete mode 100644 tests/robotests/src/com/android/settings/wifi/savedaccesspoints/SubscribedAccessPointsPreferenceControllerTest.java diff --git a/res/xml/wifi_display_saved_access_points.xml b/res/xml/wifi_display_saved_access_points.xml deleted file mode 100644 index b3a8d550ca1..00000000000 --- a/res/xml/wifi_display_saved_access_points.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - diff --git a/src/com/android/settings/core/gateway/SettingsGateway.java b/src/com/android/settings/core/gateway/SettingsGateway.java index 458c6f68a98..4f8c5a10103 100644 --- a/src/com/android/settings/core/gateway/SettingsGateway.java +++ b/src/com/android/settings/core/gateway/SettingsGateway.java @@ -153,7 +153,6 @@ import com.android.settings.wifi.WifiSettings; import com.android.settings.wifi.calling.WifiCallingDisclaimerFragment; import com.android.settings.wifi.calling.WifiCallingSettings; import com.android.settings.wifi.p2p.WifiP2pSettings; -import com.android.settings.wifi.savedaccesspoints.SavedAccessPointsWifiSettings; import com.android.settings.wifi.savedaccesspoints2.SavedAccessPointsWifiSettings2; import com.android.settings.wifi.tether.WifiTetherSettings; @@ -168,7 +167,6 @@ public class SettingsGateway { CreateShortcut.class.getName(), WifiSettings.class.getName(), ConfigureWifiSettings.class.getName(), - SavedAccessPointsWifiSettings.class.getName(), SavedAccessPointsWifiSettings2.class.getName(), AllInOneTetherSettings.class.getName(), TetherSettings.class.getName(), diff --git a/src/com/android/settings/wifi/WifiPickerActivity.java b/src/com/android/settings/wifi/WifiPickerActivity.java index adfc7ec4b6f..d56e7e5f6fe 100644 --- a/src/com/android/settings/wifi/WifiPickerActivity.java +++ b/src/com/android/settings/wifi/WifiPickerActivity.java @@ -16,7 +16,6 @@ package com.android.settings.wifi; import android.content.Intent; -import android.util.FeatureFlagUtils; import androidx.preference.PreferenceFragmentCompat; @@ -24,7 +23,6 @@ import com.android.settings.ButtonBarHandler; import com.android.settings.R; import com.android.settings.SettingsActivity; import com.android.settings.wifi.p2p.WifiP2pSettings; -import com.android.settings.wifi.savedaccesspoints.SavedAccessPointsWifiSettings; import com.android.settings.wifi.savedaccesspoints2.SavedAccessPointsWifiSettings2; public class WifiPickerActivity extends SettingsActivity implements ButtonBarHandler { @@ -41,14 +39,8 @@ public class WifiPickerActivity extends SettingsActivity implements ButtonBarHan @Override protected boolean isValidFragment(String fragmentName) { - boolean isSavedAccessPointsWifiSettings; - if (FeatureFlagUtils.isEnabled(this, FeatureFlagUtils.SETTINGS_WIFITRACKER2)) { - isSavedAccessPointsWifiSettings = - SavedAccessPointsWifiSettings2.class.getName().equals(fragmentName); - } else { - isSavedAccessPointsWifiSettings = - SavedAccessPointsWifiSettings.class.getName().equals(fragmentName); - } + final boolean isSavedAccessPointsWifiSettings = + SavedAccessPointsWifiSettings2.class.getName().equals(fragmentName); if (WifiSettings.class.getName().equals(fragmentName) || WifiP2pSettings.class.getName().equals(fragmentName) diff --git a/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsPreferenceController.java b/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsPreferenceController.java deleted file mode 100644 index 397fb8bd283..00000000000 --- a/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsPreferenceController.java +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Copyright (C) 2018 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.savedaccesspoints; - -import android.content.Context; -import android.net.wifi.WifiManager; - -import androidx.annotation.VisibleForTesting; -import androidx.preference.Preference; -import androidx.preference.PreferenceGroup; -import androidx.preference.PreferenceScreen; - -import com.android.settings.core.BasePreferenceController; -import com.android.settingslib.wifi.AccessPoint; -import com.android.settingslib.wifi.AccessPointPreference; -import com.android.settingslib.wifi.AccessPointPreference.UserBadgeCache; -import com.android.settingslib.wifi.WifiSavedConfigUtils; - -import java.util.List; -import java.util.stream.Collectors; - -/** - * Controller that manages a PreferenceGroup, which contains a list of saved access points. - * - * Migrating from Wi-Fi SettingsLib to to WifiTrackerLib, this object will be removed in the near - * future, please develop in - * {@link com.android.settings.wifi.savedaccesspoints2.SavedAccessPointsPreferenceController2}. - */ -public class SavedAccessPointsPreferenceController extends BasePreferenceController implements - Preference.OnPreferenceClickListener { - - protected final WifiManager mWifiManager; - private final UserBadgeCache mUserBadgeCache; - private PreferenceGroup mPreferenceGroup; - private SavedAccessPointsWifiSettings mHost; - @VisibleForTesting - List mAccessPoints; - - public SavedAccessPointsPreferenceController(Context context, String preferenceKey) { - super(context, preferenceKey); - mUserBadgeCache = new AccessPointPreference.UserBadgeCache(context.getPackageManager()); - mWifiManager = context.getSystemService(WifiManager.class); - } - - public SavedAccessPointsPreferenceController setHost(SavedAccessPointsWifiSettings host) { - mHost = host; - return this; - } - - @Override - public int getAvailabilityStatus() { - refreshSavedAccessPoints(); - return mAccessPoints.size() > 0 ? AVAILABLE : CONDITIONALLY_UNAVAILABLE; - } - - @Override - public void displayPreference(PreferenceScreen screen) { - mPreferenceGroup = screen.findPreference(getPreferenceKey()); - refreshSavedAccessPoints(); - updatePreference(); - super.displayPreference(screen); - } - - @Override - public boolean onPreferenceClick(Preference preference) { - if (mHost != null) { - final Preference preferenceInGroup = - mPreferenceGroup.findPreference(preference.getKey()); - mHost.showWifiPage((AccessPointPreference) preferenceInGroup); - } - return false; - } - - protected void refreshSavedAccessPoints() { - mAccessPoints = WifiSavedConfigUtils.getAllConfigs(mContext, mWifiManager).stream() - .filter(accessPoint -> !accessPoint.isPasspointConfig()) - .sorted(SavedNetworkComparator.INSTANCE) - .collect(Collectors.toList()); - } - - private void updatePreference() { - mPreferenceGroup.removeAll(); - for (AccessPoint accessPoint : mAccessPoints) { - final String key = accessPoint.getKey(); - - final AccessPointPreference preference = new AccessPointPreference(accessPoint, - mContext, mUserBadgeCache, true /* forSavedNetworks */); - preference.setKey(key); - preference.setIcon(null); - preference.setOnPreferenceClickListener(this); - - mPreferenceGroup.addPreference(preference); - } - } -} diff --git a/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsWifiSettings.java b/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsWifiSettings.java deleted file mode 100644 index 262dce66fd2..00000000000 --- a/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsWifiSettings.java +++ /dev/null @@ -1,137 +0,0 @@ -/* - * Copyright (C) 2014 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.savedaccesspoints; - -import android.annotation.Nullable; -import android.app.settings.SettingsEnums; -import android.content.Context; -import android.os.Bundle; - -import androidx.annotation.VisibleForTesting; -import androidx.preference.PreferenceScreen; - -import com.android.settings.R; -import com.android.settings.core.SubSettingLauncher; -import com.android.settings.dashboard.DashboardFragment; -import com.android.settings.wifi.WifiSettings; -import com.android.settings.wifi.details.WifiNetworkDetailsFragment; -import com.android.settingslib.wifi.AccessPoint; -import com.android.settingslib.wifi.AccessPointPreference; - -/** - * UI to manage saved networks/access points. - * - * Migrating from Wi-Fi SettingsLib to to WifiTrackerLib, this object will be removed in the near - * future, please develop in - * {@link com.android.settings.wifi.savedaccesspoints2.SavedAccessPointsWifiSettings2}. - */ -public class SavedAccessPointsWifiSettings extends DashboardFragment { - - private static final String TAG = "SavedAccessPoints"; - - @VisibleForTesting - Bundle mAccessPointSavedState; - private AccessPoint mSelectedAccessPoint; - - // Instance state key - private static final String SAVE_DIALOG_ACCESS_POINT_STATE = "wifi_ap_state"; - - @Override - public int getMetricsCategory() { - return SettingsEnums.WIFI_SAVED_ACCESS_POINTS; - } - - @Override - protected int getPreferenceScreenResId() { - return R.xml.wifi_display_saved_access_points; - } - - @Override - protected String getLogTag() { - return TAG; - } - - @Override - public void onAttach(Context context) { - super.onAttach(context); - use(SavedAccessPointsPreferenceController.class) - .setHost(this); - use(SubscribedAccessPointsPreferenceController.class) - .setHost(this); - } - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - if (savedInstanceState != null) { - if (savedInstanceState.containsKey(SAVE_DIALOG_ACCESS_POINT_STATE)) { - mAccessPointSavedState = - savedInstanceState.getBundle(SAVE_DIALOG_ACCESS_POINT_STATE); - } else { - mAccessPointSavedState = null; - } - } - } - - @Override - public void onStart() { - super.onStart(); - if (mAccessPointSavedState != null) { - final PreferenceScreen screen = getPreferenceScreen(); - use(SavedAccessPointsPreferenceController.class).displayPreference(screen); - use(SubscribedAccessPointsPreferenceController.class).displayPreference(screen); - } - } - - public void showWifiPage(@Nullable AccessPointPreference accessPoint) { - removeDialog(WifiSettings.WIFI_DIALOG_ID); - - if (accessPoint != null) { - // Save the access point and edit mode - mSelectedAccessPoint = accessPoint.getAccessPoint(); - } else { - // No access point is selected. Clear saved state. - mSelectedAccessPoint = null; - mAccessPointSavedState = null; - } - - if (mSelectedAccessPoint == null) { - mSelectedAccessPoint = new AccessPoint(getActivity(), mAccessPointSavedState); - } - final Bundle savedState = new Bundle(); - mSelectedAccessPoint.saveWifiState(savedState); - - new SubSettingLauncher(getContext()) - .setTitleText(mSelectedAccessPoint.getTitle()) - .setDestination(WifiNetworkDetailsFragment.class.getName()) - .setArguments(savedState) - .setSourceMetricsCategory(getMetricsCategory()) - .launch(); - } - - @Override - public void onSaveInstanceState(Bundle outState) { - super.onSaveInstanceState(outState); - // If the dialog is showing (indicated by the existence of mSelectedAccessPoint), then we - // save its state. - if (mSelectedAccessPoint != null) { - mAccessPointSavedState = new Bundle(); - mSelectedAccessPoint.saveWifiState(mAccessPointSavedState); - outState.putBundle(SAVE_DIALOG_ACCESS_POINT_STATE, mAccessPointSavedState); - } - } -} diff --git a/src/com/android/settings/wifi/savedaccesspoints/SavedNetworkComparator.java b/src/com/android/settings/wifi/savedaccesspoints/SavedNetworkComparator.java deleted file mode 100644 index e66ef230839..00000000000 --- a/src/com/android/settings/wifi/savedaccesspoints/SavedNetworkComparator.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (C) 2018 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.savedaccesspoints; - -import android.icu.text.Collator; - -import com.android.settingslib.wifi.AccessPoint; - -import java.util.Comparator; - -public final class SavedNetworkComparator { - public static final Comparator INSTANCE = - new Comparator() { - final Collator mCollator = Collator.getInstance(); - - @Override - public int compare(AccessPoint ap1, AccessPoint ap2) { - return mCollator.compare( - nullToEmpty(ap1.getTitle()), nullToEmpty(ap2.getTitle())); - } - - private String nullToEmpty(String string) { - return (string == null) ? "" : string; - } - }; -} diff --git a/src/com/android/settings/wifi/savedaccesspoints/SubscribedAccessPointsPreferenceController.java b/src/com/android/settings/wifi/savedaccesspoints/SubscribedAccessPointsPreferenceController.java deleted file mode 100644 index 23ba7c48cd3..00000000000 --- a/src/com/android/settings/wifi/savedaccesspoints/SubscribedAccessPointsPreferenceController.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * 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.savedaccesspoints; - -import android.content.Context; - -import com.android.settingslib.wifi.WifiSavedConfigUtils; - -import java.util.stream.Collectors; - -/** - * Controller that manages a PreferenceGroup, which contains a list of subscribed access points. - * - * Migrating from Wi-Fi SettingsLib to to WifiTrackerLib, this object will be removed in the near - * future, please develop in - * {@link com.android.settings.wifi.savedaccesspoints2.SubscribedAccessPointsPreferenceController2}. - */ -public class SubscribedAccessPointsPreferenceController extends - SavedAccessPointsPreferenceController { - - public SubscribedAccessPointsPreferenceController(Context context, String preferenceKey) { - super(context, preferenceKey); - } - - @Override - protected void refreshSavedAccessPoints() { - mAccessPoints = WifiSavedConfigUtils.getAllConfigs(mContext, mWifiManager).stream() - .filter(accessPoint -> accessPoint.isPasspointConfig()) - .sorted(SavedNetworkComparator.INSTANCE) - .collect(Collectors.toList()); - } -} diff --git a/tests/robotests/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsPreferenceControllerTest.java deleted file mode 100644 index 483e2595fb9..00000000000 --- a/tests/robotests/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsPreferenceControllerTest.java +++ /dev/null @@ -1,123 +0,0 @@ -/* - * Copyright (C) 2018 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.savedaccesspoints; - -import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE; - -import static com.google.common.truth.Truth.assertThat; - -import static org.mockito.ArgumentMatchers.any; -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.net.wifi.WifiConfiguration; -import android.net.wifi.WifiManager; - -import androidx.preference.PreferenceCategory; -import androidx.preference.PreferenceScreen; - -import com.android.settings.testutils.shadow.ShadowAccessPoint; -import com.android.settings.testutils.shadow.ShadowWifiManager; -import com.android.settingslib.wifi.AccessPointPreference; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.ArgumentCaptor; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; -import org.robolectric.RobolectricTestRunner; -import org.robolectric.RuntimeEnvironment; -import org.robolectric.annotation.Config; - -import java.util.ArrayList; - -@RunWith(RobolectricTestRunner.class) -@Config(shadows = {ShadowWifiManager.class}) -public class SavedAccessPointsPreferenceControllerTest { - - @Mock - private PreferenceScreen mPreferenceScreen; - @Mock - private PreferenceCategory mPreferenceCategory; - - private Context mContext; - private WifiManager mWifiManager; - private SavedAccessPointsWifiSettings mSettings; - private SavedAccessPointsPreferenceController mController; - - @Before - public void setUp() { - MockitoAnnotations.initMocks(this); - mContext = RuntimeEnvironment.application; - mWifiManager = mContext.getSystemService(WifiManager.class); - mSettings = spy(new SavedAccessPointsWifiSettings()); - mController = spy(new SavedAccessPointsPreferenceController(mContext, "test_key")); - mController.setHost(mSettings); - - when(mPreferenceScreen.findPreference(mController.getPreferenceKey())) - .thenReturn(mPreferenceCategory); - when(mPreferenceCategory.getContext()).thenReturn(mContext); - } - - @Test - public void getAvailability_noSavedAccessPoint_shouldNotAvailable() { - mController.mAccessPoints = new ArrayList<>(); - - assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE); - } - - @Test - public void getAvailability_shouldRefreshSavedAccessPoints() { - mController.getAvailabilityStatus(); - - verify(mController).refreshSavedAccessPoints(); - } - - @Test - @Config(shadows = ShadowAccessPoint.class) - public void displayPreference_oneAccessPoint_shouldListNonSubscribedAPs() { - final WifiConfiguration config = new WifiConfiguration(); - config.SSID = "SSID"; - config.BSSID = "BSSID"; - config.networkId = 2; - mWifiManager.addNetwork(config); - - final ArgumentCaptor captor = - ArgumentCaptor.forClass(AccessPointPreference.class); - mController.displayPreference(mPreferenceScreen); - - verify(mPreferenceCategory).addPreference(captor.capture()); - - final AccessPointPreference pref = captor.getValue(); - assertThat(pref.getTitle()).isEqualTo(config.SSID); - } - - @Test - @Config(shadows = ShadowAccessPoint.class) - public void displayPreference_onePasspoint_shouldNotListSubscribedAPs() { - mWifiManager.addOrUpdatePasspointConfiguration( - SubscribedAccessPointsPreferenceControllerTest.createMockPasspointConfiguration()); - - mController.displayPreference(mPreferenceScreen); - - verify(mPreferenceCategory, never()).addPreference(any(AccessPointPreference.class)); - } -} diff --git a/tests/robotests/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsWifiSettingsTest.java b/tests/robotests/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsWifiSettingsTest.java deleted file mode 100644 index 923f05ebf07..00000000000 --- a/tests/robotests/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsWifiSettingsTest.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (C) 2017 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.savedaccesspoints; - -import static com.google.common.truth.Truth.assertThat; -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.spy; - -import com.android.internal.logging.nano.MetricsProto.MetricsEvent; -import com.android.settings.R; -import com.android.settingslib.core.AbstractPreferenceController; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; -import org.robolectric.RobolectricTestRunner; - -@RunWith(RobolectricTestRunner.class) -public class SavedAccessPointsWifiSettingsTest { - - @Mock - private SubscribedAccessPointsPreferenceController mSubscribedApController; - @Mock - private SavedAccessPointsPreferenceController mSavedApController; - - private TestFragment mSettings; - - @Before - public void setUp() { - MockitoAnnotations.initMocks(this); - mSettings = spy(new TestFragment()); - - doReturn(mSubscribedApController).when(mSettings) - .use(SubscribedAccessPointsPreferenceController.class); - doReturn(mSavedApController).when(mSettings) - .use(SavedAccessPointsPreferenceController.class); - } - - @Test - public void verifyConstants() { - assertThat(mSettings.getMetricsCategory()).isEqualTo(MetricsEvent.WIFI_SAVED_ACCESS_POINTS); - assertThat(mSettings.getPreferenceScreenResId()) - .isEqualTo(R.xml.wifi_display_saved_access_points); - } - - public static class TestFragment extends SavedAccessPointsWifiSettings { - - public T use(Class clazz) { - return super.use(clazz); - } - } -} diff --git a/tests/robotests/src/com/android/settings/wifi/savedaccesspoints/SubscribedAccessPointsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/savedaccesspoints/SubscribedAccessPointsPreferenceControllerTest.java deleted file mode 100644 index 74f94e92664..00000000000 --- a/tests/robotests/src/com/android/settings/wifi/savedaccesspoints/SubscribedAccessPointsPreferenceControllerTest.java +++ /dev/null @@ -1,124 +0,0 @@ -/* - * 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.savedaccesspoints; - -import static com.google.common.truth.Truth.assertThat; - -import static org.mockito.ArgumentMatchers.any; -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.net.wifi.EAPConstants; -import android.net.wifi.WifiConfiguration; -import android.net.wifi.WifiManager; -import android.net.wifi.hotspot2.PasspointConfiguration; -import android.net.wifi.hotspot2.pps.Credential; -import android.net.wifi.hotspot2.pps.HomeSp; - -import androidx.preference.PreferenceCategory; -import androidx.preference.PreferenceScreen; - -import com.android.settings.testutils.shadow.ShadowAccessPoint; -import com.android.settings.testutils.shadow.ShadowWifiManager; -import com.android.settingslib.wifi.AccessPointPreference; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.ArgumentCaptor; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; -import org.robolectric.RobolectricTestRunner; -import org.robolectric.RuntimeEnvironment; -import org.robolectric.annotation.Config; - -@RunWith(RobolectricTestRunner.class) -@Config(shadows = {ShadowWifiManager.class}) -public class SubscribedAccessPointsPreferenceControllerTest { - - @Mock - private PreferenceScreen mPreferenceScreen; - @Mock - private PreferenceCategory mPreferenceCategory; - - private Context mContext; - private WifiManager mWifiManager; - private SavedAccessPointsWifiSettings mSettings; - private SubscribedAccessPointsPreferenceController mController; - - @Before - public void setUp() { - MockitoAnnotations.initMocks(this); - mContext = RuntimeEnvironment.application; - mWifiManager = mContext.getSystemService(WifiManager.class); - mSettings = spy(new SavedAccessPointsWifiSettings()); - mController = spy(new SubscribedAccessPointsPreferenceController(mContext, "test_key")); - mController.setHost(mSettings); - - when(mPreferenceScreen.findPreference(mController.getPreferenceKey())) - .thenReturn(mPreferenceCategory); - when(mPreferenceCategory.getContext()).thenReturn(mContext); - } - - @Test - @Config(shadows = ShadowAccessPoint.class) - public void displayPreference_oneAccessPoint_shouldNotListNonSubscribedAPs() { - final WifiConfiguration config = new WifiConfiguration(); - config.SSID = "SSID"; - config.BSSID = "BSSID"; - config.networkId = 2; - mWifiManager.addNetwork(config); - - mController.displayPreference(mPreferenceScreen); - - verify(mPreferenceCategory, never()).addPreference(any(AccessPointPreference.class)); - } - - @Test - @Config(shadows = ShadowAccessPoint.class) - public void displayPreference_onePasspoint_shouldListSubscribedAPs() { - mWifiManager.addOrUpdatePasspointConfiguration(createMockPasspointConfiguration()); - - mController.displayPreference(mPreferenceScreen); - - final ArgumentCaptor captor = - ArgumentCaptor.forClass(AccessPointPreference.class); - verify(mPreferenceCategory).addPreference(captor.capture()); - - final AccessPointPreference pref = captor.getValue(); - assertThat(pref.getTitle()).isEqualTo("TESTPASSPOINT"); - } - - public static PasspointConfiguration createMockPasspointConfiguration() { - final PasspointConfiguration config = new PasspointConfiguration(); - final HomeSp homeSp = new HomeSp(); - homeSp.setFqdn("FQDN"); - homeSp.setFriendlyName("TESTPASSPOINT"); - config.setHomeSp(homeSp); - final Credential.SimCredential simCredential = new Credential.SimCredential(); - final Credential credential = new Credential(); - credential.setRealm("test.example.com"); - simCredential.setImsi("12345*"); - simCredential.setEapType(EAPConstants.EAP_SIM); - credential.setSimCredential(simCredential); - config.setCredential(credential); - return config; - } -}