summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--wifi/java/android/net/wifi/WifiScanner.java10
-rw-r--r--wifi/tests/src/android/net/wifi/WifiScannerTest.java85
2 files changed, 90 insertions, 5 deletions
diff --git a/wifi/java/android/net/wifi/WifiScanner.java b/wifi/java/android/net/wifi/WifiScanner.java
index 045291b4f4d4..529548f1d2b8 100644
--- a/wifi/java/android/net/wifi/WifiScanner.java
+++ b/wifi/java/android/net/wifi/WifiScanner.java
@@ -594,17 +594,17 @@ public class WifiScanner {
/** SSID of the network */
public String ssid;
/** Bitmask of the FLAG_XXX */
- public byte flags;
+ public byte flags = 0;
/** Bitmask of the ATUH_XXX */
- public byte authBitField;
+ public byte authBitField = 0;
+ /** frequencies on which the particular network needs to be scanned for */
+ public int[] frequencies = {};
/**
* default constructor for PnoNetwork
*/
public PnoNetwork(String ssid) {
this.ssid = ssid;
- flags = 0;
- authBitField = 0;
}
}
@@ -651,6 +651,7 @@ public class WifiScanner {
dest.writeString(networkList[i].ssid);
dest.writeByte(networkList[i].flags);
dest.writeByte(networkList[i].authBitField);
+ dest.writeIntArray(networkList[i].frequencies);
}
} else {
dest.writeInt(0);
@@ -677,6 +678,7 @@ public class WifiScanner {
PnoNetwork network = new PnoNetwork(ssid);
network.flags = in.readByte();
network.authBitField = in.readByte();
+ network.frequencies = in.createIntArray();
settings.networkList[i] = network;
}
return settings;
diff --git a/wifi/tests/src/android/net/wifi/WifiScannerTest.java b/wifi/tests/src/android/net/wifi/WifiScannerTest.java
index 96d5a5167480..da42dcf623c2 100644
--- a/wifi/tests/src/android/net/wifi/WifiScannerTest.java
+++ b/wifi/tests/src/android/net/wifi/WifiScannerTest.java
@@ -17,16 +17,20 @@
package android.net.wifi;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.validateMockitoUsage;
import static org.mockito.Mockito.when;
import android.content.Context;
+import android.net.wifi.WifiScanner.PnoSettings;
+import android.net.wifi.WifiScanner.PnoSettings.PnoNetwork;
+import android.net.wifi.WifiScanner.ScanSettings;
import android.os.Handler;
import android.os.Parcel;
import android.os.test.TestLooper;
import android.support.test.filters.SmallTest;
-import android.net.wifi.WifiScanner.ScanSettings;
import com.android.internal.util.test.BidirectionalAsyncChannelServer;
@@ -36,6 +40,8 @@ import org.junit.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import java.util.Arrays;
+
/**
* Unit tests for {@link android.net.wifi.WifiScanner}.
@@ -47,6 +53,19 @@ public class WifiScannerTest {
@Mock
private IWifiScanner mService;
+ private static final boolean TEST_PNOSETTINGS_IS_CONNECTED = false;
+ private static final int TEST_PNOSETTINGS_MIN_5GHZ_RSSI = -60;
+ private static final int TEST_PNOSETTINGS_MIN_2GHZ_RSSI = -70;
+ private static final int TEST_PNOSETTINGS_INITIAL_SCORE_MAX = 50;
+ private static final int TEST_PNOSETTINGS_CURRENT_CONNECTION_BONUS = 10;
+ private static final int TEST_PNOSETTINGS_SAME_NETWORK_BONUS = 11;
+ private static final int TEST_PNOSETTINGS_SECURE_BONUS = 12;
+ private static final int TEST_PNOSETTINGS_BAND_5GHZ_BONUS = 13;
+ private static final String TEST_SSID_1 = "TEST1";
+ private static final String TEST_SSID_2 = "TEST2";
+ private static final int[] TEST_FREQUENCIES_1 = {};
+ private static final int[] TEST_FREQUENCIES_2 = {2500, 5124};
+
private WifiScanner mWifiScanner;
private TestLooper mLooper;
private Handler mHandler;
@@ -120,4 +139,68 @@ public class WifiScannerTest {
return ScanSettings.CREATOR.createFromParcel(parcel);
}
+ /**
+ * PnoSettings object can be serialized and deserialized, while keeping the
+ * values unchanged.
+ */
+ @Test
+ public void canSerializeAndDeserializePnoSettings() throws Exception {
+
+ PnoSettings pnoSettings = new PnoSettings();
+
+ PnoNetwork pnoNetwork1 = new PnoNetwork(TEST_SSID_1);
+ PnoNetwork pnoNetwork2 = new PnoNetwork(TEST_SSID_2);
+ pnoNetwork1.frequencies = TEST_FREQUENCIES_1;
+ pnoNetwork2.frequencies = TEST_FREQUENCIES_2;
+
+ pnoSettings.networkList = new PnoNetwork[]{pnoNetwork1, pnoNetwork2};
+ pnoSettings.isConnected = TEST_PNOSETTINGS_IS_CONNECTED;
+ pnoSettings.min5GHzRssi = TEST_PNOSETTINGS_MIN_5GHZ_RSSI;
+ pnoSettings.min24GHzRssi = TEST_PNOSETTINGS_MIN_2GHZ_RSSI;
+ pnoSettings.initialScoreMax = TEST_PNOSETTINGS_INITIAL_SCORE_MAX;
+ pnoSettings.currentConnectionBonus = TEST_PNOSETTINGS_CURRENT_CONNECTION_BONUS;
+ pnoSettings.sameNetworkBonus = TEST_PNOSETTINGS_SAME_NETWORK_BONUS;
+ pnoSettings.secureBonus = TEST_PNOSETTINGS_SECURE_BONUS;
+ pnoSettings.band5GHzBonus = TEST_PNOSETTINGS_BAND_5GHZ_BONUS;
+
+ Parcel parcel = Parcel.obtain();
+ pnoSettings.writeToParcel(parcel, 0);
+ // Rewind the pointer to the head of the parcel.
+ parcel.setDataPosition(0);
+ PnoSettings pnoSettingsDeserialized =
+ pnoSettings.CREATOR.createFromParcel(parcel);
+
+ assertNotNull(pnoSettingsDeserialized);
+ assertEquals(TEST_PNOSETTINGS_IS_CONNECTED, pnoSettingsDeserialized.isConnected);
+ assertEquals(TEST_PNOSETTINGS_MIN_5GHZ_RSSI, pnoSettingsDeserialized.min5GHzRssi);
+ assertEquals(TEST_PNOSETTINGS_MIN_2GHZ_RSSI, pnoSettingsDeserialized.min24GHzRssi);
+ assertEquals(TEST_PNOSETTINGS_INITIAL_SCORE_MAX, pnoSettingsDeserialized.initialScoreMax);
+ assertEquals(TEST_PNOSETTINGS_CURRENT_CONNECTION_BONUS,
+ pnoSettingsDeserialized.currentConnectionBonus);
+ assertEquals(TEST_PNOSETTINGS_SAME_NETWORK_BONUS,
+ pnoSettingsDeserialized.sameNetworkBonus);
+ assertEquals(TEST_PNOSETTINGS_SECURE_BONUS, pnoSettingsDeserialized.secureBonus);
+ assertEquals(TEST_PNOSETTINGS_BAND_5GHZ_BONUS, pnoSettingsDeserialized.band5GHzBonus);
+
+ // Test parsing of PnoNetwork
+ assertEquals(pnoSettings.networkList.length, pnoSettingsDeserialized.networkList.length);
+ for (int i = 0; i < pnoSettings.networkList.length; i++) {
+ PnoNetwork expected = pnoSettings.networkList[i];
+ PnoNetwork actual = pnoSettingsDeserialized.networkList[i];
+ assertEquals(expected.ssid, actual.ssid);
+ assertEquals(expected.flags, actual.flags);
+ assertEquals(expected.authBitField, actual.authBitField);
+ assertTrue(Arrays.equals(expected.frequencies, actual.frequencies));
+ }
+ }
+
+ /**
+ * Make sure that frequencies is not null by default.
+ */
+ @Test
+ public void pnoNetworkFrequencyIsNotNull() throws Exception {
+ PnoNetwork pnoNetwork = new PnoNetwork(TEST_SSID_1);
+ assertNotNull(pnoNetwork.frequencies);
+ }
+
}