diff options
| -rw-r--r-- | wifi/java/android/net/wifi/WifiScanner.java | 10 | ||||
| -rw-r--r-- | wifi/tests/src/android/net/wifi/WifiScannerTest.java | 85 |
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); + } + } |