Merge "Stop WifiManagerTest from disabling current network." into eclair

This commit is contained in:
Brian Muramatsu
2010-11-29 12:31:44 -08:00
committed by Android Code Review

View File

@@ -16,7 +16,10 @@
package android.net.wifi.cts;
import java.util.List;
import dalvik.annotation.TestLevel;
import dalvik.annotation.TestTargetClass;
import dalvik.annotation.TestTargetNew;
import dalvik.annotation.TestTargets;
import android.content.BroadcastReceiver;
import android.content.Context;
@@ -28,10 +31,11 @@ import android.net.wifi.WifiManager;
import android.net.wifi.WifiConfiguration.Status;
import android.net.wifi.WifiManager.WifiLock;
import android.test.AndroidTestCase;
import dalvik.annotation.TestLevel;
import dalvik.annotation.TestTargetClass;
import dalvik.annotation.TestTargetNew;
import dalvik.annotation.TestTargets;
import android.util.Log;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@TestTargetClass(WifiManager.class)
public class WifiManagerTest extends AndroidTestCase {
@@ -341,58 +345,87 @@ public class WifiManagerTest extends AndroidTestCase {
)
})
public void testWifiManagerNetWork() throws Exception {
WifiConfiguration wifiConfiguration;
// add a WifiConfig
final int notExist = -1;
List<WifiConfiguration> wifiConfiguredNetworks = mWifiManager.getConfiguredNetworks();
int pos = findConfiguredNetworks(SSID1, wifiConfiguredNetworks);
if (notExist != pos) {
// store the list of enabled networks, so they can be re-enabled after test completes
Set<String> enabledSsids = getEnabledNetworks(mWifiManager.getConfiguredNetworks());
try {
WifiConfiguration wifiConfiguration;
// add a WifiConfig
final int notExist = -1;
List<WifiConfiguration> wifiConfiguredNetworks = mWifiManager.getConfiguredNetworks();
int pos = findConfiguredNetworks(SSID1, wifiConfiguredNetworks);
if (notExist != pos) {
wifiConfiguration = wifiConfiguredNetworks.get(pos);
mWifiManager.removeNetwork(wifiConfiguration.networkId);
}
pos = findConfiguredNetworks(SSID1, wifiConfiguredNetworks);
assertEquals(notExist, pos);
final int size = wifiConfiguredNetworks.size();
wifiConfiguration = new WifiConfiguration();
wifiConfiguration.SSID = SSID1;
int netId = mWifiManager.addNetwork(wifiConfiguration);
assertTrue(existSSID(SSID1));
wifiConfiguredNetworks = mWifiManager.getConfiguredNetworks();
assertEquals(size + 1, wifiConfiguredNetworks.size());
pos = findConfiguredNetworks(SSID1, wifiConfiguredNetworks);
assertTrue(notExist != pos);
// Enable & disable network
boolean disableOthers = false;
assertTrue(mWifiManager.enableNetwork(netId, disableOthers));
wifiConfiguration = mWifiManager.getConfiguredNetworks().get(pos);
assertDisableOthers(wifiConfiguration, disableOthers);
assertEquals(Status.ENABLED, wifiConfiguration.status);
disableOthers = true;
assertTrue(mWifiManager.enableNetwork(netId, disableOthers));
wifiConfiguration = mWifiManager.getConfiguredNetworks().get(pos);
assertDisableOthers(wifiConfiguration, disableOthers);
assertTrue(mWifiManager.disableNetwork(netId));
wifiConfiguration = mWifiManager.getConfiguredNetworks().get(pos);
assertEquals(Status.DISABLED, wifiConfiguration.status);
// Update a WifiConfig
wifiConfiguration = wifiConfiguredNetworks.get(pos);
mWifiManager.removeNetwork(wifiConfiguration.networkId);
wifiConfiguration.SSID = SSID2;
netId = mWifiManager.updateNetwork(wifiConfiguration);
assertFalse(existSSID(SSID1));
assertTrue(existSSID(SSID2));
// Remove a WifiConfig
assertTrue(mWifiManager.removeNetwork(netId));
assertFalse(mWifiManager.removeNetwork(notExist));
assertFalse(existSSID(SSID1));
assertFalse(existSSID(SSID2));
assertTrue(mWifiManager.saveConfiguration());
} finally {
reEnableNetworks(enabledSsids, mWifiManager.getConfiguredNetworks());
mWifiManager.saveConfiguration();
}
pos = findConfiguredNetworks(SSID1, wifiConfiguredNetworks);
assertEquals(notExist, pos);
final int size = wifiConfiguredNetworks.size();
}
wifiConfiguration = new WifiConfiguration();
wifiConfiguration.SSID = SSID1;
int netId = mWifiManager.addNetwork(wifiConfiguration);
assertTrue(existSSID(SSID1));
private Set<String> getEnabledNetworks(List<WifiConfiguration> configuredNetworks) {
Set<String> ssids = new HashSet<String>();
for (WifiConfiguration wifiConfig : configuredNetworks) {
if (Status.ENABLED == wifiConfig.status || Status.CURRENT == wifiConfig.status) {
ssids.add(wifiConfig.SSID);
Log.i(TAG, String.format("remembering enabled network %s", wifiConfig.SSID));
}
}
return ssids;
}
wifiConfiguredNetworks = mWifiManager.getConfiguredNetworks();
assertEquals(size + 1, wifiConfiguredNetworks.size());
pos = findConfiguredNetworks(SSID1, wifiConfiguredNetworks);
assertTrue(notExist != pos);
// Enable & disable network
boolean disableOthers = false;
assertTrue(mWifiManager.enableNetwork(netId, disableOthers));
wifiConfiguration = mWifiManager.getConfiguredNetworks().get(pos);
assertDisableOthers(wifiConfiguration, disableOthers);
assertEquals(Status.ENABLED, wifiConfiguration.status);
disableOthers = true;
assertTrue(mWifiManager.enableNetwork(netId, disableOthers));
wifiConfiguration = mWifiManager.getConfiguredNetworks().get(pos);
assertDisableOthers(wifiConfiguration, disableOthers);
assertTrue(mWifiManager.disableNetwork(netId));
wifiConfiguration = mWifiManager.getConfiguredNetworks().get(pos);
assertEquals(Status.DISABLED, wifiConfiguration.status);
// Update a WifiConfig
wifiConfiguration = wifiConfiguredNetworks.get(pos);
wifiConfiguration.SSID = SSID2;
netId = mWifiManager.updateNetwork(wifiConfiguration);
assertFalse(existSSID(SSID1));
assertTrue(existSSID(SSID2));
// Remove a WifiConfig
assertTrue(mWifiManager.removeNetwork(netId));
assertFalse(mWifiManager.removeNetwork(notExist));
assertFalse(existSSID(SSID1));
assertFalse(existSSID(SSID2));
assertTrue(mWifiManager.saveConfiguration());
private void reEnableNetworks(Set<String> enabledSsids,
List<WifiConfiguration> configuredNetworks) {
for (WifiConfiguration wifiConfig : configuredNetworks) {
if (enabledSsids.contains(wifiConfig.SSID)) {
mWifiManager.enableNetwork(wifiConfig.networkId, false);
Log.i(TAG, String.format("re-enabling network %s", wifiConfig.SSID));
}
}
}
@TestTargets({