diff --git a/res/values/strings.xml b/res/values/strings.xml
index 645b2b3cced..0475597c927 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -2188,8 +2188,6 @@
@string/bluetooth_connected_summary
Connecting\u2026
-
- @string/bluetooth_device_context_disconnect
Failed to connect to network
diff --git a/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java b/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java
index 70567ac3c71..106aef9d8b3 100644
--- a/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java
+++ b/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java
@@ -456,7 +456,8 @@ public class WifiDetailPreferenceController2 extends AbstractPreferenceControlle
}
}
- private void updateNetworkInfo() {
+ @VisibleForTesting
+ void updateNetworkInfo() {
if (mWifiEntry.getConnectedState() == WifiEntry.CONNECTED_STATE_CONNECTED) {
mNetwork = mWifiManager.getCurrentNetwork();
mLinkProperties = mConnectivityManager.getLinkProperties(mNetwork);
@@ -632,7 +633,7 @@ public class WifiDetailPreferenceController2 extends AbstractPreferenceControlle
}
private void refreshMacAddress() {
- String macAddress = getMacAddress();
+ String macAddress = mWifiEntry.getMacAddress();
if (macAddress == null) {
mMacAddressPref.setVisible(false);
return;
@@ -649,21 +650,6 @@ public class WifiDetailPreferenceController2 extends AbstractPreferenceControlle
refreshMacTitle();
}
- private String getMacAddress() {
- if (mWifiEntry.isSaved() && mWifiEntry.getPrivacy() == WifiEntry.PRIVACY_RANDOMIZED_MAC) {
- return mWifiEntry.getMacAddress();
- }
-
- // return device MAC address
- final String[] macAddresses = mWifiManager.getFactoryMacAddresses();
- if (macAddresses != null && macAddresses.length > 0) {
- return macAddresses[0];
- }
-
- Log.e(TAG, "Can't get device MAC address!");
- return null;
- }
-
private void updatePreference(Preference pref, String detailText) {
if (!TextUtils.isEmpty(detailText)) {
pref.setSummary(detailText);
@@ -969,6 +955,7 @@ public class WifiDetailPreferenceController2 extends AbstractPreferenceControlle
*/
@Override
public void onUpdated() {
+ updateNetworkInfo();
refreshPage();
// Refresh the Preferences in fragment.
diff --git a/tests/robotests/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2Test.java b/tests/robotests/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2Test.java
index be5e1af39b8..70b232a5020 100644
--- a/tests/robotests/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2Test.java
+++ b/tests/robotests/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2Test.java
@@ -46,7 +46,6 @@ import android.net.ConnectivityManager.NetworkCallback;
import android.net.IpPrefix;
import android.net.LinkAddress;
import android.net.LinkProperties;
-import android.net.MacAddress;
import android.net.Network;
import android.net.NetworkCapabilities;
import android.net.NetworkInfo;
@@ -81,6 +80,7 @@ import com.android.settingslib.widget.ActionButtonsPreference;
import com.android.settingslib.widget.LayoutPreference;
import com.android.wifitrackerlib.NetworkDetailsTracker;
import com.android.wifitrackerlib.WifiEntry;
+import com.android.wifitrackerlib.WifiEntry.ConnectCallback;
import org.junit.Before;
import org.junit.Ignore;
@@ -109,8 +109,6 @@ import java.util.Arrays;
import java.util.stream.Collectors;
// TODO(b/143326832): Should add test cases for connect button.
-// TODO(b/143326832): WifiEntry is not mature, should remove @Ignore after it's constructed.
-@Ignore
@RunWith(RobolectricTestRunner.class)
@Config(shadows = {ShadowDevicePolicyManager.class, ShadowEntityHeaderController.class})
public class WifiDetailPreferenceController2Test {
@@ -123,8 +121,7 @@ public class WifiDetailPreferenceController2Test {
private static final String MAC_ADDRESS = "01:23:45:67:89:ab";
private static final String RANDOMIZED_MAC_ADDRESS = "RANDOMIZED_MAC_ADDRESS";
private static final String FACTORY_MAC_ADDRESS = "FACTORY_MAC_ADDRESS";
- // TODO(b/143326832): Add WifiEntry#getSecurityString
- //private static final String SECURITY = "None";
+ private static final String SECURITY = "None";
private static final String FQDN = "fqdn";
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
@@ -156,8 +153,6 @@ public class WifiDetailPreferenceController2Test {
private WifiDetailPreferenceController2.IconInjector mMockIconInjector;
@Mock
private WifiDetailPreferenceController2.Clock mMockClock;
- @Mock
- private MacAddress mMockMacAddress;
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
private EntityHeaderController mMockHeaderController;
@@ -270,9 +265,9 @@ public class WifiDetailPreferenceController2Test {
when(mContext.getPackageManager()).thenReturn(mMockPackageManager);
when(mMockWifiEntry.getLevel()).thenReturn(LEVEL);
- // TODO(b/143326832): Add WifiEntry#getSecurityString
- //when(mMockWifiEntry.getSecurityString(false)).thenReturn(SECURITY);
+ when(mMockWifiEntry.getSecurityString(false /* concise */)).thenReturn(SECURITY);
when(mMockWifiEntry.getTitle()).thenReturn(SSID);
+ when(mMockWifiEntry.getWifiConfiguration()).thenReturn(mMockWifiConfig);
when(mMockConnectivityManager.getNetworkInfo(any(Network.class)))
.thenReturn(mMockNetworkInfo);
doNothing().when(mMockConnectivityManager).registerNetworkCallback(
@@ -393,7 +388,6 @@ public class WifiDetailPreferenceController2Test {
assertThat(mController.isAvailable()).isTrue();
}
- /* TODO(b/143326832): Add WifiEntry#getSecurityString
@Test
public void securityPreference_stringShouldBeSet() {
setUpForConnectedNetwork();
@@ -401,7 +395,6 @@ public class WifiDetailPreferenceController2Test {
verify(mMockSecurityPref).setSummary(SECURITY);
}
- */
@Test
public void latestWifiInfo_shouldBeFetchedInDisplayPreferenceForConnectedNetwork() {
@@ -541,6 +534,7 @@ public class WifiDetailPreferenceController2Test {
updateLinkProperties(lp);
}
+ @Ignore
@Test
public void entityHeader_shouldShowShortRemainingTime() {
// Expires in 1h, 2min, 15sec
@@ -557,6 +551,7 @@ public class WifiDetailPreferenceController2Test {
inOrder.verify(mMockHeaderController).setSecondSummary((String) null);
}
+ @Ignore
@Test
public void entityHeader_shouldShowExpiryDate() {
// Expires in 49h, 2min, 15sec
@@ -724,77 +719,68 @@ public class WifiDetailPreferenceController2Test {
verify(mMockRxLinkSpeedPref, never()).setSummary(any(String.class));
}
- /* TODO(b/143326832): Support Passpoint test cases while WifiTracker2 supports it.
@Test
- public void ssidPref_shouldHaveDetailTextSetForPasspointR1() {
+ public void ssidPref_isSubscription_show() {
setUpForConnectedNetwork();
- when(mMockAccessPoint.isPasspoint()).thenReturn(true);
- when(mMockAccessPoint.isOsuProvider()).thenReturn(false);
+ when(mMockWifiEntry.isSubscription()).thenReturn(true);
displayAndResume();
- verify(mMockSsidPref, times(1)).setSummary(SSID);
- verify(mMockSsidPref, times(1)).setVisible(true);
+ verify(mMockSsidPref).setSummary(SSID);
+ verify(mMockSsidPref).setVisible(true);
}
@Test
- public void ssidPref_shouldHaveDetailTextSetForPasspointR2() {
+ public void ssidPref_notSubscription_hide() {
setUpForConnectedNetwork();
- when(mMockAccessPoint.isPasspoint()).thenReturn(false);
- when(mMockAccessPoint.isOsuProvider()).thenReturn(true);
-
- displayAndResume();
-
- verify(mMockSsidPref, times(1)).setSummary(SSID);
- verify(mMockSsidPref, times(1)).setVisible(true);
- }
-
- @Test
- public void ssidPref_shouldNotShowIfNotPasspoint() {
- setUpForConnectedNetwork();
- when(mMockAccessPoint.isPasspoint()).thenReturn(false);
- when(mMockAccessPoint.isOsuProvider()).thenReturn(false);
+ when(mMockWifiEntry.isSubscription()).thenReturn(false);
displayAndResume();
+ verify(mMockSsidPref, never()).setSummary(SSID);
verify(mMockSsidPref).setVisible(false);
}
- */
@Test
public void macAddressPref_shouldVisibleForConnectedNetwork() {
setUpForConnectedNetwork();
+ when(mMockWifiEntry.isSaved()).thenReturn(true);
+ when(mMockWifiEntry.getPrivacy()).thenReturn(WifiEntry.PRIVACY_DEVICE_MAC);
+ when(mMockWifiEntry.getMacAddress()).thenReturn(MAC_ADDRESS);
displayAndResume();
verify(mMockMacAddressPref).setVisible(true);
verify(mMockMacAddressPref).setSummary(MAC_ADDRESS);
+ verify(mMockMacAddressPref).setTitle(R.string.wifi_advanced_device_mac_address_title);
}
@Test
public void macAddressPref_shouldVisibleAsRandomizedForDisconnectedNetwork() {
setUpForDisconnectedNetwork();
- mMockWifiConfig.macRandomizationSetting = WifiConfiguration.RANDOMIZATION_PERSISTENT;
- when(mMockWifiConfig.getRandomizedMacAddress()).thenReturn(mMockMacAddress);
- when(mMockMacAddress.toString()).thenReturn(RANDOMIZED_MAC_ADDRESS);
+ when(mMockWifiEntry.isSaved()).thenReturn(true);
+ when(mMockWifiEntry.getPrivacy()).thenReturn(WifiEntry.PRIVACY_RANDOMIZED_MAC);
+ when(mMockWifiEntry.getMacAddress()).thenReturn(RANDOMIZED_MAC_ADDRESS);
displayAndResume();
verify(mMockMacAddressPref).setVisible(true);
verify(mMockMacAddressPref).setSummary(RANDOMIZED_MAC_ADDRESS);
+ verify(mMockMacAddressPref).setTitle(R.string.wifi_advanced_randomized_mac_address_title);
}
@Test
public void macAddressPref_shouldVisibleAsFactoryForDisconnectedNetwork() {
setUpForDisconnectedNetwork();
- mMockWifiConfig.macRandomizationSetting = WifiConfiguration.RANDOMIZATION_NONE;
- when(mMockWifiManager.getFactoryMacAddresses())
- .thenReturn(new String[]{FACTORY_MAC_ADDRESS});
+ when(mMockWifiEntry.isSaved()).thenReturn(true);
+ when(mMockWifiEntry.getPrivacy()).thenReturn(WifiEntry.PRIVACY_DEVICE_MAC);
+ when(mMockWifiEntry.getMacAddress()).thenReturn(FACTORY_MAC_ADDRESS);
displayAndResume();
verify(mMockMacAddressPref).setVisible(true);
verify(mMockMacAddressPref).setSummary(FACTORY_MAC_ADDRESS);
+ verify(mMockMacAddressPref).setTitle(R.string.wifi_advanced_device_mac_address_title);
}
@Test
@@ -945,6 +931,7 @@ public class WifiDetailPreferenceController2Test {
inOrder.verify(mMockIpv6AddressesPref).setSummary(text);
}
+ @Ignore
@Test
public void onLinkPropertiesChanged_updatesFields() {
setUpForConnectedNetwork();
@@ -1002,6 +989,7 @@ public class WifiDetailPreferenceController2Test {
inOrder.verify(mMockDnsPref).setVisible(true);
}
+ @Ignore
@Test
public void onCapabilitiesChanged_callsRefreshIfNecessary() {
setUpForConnectedNetwork();
@@ -1073,32 +1061,25 @@ public class WifiDetailPreferenceController2Test {
}
@Test
- public void canForgetNetwork_ephemeral() {
+ public void onUpdated_canForget_showForgetButton() {
setUpForConnectedNetwork();
- when(mMockWifiInfo.isEphemeral()).thenReturn(true);
- when(mMockWifiEntry.isSaved()).thenReturn(false);
+ when(mMockWifiEntry.canForget()).thenReturn(true);
displayAndResume();
+ mController.onUpdated();
- verify(mMockButtonsPref).setButton1Visible(true);
+ verify(mMockButtonsPref, times(2)).setButton1Visible(true);
}
@Test
- public void canForgetNetwork_saved() {
+ public void onUpdated_canNotForget_hideForgetButton() {
setUpForConnectedNetwork();
- displayAndResume();
-
- verify(mMockButtonsPref).setButton1Visible(true);
- }
-
- @Test
- public void canForgetNetwork_lockedDown() {
- setUpForConnectedNetwork();
- lockDownNetwork();
+ when(mMockWifiEntry.canForget()).thenReturn(false);
displayAndResume();
+ mController.onUpdated();
- verify(mMockButtonsPref).setButton1Visible(false);
+ verify(mMockButtonsPref, times(2)).setButton1Visible(false);
}
@Test
@@ -1112,8 +1093,10 @@ public class WifiDetailPreferenceController2Test {
}
@Test
- public void canModifyNetwork_saved() {
+ public void canModifyNetwork_savedNetwork_returnTrue() {
setUpForConnectedNetwork();
+ when(mMockWifiEntry.isSaved()).thenReturn(true);
+
assertThat(mController.canModifyNetwork()).isTrue();
}
@@ -1149,52 +1132,30 @@ public class WifiDetailPreferenceController2Test {
}
@Test
- public void forgetNetwork_ephemeral() {
+ public void forgetNetwork_standardWifiNetwork_forget() {
setUpForConnectedNetwork();
- String ssid = "ssid";
- when(mMockWifiInfo.isEphemeral()).thenReturn(true);
- when(mMockWifiInfo.getSSID()).thenReturn(ssid);
-
displayAndResume();
+
mForgetClickListener.getValue().onClick(null);
- verify(mMockWifiManager).disableEphemeralNetwork(ssid);
+ verify(mMockWifiEntry).forget(mController);
verify(mMockMetricsFeatureProvider)
.action(mMockActivity, MetricsProto.MetricsEvent.ACTION_WIFI_FORGET);
}
@Test
- public void forgetNetwork_saved() {
+ public void forgetNetwork_isSubscription_shouldShowDialog() {
setUpForConnectedNetwork();
- mMockWifiConfig.networkId = 5;
-
- mController.displayPreference(mMockScreen);
- mForgetClickListener.getValue().onClick(null);
-
- verify(mMockWifiManager).forget(mMockWifiConfig.networkId, null);
- verify(mMockMetricsFeatureProvider)
- .action(mMockActivity, MetricsProto.MetricsEvent.ACTION_WIFI_FORGET);
- }
-
- /* TODO(b/143326832): Support Passpoint test cases while WifiTracker2 supports it.
- @Test
- public void forgetNetwork_shouldShowDialog() {
- setUpForConnectedNetwork();
- final WifiDetailPreferenceController2 spyController = spy(mController);
-
- mMockWifiConfig.networkId = 5;
- when(mMockAccessPoint.isPasspoint()).thenReturn(true);
- when(mMockAccessPoint.getPasspointFqdn()).thenReturn(FQDN);
- spyController.displayPreference(mMockScreen);
+ when(mMockWifiEntry.isSubscription()).thenReturn(true);
+ displayAndResume();
mForgetClickListener.getValue().onClick(null);
- verify(mMockWifiManager, times(0)).removePasspointConfiguration(FQDN);
- verify(mMockMetricsFeatureProvider, times(0))
+ verify(mMockWifiEntry, never()).forget(mController);
+ verify(mMockMetricsFeatureProvider, never())
.action(mMockActivity, MetricsProto.MetricsEvent.ACTION_WIFI_FORGET);
- verify(spyController).showConfirmForgetDialog();
+ verify(mController).showConfirmForgetDialog();
}
- */
@Test
public void networkStateChangedIntent_shouldRefetchInfo() {
@@ -1204,55 +1165,19 @@ public class WifiDetailPreferenceController2Test {
verify(mMockConnectivityManager, times(1)).getNetworkInfo(any(Network.class));
verify(mMockWifiManager, times(1)).getConnectionInfo();
-
- mContext.sendBroadcast(new Intent(WifiManager.NETWORK_STATE_CHANGED_ACTION));
-
- verify(mMockConnectivityManager, times(2)).getNetworkInfo(any(Network.class));
- verify(mMockWifiManager, times(2)).getConnectionInfo();
}
@Test
- public void networkStateChangedIntent_shouldRefetchInfoForConnectedNetwork() {
+ public void onUpdated_shouldUpdateNetworkInfo() {
setUpForConnectedNetwork();
displayAndResume();
- verify(mMockConnectivityManager, times(1)).getNetworkInfo(any(Network.class));
- verify(mMockWifiManager, times(1)).getConnectionInfo();
+ verify(mController, times(1)).updateNetworkInfo();
- mContext.sendBroadcast(new Intent(WifiManager.NETWORK_STATE_CHANGED_ACTION));
+ mController.onUpdated();
- verify(mMockConnectivityManager, times(2)).getNetworkInfo(any(Network.class));
- verify(mMockWifiManager, times(2)).getConnectionInfo();
- }
-
- @Test
- public void rssiChangedIntent_shouldRefetchInfo() {
- setUpForConnectedNetwork();
-
- displayAndResume();
-
- verify(mMockConnectivityManager, times(1)).getNetworkInfo(any(Network.class));
- verify(mMockWifiManager, times(1)).getConnectionInfo();
-
- mContext.sendBroadcast(new Intent(WifiManager.RSSI_CHANGED_ACTION));
-
- verify(mMockConnectivityManager, times(2)).getNetworkInfo(any(Network.class));
- verify(mMockWifiManager, times(2)).getConnectionInfo();
- }
-
- @Test
- public void rssiChangedIntent_shouldRefetchInfoForConnectedNetwork() {
- setUpForConnectedNetwork();
- displayAndResume();
-
- verify(mMockConnectivityManager, times(1)).getNetworkInfo(any(Network.class));
- verify(mMockWifiManager, times(1)).getConnectionInfo();
-
- mContext.sendBroadcast(new Intent(WifiManager.RSSI_CHANGED_ACTION));
-
- verify(mMockConnectivityManager, times(2)).getNetworkInfo(any(Network.class));
- verify(mMockWifiManager, times(2)).getConnectionInfo();
+ verify(mController, times(2)).updateNetworkInfo();
}
@Test
@@ -1305,6 +1230,7 @@ public class WifiDetailPreferenceController2Test {
assertThat(mMockIpv6AddressesPref.isSelectable()).isFalse();
}
+ @Ignore
@Test
public void captivePortal_shouldShowSignInButton() {
setUpForConnectedNetwork();
@@ -1330,6 +1256,7 @@ public class WifiDetailPreferenceController2Test {
inOrder.verify(mMockButtonsPref).setButton2Visible(false);
}
+ @Ignore
@Test
public void captivePortal_shouldShowVenueInfoButton() {
setUpForConnectedNetwork();
@@ -1355,6 +1282,7 @@ public class WifiDetailPreferenceController2Test {
inOrder.verify(mMockButtonsPref).setButton2Visible(false);
}
+ @Ignore
@Test
public void testSignInButton_shouldStartCaptivePortalApp() {
setUpForConnectedNetwork();
@@ -1395,22 +1323,24 @@ public class WifiDetailPreferenceController2Test {
public void testDisconnectButton_connectedNetwork_shouldVisible() {
setUpForConnectedNetwork();
when(mMockWifiEntry.getLevel()).thenReturn(WifiEntry.WIFI_LEVEL_MAX);
+ when(mMockWifiEntry.canDisconnect()).thenReturn(true);
displayAndResume();
verify(mMockButtonsPref).setButton3Visible(true);
- verify(mMockButtonsPref).setButton3Text(R.string.wifi_disconnect);
+ verify(mMockButtonsPref, times(2)).setButton3Text(R.string.wifi_disconnect_button_text);
}
@Test
public void testConnectButton_disconnectedNetwork_shouldVisibleIfReachable() {
setUpForDisconnectedNetwork();
when(mMockWifiEntry.getLevel()).thenReturn(WifiEntry.WIFI_LEVEL_MAX);
+ when(mMockWifiEntry.canConnect()).thenReturn(true);
displayAndResume();
verify(mMockButtonsPref).setButton3Visible(true);
- verify(mMockButtonsPref).setButton3Text(R.string.wifi_connect);
+ verify(mMockButtonsPref, times(2)).setButton3Text(R.string.wifi_connect);
}
@Test
@@ -1431,30 +1361,41 @@ public class WifiDetailPreferenceController2Test {
@Test
public void testConnectButton_clickConnect_displayAsSuccess() {
setUpForDisconnectedNetwork();
- when(mMockWifiManager.isWifiEnabled()).thenReturn(true);
- InOrder inOrder = inOrder(mMockButtonsPref);
- String label = "title";
+ final ArgumentCaptor connectCallbackCaptor =
+ ArgumentCaptor.forClass(ConnectCallback.class);
+ final InOrder inOrder = inOrder(mMockButtonsPref);
+ when(mMockWifiEntry.getConnectedState()).thenReturn(WifiEntry.CONNECTED_STATE_DISCONNECTED);
+ when(mMockWifiEntry.canConnect()).thenReturn(true);
+ final String label = "title";
when(mMockWifiEntry.getTitle()).thenReturn(label);
setUpForToast();
displayAndResume();
- // check connect button enabled
- verifyConnectBtnSetUpAsEnabled(inOrder);
+ // check connect button displayed
+ inOrder.verify(mMockButtonsPref).setButton3Text(R.string.wifi_connect);
+ inOrder.verify(mMockButtonsPref).setButton3Icon(R.drawable.ic_settings_wireless);
// click connect button
mController.connectDisconnectNetwork();
+ when(mMockWifiEntry.getConnectedState()).thenReturn(WifiEntry.CONNECTED_STATE_CONNECTING);
+ when(mMockWifiEntry.canConnect()).thenReturn(false);
+ when(mMockWifiEntry.canDisconnect()).thenReturn(false);
+ mController.onUpdated();
// check display button as connecting
- verify(mMockWifiManager, times(1)).connect(anyInt(), any(WifiManager.ActionListener.class));
- verifyConnectBtnSetUpAsConnecting(inOrder);
+ verify(mMockWifiEntry, times(1)).connect(connectCallbackCaptor.capture());
+ verifyConnectingBtnAvailable(inOrder);
// update as connected
+ connectCallbackCaptor.getValue().onConnectResult(
+ ConnectCallback.CONNECT_STATUS_SUCCESS);
when(mMockWifiEntry.getConnectedState()).thenReturn(WifiEntry.CONNECTED_STATE_CONNECTED);
+ when(mMockWifiEntry.canDisconnect()).thenReturn(true);
+ mController.onUpdated();
- // check connect button invisible, be init as default state and toast success message
- verifyConnectBtnBeInitAsDefault(inOrder);
- inOrder.verify(mMockButtonsPref).setButton3Enabled(false);
+ // check disconnect button invisible, be init as default state and toast success message
+ verifyDisconnecBtnAvailable(inOrder);
assertThat(ShadowToast.getTextOfLatestToast()).isEqualTo(
mContext.getString(R.string.wifi_connected_to_message, label));
}
@@ -1462,70 +1403,61 @@ public class WifiDetailPreferenceController2Test {
@Test
public void testConnectButton_clickConnectButFailed_displayFailMessage() {
setUpForDisconnectedNetwork();
- ArgumentCaptor connectListenerCaptor =
- ArgumentCaptor.forClass(WifiManager.ActionListener.class);
- when(mMockWifiManager.isWifiEnabled()).thenReturn(true);
- InOrder inOrder = inOrder(mMockButtonsPref);
+ final ArgumentCaptor connectCallbackCaptor =
+ ArgumentCaptor.forClass(ConnectCallback.class);
+ final InOrder inOrder = inOrder(mMockButtonsPref);
+ when(mMockWifiEntry.getConnectedState()).thenReturn(WifiEntry.CONNECTED_STATE_DISCONNECTED);
+ when(mMockWifiEntry.canDisconnect()).thenReturn(true);
setUpForToast();
displayAndResume();
- // check connect button enabled
- verifyConnectBtnSetUpAsEnabled(inOrder);
+ // check connect button displayed
+ inOrder.verify(mMockButtonsPref).setButton3Text(R.string.wifi_connect);
+ inOrder.verify(mMockButtonsPref).setButton3Icon(R.drawable.ic_settings_wireless);
// click connect button
mController.connectDisconnectNetwork();
+ when(mMockWifiEntry.getConnectedState()).thenReturn(WifiEntry.CONNECTED_STATE_CONNECTING);
+ when(mMockWifiEntry.canConnect()).thenReturn(false);
+ when(mMockWifiEntry.canDisconnect()).thenReturn(false);
+ mController.onUpdated();
// check display button as connecting
- verify(mMockWifiManager, times(1)).connect(anyInt(), connectListenerCaptor.capture());
- verifyConnectBtnSetUpAsConnecting(inOrder);
+ verify(mMockWifiEntry, times(1)).connect(connectCallbackCaptor.capture());
+ verifyConnectingBtnAvailable(inOrder);
// update as failed
- connectListenerCaptor.getValue().onFailure(-1);
+ connectCallbackCaptor.getValue().onConnectResult(
+ ConnectCallback.CONNECT_STATUS_FAILURE_UNKNOWN);
+ when(mMockWifiEntry.getConnectedState()).thenReturn(WifiEntry.CONNECTED_STATE_DISCONNECTED);
+ when(mMockWifiEntry.canConnect()).thenReturn(true);
+ mController.onUpdated();
- // check connect button visible, be init as default and toast failed message
- verifyConnectBtnBeInitAsDefault(inOrder);
- inOrder.verify(mMockButtonsPref).setButton3Enabled(true);
+ // check connect button available, be init as default and toast failed message
+ verifyConnectBtnAvailable(inOrder);
assertThat(ShadowToast.getTextOfLatestToast()).isEqualTo(
mContext.getString(R.string.wifi_failed_connect_message));
}
- private void verifyConnectBtnSetUpAsEnabled(InOrder inOrder) {
+ private void verifyConnectBtnAvailable(InOrder inOrder) {
+ inOrder.verify(mMockButtonsPref).setButton3Visible(true);
+ inOrder.verify(mMockButtonsPref).setButton3Enabled(true);
inOrder.verify(mMockButtonsPref).setButton3Text(R.string.wifi_connect);
inOrder.verify(mMockButtonsPref).setButton3Icon(R.drawable.ic_settings_wireless);
- inOrder.verify(mMockButtonsPref).setButton3Enabled(true);
}
- private void verifyConnectBtnSetUpAsConnecting(InOrder inOrder) {
- inOrder.verify(mMockButtonsPref).setButton3Text(R.string.wifi_connecting);
+ private void verifyDisconnecBtnAvailable(InOrder inOrder) {
+ inOrder.verify(mMockButtonsPref).setButton3Visible(true);
+ inOrder.verify(mMockButtonsPref).setButton3Enabled(true);
+ inOrder.verify(mMockButtonsPref).setButton3Text(R.string.wifi_disconnect_button_text);
+ inOrder.verify(mMockButtonsPref).setButton3Icon(R.drawable.ic_settings_close);
+ }
+
+ private void verifyConnectingBtnAvailable(InOrder inOrder) {
+ inOrder.verify(mMockButtonsPref).setButton3Visible(true);
inOrder.verify(mMockButtonsPref).setButton3Enabled(false);
- }
-
- private void verifyConnectBtnBeInitAsDefault(InOrder inOrder) {
- inOrder.verify(mMockButtonsPref).setButton3Text(R.string.wifi_connect);
- inOrder.verify(mMockButtonsPref).setButton3Icon(R.drawable.ic_settings_wireless);
- inOrder.verify(mMockButtonsPref).setButton3Enabled(true);
- }
-
- @Test
- public void testRefreshRssiViews_shouldOnUpdated() {
- setUpForConnectedNetwork();
- displayAndResume();
-
- mContext.sendBroadcast(new Intent(WifiManager.RSSI_CHANGED_ACTION));
-
- verify(mController).onUpdated();
- }
-
- @Test
- public void testRefreshRssiViews_shouldNotUpdateForNotInRangeNetwork() {
- setUpForNotInRangeNetwork();
- displayAndResume();
-
- when(mMockWifiEntry.getLevel()).thenReturn(0);
- mContext.sendBroadcast(new Intent(WifiManager.RSSI_CHANGED_ACTION));
-
- verify(mMockSignalStrengthPref, times(2)).setVisible(false);
+ inOrder.verify(mMockButtonsPref).setButton3Text(R.string.wifi_connecting);
}
@Test
@@ -1580,46 +1512,17 @@ public class WifiDetailPreferenceController2Test {
}
@Test
- public void checkMacTitle_whenPrivacyRandomizedMac_shouldBeRandom() {
+ public void entityHeader_expired_shouldHandleExpiration() {
setUpForDisconnectedNetwork();
- mMockWifiConfig.macRandomizationSetting = WifiConfiguration.RANDOMIZATION_PERSISTENT;
- when(mMockWifiConfig.getRandomizedMacAddress()).thenReturn(mMockMacAddress);
- when(mMockMacAddress.toString()).thenReturn(RANDOMIZED_MAC_ADDRESS);
-
- displayAndResume();
-
- verify(mMockMacAddressPref).setTitle(R.string.wifi_advanced_randomized_mac_address_title);
- }
-
- @Test
- public void checkMacTitle_whenPrivacyDeviceMac_shouldBeFactory() {
- setUpForDisconnectedNetwork();
- mMockWifiConfig.macRandomizationSetting = WifiConfiguration.RANDOMIZATION_NONE;
- when(mMockWifiConfig.getRandomizedMacAddress()).thenReturn(mMockMacAddress);
- when(mMockWifiManager.getFactoryMacAddresses())
- .thenReturn(new String[]{FACTORY_MAC_ADDRESS});
-
- displayAndResume();
-
- verify(mMockMacAddressPref).setTitle(R.string.wifi_advanced_device_mac_address_title);
- }
-
- /* TODO(b/143326832): Support Passpoint test cases while WifiTracker2 supports it.
- @Test
- public void entityHeader_expiredPasspointR1_shouldHandleExpiration() {
- when(mMockAccessPoint.isPasspoint()).thenReturn(true);
- when(mMockAccessPoint.isPasspointConfigurationR1()).thenReturn(true);
- when(mMockAccessPoint.isExpired()).thenReturn(true);
- setUpForDisconnectedNetwork();
- String expireSummary = mContext.getResources().getString(
- com.android.settingslib.R.string.wifi_passpoint_expired);
+ when(mMockWifiEntry.isExpired()).thenReturn(true);
+ final String expired = "Expired";
+ when(mMockWifiEntry.getSummary()).thenReturn(expired);
displayAndResume();
verify(mMockButtonsPref, atLeastOnce()).setButton3Visible(false);
- verify(mMockHeaderController).setSummary(expireSummary);
+ verify(mMockHeaderController).setSummary(expired);
}
- */
private ActionButtonsPreference createMock() {
final ActionButtonsPreference pref = mock(ActionButtonsPreference.class);