blob: e2e68834de7b098d4a1c4faa562ac4f7b7f5e0eb [file] [log] [blame]
package android.net;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiConfiguration;
import android.os.Parcel;
import android.os.SystemClock;
import android.test.AndroidTestCase;
public class RecommendationRequestTest extends AndroidTestCase {
private ScanResult[] mScanResults;
private WifiConfiguration mDefaultConfig;
private WifiConfiguration mConnectedConfig;
private WifiConfiguration[] mConnectableConfigs;
private int mLastSelectedNetworkId;
private long mLastSelectedNetworkTimestamp;
@Override
public void setUp() throws Exception {
mScanResults = new ScanResult[2];
mScanResults[0] = new ScanResult();
mScanResults[1] = new ScanResult(
"ssid",
"bssid",
0L /*hessid*/,
1 /*anqpDominId*/,
"caps",
2 /*level*/,
3 /*frequency*/,
4L /*tsf*/,
5 /*distCm*/,
6 /*distSdCm*/,
7 /*channelWidth*/,
8 /*centerFreq0*/,
9 /*centerFreq1*/,
false /*is80211McRTTResponder*/);
mDefaultConfig = new WifiConfiguration();
mDefaultConfig.SSID = "default_config";
mConnectedConfig = new WifiConfiguration();
mConnectedConfig.SSID = "connected_config";
mConnectableConfigs = new WifiConfiguration[] {mDefaultConfig, mConnectedConfig};
mLastSelectedNetworkId = 5;
mLastSelectedNetworkTimestamp = SystemClock.elapsedRealtime();
}
public void testParceling() throws Exception {
RecommendationRequest request = new RecommendationRequest.Builder()
.setDefaultWifiConfig(mDefaultConfig)
.setScanResults(mScanResults)
.setConnectedWifiConfig(mConnectedConfig)
.setConnectableConfigs(mConnectableConfigs)
.setLastSelectedNetwork(mLastSelectedNetworkId, mLastSelectedNetworkTimestamp)
.build();
RecommendationRequest parceled = passThroughParcel(request);
assertEquals(request.getDefaultWifiConfig().SSID,
parceled.getDefaultWifiConfig().SSID);
assertEquals(request.getConnectedConfig().SSID,
parceled.getConnectedConfig().SSID);
ScanResult[] parceledScanResults = parceled.getScanResults();
assertNotNull(parceledScanResults);
assertEquals(mScanResults.length, parceledScanResults.length);
for (int i = 0; i < mScanResults.length; i++) {
assertEquals(mScanResults[i].SSID, parceledScanResults[i].SSID);
}
WifiConfiguration[] parceledConfigs = parceled.getConnectableConfigs();
for (int i = 0; i < parceledConfigs.length; i++) {
assertEquals(mConnectableConfigs[i].SSID, parceledConfigs[i].SSID);
}
assertEquals(mLastSelectedNetworkId, parceled.getLastSelectedNetworkId());
assertEquals(mLastSelectedNetworkTimestamp, parceled.getLastSelectedNetworkTimestamp());
}
public void testParceling_nullScanResults() throws Exception {
RecommendationRequest request = new RecommendationRequest.Builder()
.setDefaultWifiConfig(mDefaultConfig)
.build();
RecommendationRequest parceled = passThroughParcel(request);
ScanResult[] parceledScanResults = parceled.getScanResults();
assertNull(parceledScanResults);
}
public void testParceling_nullWifiConfigArray() throws Exception {
RecommendationRequest request = new RecommendationRequest.Builder()
.setDefaultWifiConfig(mDefaultConfig)
.build();
RecommendationRequest parceled = passThroughParcel(request);
WifiConfiguration[] parceledConfigs = parceled.getConnectableConfigs();
assertNull(parceledConfigs);
}
public void testParceling_unsetLastSelectedNetwork() throws Exception {
RecommendationRequest request = new RecommendationRequest.Builder()
.build();
RecommendationRequest parceled = passThroughParcel(request);
assertEquals(-1, parceled.getLastSelectedNetworkId());
assertEquals(0, parceled.getLastSelectedNetworkTimestamp());
}
private RecommendationRequest passThroughParcel(RecommendationRequest request) {
Parcel p = Parcel.obtain();
RecommendationRequest output = null;
try {
request.writeToParcel(p, 0);
p.setDataPosition(0);
output = RecommendationRequest.CREATOR.createFromParcel(p);
} finally {
p.recycle();
}
assertNotNull(output);
return output;
}
}