diff options
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); + } +} |