[Wi-Fi] Replace WifiTracker with WifiPickerTracker in WifiSettings
WifiSettings uses WifiTracker in SettingsLib while WifiSettings2 uses WifiPickerTracker in WifiSettingsLib. 1. Remove WifiSettings. 2. Rename WifiSettings2 to WifiSettings. 3. Remove the files only used in the removed WifiSettings. (Saved networks files are not included) Bug: 152571756 Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.wifi atest WifiSettingsUiTest Change-Id: I800b434c8049121db115cff87d51e164e4529999
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2017 The Android Open Source Project
|
||||
* 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.
|
||||
@@ -15,17 +15,20 @@
|
||||
*/
|
||||
package com.android.settings.wifi;
|
||||
|
||||
import static android.net.wifi.WifiManager.WIFI_STATE_ENABLED;
|
||||
import static com.android.settings.wifi.WifiConfigUiBase2.MODE_CONNECT;
|
||||
import static com.android.settings.wifi.WifiConfigUiBase2.MODE_MODIFY;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.anyBoolean;
|
||||
import static org.mockito.ArgumentMatchers.anyInt;
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Mockito.doNothing;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
@@ -33,91 +36,58 @@ import android.app.Activity;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.res.Resources;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.Network;
|
||||
import android.net.NetworkCapabilities;
|
||||
import android.net.wifi.EAPConstants;
|
||||
import android.net.wifi.WifiConfiguration;
|
||||
import android.net.wifi.WifiInfo;
|
||||
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 android.os.Bundle;
|
||||
import android.os.PowerManager;
|
||||
import android.os.UserManager;
|
||||
import android.provider.Settings;
|
||||
import android.util.FeatureFlagUtils;
|
||||
import android.view.ContextMenu;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceManager;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.SettingsActivity;
|
||||
import com.android.settings.datausage.DataUsagePreference;
|
||||
import com.android.settings.testutils.FakeFeatureFactory;
|
||||
import com.android.settings.testutils.shadow.ShadowDataUsageUtils;
|
||||
import com.android.settings.testutils.shadow.ShadowFragment;
|
||||
import com.android.settings.widget.SwitchBar;
|
||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||
import com.android.settingslib.wifi.AccessPoint;
|
||||
import com.android.settingslib.wifi.WifiTracker;
|
||||
import com.android.settingslib.wifi.WifiTrackerFactory;
|
||||
import com.android.settingslib.wifi.LongPressWifiEntryPreference;
|
||||
import com.android.wifitrackerlib.WifiEntry;
|
||||
import com.android.wifitrackerlib.WifiPickerTracker;
|
||||
|
||||
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 org.robolectric.util.ReflectionHelpers;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import org.robolectric.shadows.ShadowToast;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
public class WifiSettingsTest {
|
||||
|
||||
private static final int NUM_NETWORKS = 4;
|
||||
private static final String FAKE_URI_STRING = "fakeuri";
|
||||
|
||||
@Mock
|
||||
private WifiTracker mWifiTracker;
|
||||
@Mock
|
||||
private PowerManager mPowerManager;
|
||||
@Mock
|
||||
private DataUsagePreference mDataUsagePreference;
|
||||
@Mock
|
||||
private RecyclerView mRecyclerView;
|
||||
@Mock
|
||||
private RecyclerView.Adapter mRecyclerViewAdapter;
|
||||
@Mock
|
||||
private View mHeaderView;
|
||||
@Mock
|
||||
private WifiManager mWifiManager;
|
||||
@Mock
|
||||
private ConnectivityManager mConnectivityManager;
|
||||
@Mock
|
||||
private Intent mActivityIntent;
|
||||
@Mock
|
||||
private SwitchBar mSwitchBar;
|
||||
@Mock
|
||||
private WifiInfo mWifiInfo;
|
||||
@Mock
|
||||
private PackageManager mPackageManager;
|
||||
private DataUsagePreference mDataUsagePreference;
|
||||
private Context mContext;
|
||||
private WifiSettings mWifiSettings;
|
||||
private FakeFeatureFactory mFakeFeatureFactory;
|
||||
private MetricsFeatureProvider mMetricsFeatureProvider;
|
||||
@Mock
|
||||
private WifiPickerTracker mMockWifiPickerTracker;
|
||||
@Mock
|
||||
private PreferenceManager mPreferenceManager;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
@@ -126,75 +96,33 @@ public class WifiSettingsTest {
|
||||
|
||||
mWifiSettings = spy(new WifiSettings());
|
||||
doReturn(mContext).when(mWifiSettings).getContext();
|
||||
doReturn(mRecyclerViewAdapter).when(mRecyclerView).getAdapter();
|
||||
doReturn(mRecyclerView).when(mWifiSettings).getListView();
|
||||
doReturn(mPreferenceManager).when(mWifiSettings).getPreferenceManager();
|
||||
doReturn(mPowerManager).when(mContext).getSystemService(PowerManager.class);
|
||||
doReturn(mHeaderView).when(mWifiSettings).setPinnedHeaderView(anyInt());
|
||||
doReturn(mWifiInfo).when(mWifiManager).getConnectionInfo();
|
||||
doReturn(mWifiManager).when(mWifiTracker).getManager();
|
||||
doReturn(mWifiManager).when(mContext).getSystemService(WifiManager.class);
|
||||
doReturn(mContext).when(mPreferenceManager).getContext();
|
||||
mWifiSettings.mAddWifiNetworkPreference = new AddWifiNetworkPreference(mContext);
|
||||
mWifiSettings.mSavedNetworksPreference = new Preference(mContext);
|
||||
mWifiSettings.mConfigureWifiSettingsPreference = new Preference(mContext);
|
||||
mWifiSettings.mWifiTracker = mWifiTracker;
|
||||
mWifiSettings.mWifiPickerTracker = mMockWifiPickerTracker;
|
||||
mWifiSettings.mWifiManager = mWifiManager;
|
||||
mWifiSettings.mConnectivityManager = mConnectivityManager;
|
||||
mFakeFeatureFactory = FakeFeatureFactory.setupForTest();
|
||||
mMetricsFeatureProvider = mFakeFeatureFactory.getMetricsFeatureProvider();
|
||||
ReflectionHelpers.setField(mWifiSettings, "mMetricsFeatureProvider",
|
||||
mMetricsFeatureProvider);
|
||||
WifiTrackerFactory.setTestingWifiTracker(mWifiTracker);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void addNetworkFragmentSendResult_onActivityResult_shouldHandleEvent() {
|
||||
final WifiSettings wifiSettings = spy(new WifiSettings());
|
||||
final WifiSettings WifiSettings = spy(new WifiSettings());
|
||||
final Intent intent = new Intent();
|
||||
doNothing().when(wifiSettings).handleAddNetworkRequest(anyInt(), any(Intent.class));
|
||||
doNothing().when(WifiSettings).handleAddNetworkRequest(anyInt(), any(Intent.class));
|
||||
|
||||
wifiSettings.onActivityResult(WifiSettings.ADD_NETWORK_REQUEST, Activity.RESULT_OK, intent);
|
||||
WifiSettings.onActivityResult(WifiSettings.ADD_NETWORK_REQUEST, Activity.RESULT_OK,
|
||||
intent);
|
||||
|
||||
verify(wifiSettings).handleAddNetworkRequest(anyInt(), any(Intent.class));
|
||||
}
|
||||
|
||||
private List<WifiConfiguration> createMockWifiConfigurations(int count) {
|
||||
final List<WifiConfiguration> mockConfigs = new ArrayList<>();
|
||||
for (int i = 0; i < count; i++) {
|
||||
mockConfigs.add(new WifiConfiguration());
|
||||
}
|
||||
return mockConfigs;
|
||||
}
|
||||
|
||||
private List<PasspointConfiguration> createMockPasspointConfigurations(int count) {
|
||||
final List<PasspointConfiguration> mockConfigs = new ArrayList<>();
|
||||
for (int i = 0; i < count; i++) {
|
||||
final HomeSp sp = new HomeSp();
|
||||
sp.setFqdn("fqdn");
|
||||
final PasspointConfiguration config = new PasspointConfiguration();
|
||||
config.setHomeSp(sp);
|
||||
Credential.SimCredential simCredential = new Credential.SimCredential();
|
||||
Credential credential = new Credential();
|
||||
credential.setRealm("test.example.com");
|
||||
simCredential.setImsi("12345*");
|
||||
simCredential.setEapType(EAPConstants.EAP_SIM);
|
||||
credential.setSimCredential(simCredential);
|
||||
config.setCredential(credential);
|
||||
mockConfigs.add(config);
|
||||
}
|
||||
return mockConfigs;
|
||||
}
|
||||
|
||||
static NetworkCapabilities makeCaptivePortalNetworkCapabilities() {
|
||||
final NetworkCapabilities capabilities = new NetworkCapabilities();
|
||||
capabilities.clearAll();
|
||||
capabilities.addTransportType(NetworkCapabilities.TRANSPORT_WIFI);
|
||||
capabilities.addCapability(NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL);
|
||||
return capabilities;
|
||||
verify(WifiSettings).handleAddNetworkRequest(anyInt(), any(Intent.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setAdditionalSettingsSummaries_hasSavedNetwork_preferenceVisible() {
|
||||
when(mWifiManager.getConfiguredNetworks())
|
||||
.thenReturn(createMockWifiConfigurations(NUM_NETWORKS));
|
||||
when(mMockWifiPickerTracker.getNumSavedNetworks()).thenReturn(NUM_NETWORKS);
|
||||
when(mMockWifiPickerTracker.getNumSavedSubscriptions()).thenReturn(0 /* count */);
|
||||
|
||||
mWifiSettings.setAdditionalSettingsSummaries();
|
||||
|
||||
@@ -207,8 +135,8 @@ public class WifiSettingsTest {
|
||||
|
||||
@Test
|
||||
public void setAdditionalSettingsSummaries_hasSavedPasspointNetwork_preferenceVisible() {
|
||||
when(mWifiManager.getPasspointConfigurations())
|
||||
.thenReturn(createMockPasspointConfigurations(NUM_NETWORKS));
|
||||
when(mMockWifiPickerTracker.getNumSavedNetworks()).thenReturn(0 /* count */);
|
||||
when(mMockWifiPickerTracker.getNumSavedSubscriptions()).thenReturn(NUM_NETWORKS);
|
||||
|
||||
mWifiSettings.setAdditionalSettingsSummaries();
|
||||
|
||||
@@ -221,10 +149,8 @@ public class WifiSettingsTest {
|
||||
|
||||
@Test
|
||||
public void setAdditionalSettingsSummaries_hasTwoKindsSavedNetwork_preferenceVisible() {
|
||||
when(mWifiManager.getConfiguredNetworks())
|
||||
.thenReturn(createMockWifiConfigurations(NUM_NETWORKS));
|
||||
when(mWifiManager.getPasspointConfigurations())
|
||||
.thenReturn(createMockPasspointConfigurations(NUM_NETWORKS));
|
||||
when(mMockWifiPickerTracker.getNumSavedNetworks()).thenReturn(NUM_NETWORKS);
|
||||
when(mMockWifiPickerTracker.getNumSavedSubscriptions()).thenReturn(NUM_NETWORKS);
|
||||
|
||||
mWifiSettings.setAdditionalSettingsSummaries();
|
||||
|
||||
@@ -237,8 +163,8 @@ public class WifiSettingsTest {
|
||||
|
||||
@Test
|
||||
public void setAdditionalSettingsSummaries_noSavedNetwork_preferenceInvisible() {
|
||||
when(mWifiManager.getConfiguredNetworks())
|
||||
.thenReturn(createMockWifiConfigurations(0 /* count */));
|
||||
when(mMockWifiPickerTracker.getNumSavedNetworks()).thenReturn(0 /* count */);
|
||||
when(mMockWifiPickerTracker.getNumSavedSubscriptions()).thenReturn(0 /* count */);
|
||||
|
||||
mWifiSettings.setAdditionalSettingsSummaries();
|
||||
|
||||
@@ -278,29 +204,21 @@ public class WifiSettingsTest {
|
||||
}
|
||||
|
||||
private void setUpForOnCreate() {
|
||||
final SettingsActivity activity = mock(SettingsActivity.class);
|
||||
when(activity.getSwitchBar()).thenReturn(mSwitchBar);
|
||||
final FragmentActivity activity = mock(FragmentActivity.class);
|
||||
when(mWifiSettings.getActivity()).thenReturn(activity);
|
||||
final Resources.Theme theme = mContext.getTheme();
|
||||
when(activity.getTheme()).thenReturn(theme);
|
||||
when(activity.getIntent()).thenReturn(mActivityIntent);
|
||||
UserManager userManager = mock(UserManager.class);
|
||||
when(activity.getSystemService(Context.USER_SERVICE))
|
||||
.thenReturn(userManager);
|
||||
|
||||
when(mWifiSettings.findPreference(WifiSettings.PREF_KEY_DATA_USAGE))
|
||||
.thenReturn(mDataUsagePreference);
|
||||
when(activity.getSystemService(Context.WIFI_SERVICE)).thenReturn(mWifiManager);
|
||||
when(activity.getSystemService(ConnectivityManager.class)).thenReturn(mConnectivityManager);
|
||||
when(activity.getPackageManager()).thenReturn(mPackageManager);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Config(shadows = {ShadowDataUsageUtils.class, ShadowFragment.class})
|
||||
public void checkDataUsagePreference_perferenceInvisibleIfWifiNotSupported() {
|
||||
if (FeatureFlagUtils.isEnabled(mContext, FeatureFlagUtils.SETTINGS_WIFITRACKER2)) {
|
||||
return;
|
||||
}
|
||||
|
||||
setUpForOnCreate();
|
||||
ShadowDataUsageUtils.IS_WIFI_SUPPORTED = false;
|
||||
|
||||
@@ -312,10 +230,6 @@ public class WifiSettingsTest {
|
||||
@Test
|
||||
@Config(shadows = {ShadowDataUsageUtils.class, ShadowFragment.class})
|
||||
public void checkDataUsagePreference_perferenceVisibleIfWifiSupported() {
|
||||
if (FeatureFlagUtils.isEnabled(mContext, FeatureFlagUtils.SETTINGS_WIFITRACKER2)) {
|
||||
return;
|
||||
}
|
||||
|
||||
setUpForOnCreate();
|
||||
ShadowDataUsageUtils.IS_WIFI_SUPPORTED = true;
|
||||
|
||||
@@ -325,28 +239,6 @@ public class WifiSettingsTest {
|
||||
verify(mDataUsagePreference).setTemplate(any(), eq(0) /*subId*/, eq(null) /*service*/);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onCreateContextMenu_shouldHaveForgetMenuForConnectedAccessPreference() {
|
||||
final FragmentActivity mockActivity = mock(FragmentActivity.class);
|
||||
when(mockActivity.getApplicationContext()).thenReturn(mContext);
|
||||
when(mWifiSettings.getActivity()).thenReturn(mockActivity);
|
||||
|
||||
final AccessPoint accessPoint = mock(AccessPoint.class);
|
||||
when(accessPoint.isConnectable()).thenReturn(false);
|
||||
when(accessPoint.isSaved()).thenReturn(true);
|
||||
when(accessPoint.isActive()).thenReturn(true);
|
||||
|
||||
final ConnectedAccessPointPreference connectedPreference =
|
||||
mWifiSettings.createConnectedAccessPointPreference(accessPoint, mContext);
|
||||
final View view = mock(View.class);
|
||||
when(view.getTag()).thenReturn(connectedPreference);
|
||||
|
||||
final ContextMenu menu = mock(ContextMenu.class);
|
||||
mWifiSettings.onCreateContextMenu(menu, view, null /* info */);
|
||||
|
||||
verify(menu).add(anyInt(), eq(WifiSettings.MENU_ID_FORGET), anyInt(), anyInt());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onCreateAdapter_hasStableIdsTrue() {
|
||||
final PreferenceScreen preferenceScreen = mock(PreferenceScreen.class);
|
||||
@@ -358,60 +250,118 @@ public class WifiSettingsTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
@Config(shadows = {ShadowDataUsageUtils.class, ShadowFragment.class})
|
||||
public void clickOnWifiNetworkWith_shouldStartCaptivePortalApp() {
|
||||
if (FeatureFlagUtils.isEnabled(mContext, FeatureFlagUtils.SETTINGS_WIFITRACKER2)) {
|
||||
return;
|
||||
}
|
||||
public void onCreateContextMenu_shouldHaveForgetAndDisconnectMenuForConnectedWifiEntry() {
|
||||
final FragmentActivity activity = mock(FragmentActivity.class);
|
||||
when(activity.getApplicationContext()).thenReturn(mContext);
|
||||
when(mWifiSettings.getActivity()).thenReturn(activity);
|
||||
|
||||
when(mWifiManager.getConfiguredNetworks()).thenReturn(createMockWifiConfigurations(
|
||||
NUM_NETWORKS));
|
||||
when(mWifiTracker.isConnected()).thenReturn(true);
|
||||
final WifiEntry wifiEntry = mock(WifiEntry.class);
|
||||
when(wifiEntry.canDisconnect()).thenReturn(true);
|
||||
when(wifiEntry.canForget()).thenReturn(true);
|
||||
when(wifiEntry.isSaved()).thenReturn(true);
|
||||
when(wifiEntry.getConnectedState()).thenReturn(WifiEntry.CONNECTED_STATE_CONNECTED);
|
||||
|
||||
final AccessPoint accessPointActive = mock(AccessPoint.class);
|
||||
when(accessPointActive.isActive()).thenReturn(true);
|
||||
when(accessPointActive.isSaved()).thenReturn(false);
|
||||
when(accessPointActive.getConfig()).thenReturn(mock(WifiConfiguration.class));
|
||||
final LongPressWifiEntryPreference connectedWifiEntryPreference =
|
||||
mWifiSettings.createLongPressWifiEntryPreference(wifiEntry);
|
||||
final View view = mock(View.class);
|
||||
when(view.getTag()).thenReturn(connectedWifiEntryPreference);
|
||||
|
||||
final AccessPoint accessPointInactive = mock(AccessPoint.class);
|
||||
when(accessPointInactive.isActive()).thenReturn(false);
|
||||
when(accessPointInactive.isSaved()).thenReturn(false);
|
||||
when(accessPointInactive.getConfig()).thenReturn(mock(WifiConfiguration.class));
|
||||
final ContextMenu menu = mock(ContextMenu.class);
|
||||
mWifiSettings.onCreateContextMenu(menu, view, null /* info */);
|
||||
|
||||
when(mWifiTracker.getAccessPoints()).thenReturn(Arrays.asList(accessPointActive,
|
||||
accessPointInactive));
|
||||
when(mWifiManager.getWifiState()).thenReturn(WIFI_STATE_ENABLED);
|
||||
when(mWifiManager.isWifiEnabled()).thenReturn(true);
|
||||
verify(menu).add(anyInt(), eq(WifiSettings.MENU_ID_FORGET), anyInt(), anyInt());
|
||||
verify(menu).add(anyInt(), eq(WifiSettings.MENU_ID_DISCONNECT), anyInt(), anyInt());
|
||||
}
|
||||
|
||||
final Network network = mock(Network.class);
|
||||
when(mWifiManager.getCurrentNetwork()).thenReturn(network);
|
||||
@Test
|
||||
public void onWifiEntriesChanged_shouldChangeNextButtonState() {
|
||||
mWifiSettings.onWifiEntriesChanged();
|
||||
|
||||
// Simulate activity creation cycle
|
||||
setUpForOnCreate();
|
||||
ShadowDataUsageUtils.IS_WIFI_SUPPORTED = true;
|
||||
mWifiSettings.onCreate(Bundle.EMPTY);
|
||||
mWifiSettings.onActivityCreated(null);
|
||||
mWifiSettings.onViewCreated(new View(mContext), new Bundle());
|
||||
mWifiSettings.onStart();
|
||||
verify(mWifiSettings).changeNextButtonState(anyBoolean());
|
||||
}
|
||||
|
||||
// Click on open network
|
||||
final Preference openWifiPref = new LongPressAccessPointPreference(accessPointInactive,
|
||||
mContext, null,
|
||||
false /* forSavedNetworks */, R.drawable.ic_wifi_signal_0,
|
||||
null);
|
||||
mWifiSettings.onPreferenceTreeClick(openWifiPref);
|
||||
@Test
|
||||
public void openSubscriptionHelpPage_shouldCallStartActivityForResult() {
|
||||
doReturn(new Intent()).when(mWifiSettings).getHelpIntent(mContext, FAKE_URI_STRING);
|
||||
doNothing().when(mWifiSettings).startActivityForResult(any(Intent.class), anyInt());
|
||||
final WifiEntry mockWifiEntry = mock(WifiEntry.class);
|
||||
when(mockWifiEntry.getHelpUriString()).thenReturn(FAKE_URI_STRING);
|
||||
|
||||
// Ensure connect() was called, and fake success.
|
||||
ArgumentCaptor<WifiManager.ActionListener> wifiCallbackCaptor = ArgumentCaptor.forClass(
|
||||
WifiManager.ActionListener.class);
|
||||
verify(mWifiManager).connect(any(WifiConfiguration.class), wifiCallbackCaptor.capture());
|
||||
wifiCallbackCaptor.getValue().onSuccess();
|
||||
mWifiSettings.openSubscriptionHelpPage(mockWifiEntry);
|
||||
|
||||
// Simulate capability change
|
||||
mWifiSettings.mCaptivePortalNetworkCallback.onCapabilitiesChanged(network,
|
||||
makeCaptivePortalNetworkCapabilities());
|
||||
verify(mWifiSettings, times(1)).startActivityForResult(any(), anyInt());
|
||||
}
|
||||
|
||||
// Ensure CP was called
|
||||
verify(mConnectivityManager).startCaptivePortalApp(eq(network));
|
||||
@Test
|
||||
public void onNumSavedNetworksChanged_isFinishing_ShouldNotCrash() {
|
||||
final FragmentActivity activity = mock(FragmentActivity.class);
|
||||
when(activity.isFinishing()).thenReturn(true);
|
||||
when(mWifiSettings.getActivity()).thenReturn(activity);
|
||||
when(mWifiSettings.getContext()).thenReturn(null);
|
||||
|
||||
mWifiSettings.onNumSavedNetworksChanged();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onNumSavedSubscriptionsChanged_isFinishing_ShouldNotCrash() {
|
||||
final FragmentActivity activity = mock(FragmentActivity.class);
|
||||
when(activity.isFinishing()).thenReturn(true);
|
||||
when(mWifiSettings.getActivity()).thenReturn(activity);
|
||||
when(mWifiSettings.getContext()).thenReturn(null);
|
||||
|
||||
mWifiSettings.onNumSavedSubscriptionsChanged();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onSubmit_modeModifyNoConfig_toastErrorMessage() {
|
||||
WifiDialog2 dialog = createWifiDialog2(MODE_MODIFY, null /* config */);
|
||||
|
||||
mWifiSettings.onSubmit(dialog);
|
||||
|
||||
assertThat(ShadowToast.getTextOfLatestToast()).isEqualTo(
|
||||
mContext.getString(R.string.wifi_failed_save_message));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onSubmit_modeModifyHasConfig_saveWifiManager() {
|
||||
final WifiConfiguration config = mock(WifiConfiguration.class);
|
||||
WifiDialog2 dialog = createWifiDialog2(MODE_MODIFY, config);
|
||||
|
||||
mWifiSettings.onSubmit(dialog);
|
||||
|
||||
verify(mWifiManager).save(eq(config), any());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onSubmit_modeConnectNoConfig_connectWifiEntry() {
|
||||
WifiDialog2 dialog = createWifiDialog2(MODE_CONNECT, null /* config */);
|
||||
final WifiEntry wifiEntry = dialog.getWifiEntry();
|
||||
|
||||
mWifiSettings.onAttach(mContext);
|
||||
mWifiSettings.onSubmit(dialog);
|
||||
|
||||
verify(mWifiSettings).connect(wifiEntry, false /* editIfNoConfig */,
|
||||
false /* fullScreenEdit*/);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onSubmit_modeConnectHasConfig_connectWifiManager() {
|
||||
final WifiConfiguration config = mock(WifiConfiguration.class);
|
||||
WifiDialog2 dialog = createWifiDialog2(MODE_CONNECT, config);
|
||||
|
||||
mWifiSettings.onSubmit(dialog);
|
||||
|
||||
verify(mWifiManager).connect(eq(config), any(WifiManager.ActionListener.class));
|
||||
}
|
||||
|
||||
private WifiDialog2 createWifiDialog2(int mode, WifiConfiguration config) {
|
||||
final WifiEntry wifiEntry = mock(WifiEntry.class);
|
||||
when(wifiEntry.canConnect()).thenReturn(true);
|
||||
final WifiConfigController2 controller = mock(WifiConfigController2.class);
|
||||
when(controller.getConfig()).thenReturn(config);
|
||||
final WifiDialog2 wifiDialog2 = spy(WifiDialog2.createModal(mContext, null /* listener */,
|
||||
wifiEntry, mode));
|
||||
when(wifiDialog2.getController()).thenReturn(controller);
|
||||
return wifiDialog2;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user