summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java12
-rw-r--r--packages/SettingsLib/tests/AndroidManifest.xml2
-rw-r--r--packages/SettingsLib/tests/src/com/android/settingslib/wifi/WifiTrackerTest.java71
3 files changed, 81 insertions, 4 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java
index bfe8c07a0168..77a45b31fd1c 100644
--- a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java
+++ b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java
@@ -484,7 +484,8 @@ public class WifiTracker {
mMainHandler.scheduleAPCopyingAndCloseWriteLock();
}
- private AccessPoint getCachedOrCreate(ScanResult result, List<AccessPoint> cache) {
+ @VisibleForTesting
+ AccessPoint getCachedOrCreate(ScanResult result, List<AccessPoint> cache) {
final int N = cache.size();
for (int i = 0; i < N; i++) {
if (cache.get(i).matches(result)) {
@@ -493,10 +494,13 @@ public class WifiTracker {
return ret;
}
}
- return new AccessPoint(mContext, result);
+ final AccessPoint accessPoint = new AccessPoint(mContext, result);
+ accessPoint.setListener(mAccessPointListenerAdapter);
+ return accessPoint;
}
- private AccessPoint getCachedOrCreate(WifiConfiguration config, List<AccessPoint> cache) {
+ @VisibleForTesting
+ AccessPoint getCachedOrCreate(WifiConfiguration config, List<AccessPoint> cache) {
final int N = cache.size();
for (int i = 0; i < N; i++) {
if (cache.get(i).matches(config)) {
@@ -505,7 +509,7 @@ public class WifiTracker {
return ret;
}
}
- AccessPoint accessPoint = new AccessPoint(mContext, config);
+ final AccessPoint accessPoint = new AccessPoint(mContext, config);
accessPoint.setListener(mAccessPointListenerAdapter);
return accessPoint;
}
diff --git a/packages/SettingsLib/tests/AndroidManifest.xml b/packages/SettingsLib/tests/AndroidManifest.xml
index 9fd5a4108a43..00b21649959b 100644
--- a/packages/SettingsLib/tests/AndroidManifest.xml
+++ b/packages/SettingsLib/tests/AndroidManifest.xml
@@ -21,6 +21,8 @@
<uses-permission android:name="android.permission.MANAGE_USERS" />
<uses-permission android:name="android.permission.MANAGE_NETWORK_POLICY"/>
<uses-permission android:name="android.permission.SET_TIME_ZONE" />
+ <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
+
<application>
<uses-library android:name="android.test.runner" />
diff --git a/packages/SettingsLib/tests/src/com/android/settingslib/wifi/WifiTrackerTest.java b/packages/SettingsLib/tests/src/com/android/settingslib/wifi/WifiTrackerTest.java
new file mode 100644
index 000000000000..c650190b591f
--- /dev/null
+++ b/packages/SettingsLib/tests/src/com/android/settingslib/wifi/WifiTrackerTest.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+package com.android.settingslib.wifi;
+
+
+import static org.junit.Assert.assertTrue;
+
+import android.net.wifi.ScanResult;
+import android.net.wifi.WifiConfiguration;
+import android.os.SystemClock;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.BitSet;
+import java.util.List;
+
+
+@SmallTest
+@RunWith(AndroidJUnit4.class)
+public class WifiTrackerTest {
+
+ @Test
+ public void testAccessPointListenerSetWhenLookingUpUsingScanResults() {
+ ScanResult scanResult = new ScanResult();
+ scanResult.level = 123;
+ scanResult.BSSID = "bssid-" + 111;
+ scanResult.timestamp = SystemClock.elapsedRealtime() * 1000;
+ scanResult.capabilities = "";
+
+ WifiTracker tracker = new WifiTracker(
+ InstrumentationRegistry.getTargetContext(), null, true, true);
+
+ AccessPoint result = tracker.getCachedOrCreate(scanResult, new ArrayList<AccessPoint>());
+ assertTrue(result.mAccessPointListener != null);
+ }
+
+ @Test
+ public void testAccessPointListenerSetWhenLookingUpUsingWifiConfiguration() {
+ WifiConfiguration configuration = new WifiConfiguration();
+ configuration.SSID = "test123";
+ configuration.BSSID="bssid";
+ configuration.networkId = 123;
+ configuration.allowedKeyManagement = new BitSet();
+ configuration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
+
+ WifiTracker tracker = new WifiTracker(
+ InstrumentationRegistry.getTargetContext(), null, true, true);
+
+ AccessPoint result = tracker.getCachedOrCreate(configuration, new ArrayList<AccessPoint>());
+ assertTrue(result.mAccessPointListener != null);
+ }
+}