summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Joslin <jjoslin@google.com>2017-02-22 16:57:53 -0800
committerJeremy Joslin <jjoslin@google.com>2017-02-24 12:32:46 -0800
commita6a5644da168f657ca56c5fd64f21bb2e738c21c (patch)
treea9f8a501215881fae3657c4d94963df923a34c82
parent408ffe650e232c941168713e1203aafa4cdd06ed (diff)
downloadNetworkRecommendation-a6a5644da168f657ca56c5fd64f21bb2e738c21c.tar.gz
Updated DefaultNetworkRecommendationProvider to use the new ctor.
Also fixed the failing tests in WifiWakeupControllerTest. Test: runtest --path packages/services/NetworkRecommendation/tests/src/com/android/networkrecommendation/ Bug: 35756438 Change-Id: Ia563d798778a0b4d7735876a070c62a8a0fea608
-rw-r--r--src/com/android/networkrecommendation/DefaultNetworkRecommendationProvider.java8
-rw-r--r--src/com/android/networkrecommendation/NetworkRecommendationService.java8
-rw-r--r--src/com/android/networkrecommendation/wakeup/WifiWakeupController.java24
-rw-r--r--tests/src/com/android/networkrecommendation/DefaultNetworkRecommendationProviderTest.java9
-rw-r--r--tests/src/com/android/networkrecommendation/wakeup/WifiWakeupControllerTest.java35
5 files changed, 53 insertions, 31 deletions
diff --git a/src/com/android/networkrecommendation/DefaultNetworkRecommendationProvider.java b/src/com/android/networkrecommendation/DefaultNetworkRecommendationProvider.java
index bfa78c4..2f8afa8 100644
--- a/src/com/android/networkrecommendation/DefaultNetworkRecommendationProvider.java
+++ b/src/com/android/networkrecommendation/DefaultNetworkRecommendationProvider.java
@@ -16,6 +16,7 @@
package com.android.networkrecommendation;
+import android.content.Context;
import android.net.NetworkKey;
import android.net.NetworkRecommendationProvider;
import android.net.NetworkScoreManager;
@@ -27,7 +28,6 @@ import android.net.WifiKey;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiConfiguration;
import android.os.Bundle;
-import android.os.Handler;
import android.support.annotation.VisibleForTesting;
import android.text.TextUtils;
import android.util.ArrayMap;
@@ -39,6 +39,7 @@ import java.io.FileDescriptor;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
+import java.util.concurrent.Executor;
import javax.annotation.concurrent.GuardedBy;
@@ -132,9 +133,10 @@ public class DefaultNetworkRecommendationProvider
@GuardedBy("mStatsLock")
private int mScoreCounter = 0;
- public DefaultNetworkRecommendationProvider(Handler handler,
+
+ public DefaultNetworkRecommendationProvider(Context context, Executor executor,
NetworkScoreManager scoreManager, ScoreStorage storage) {
- super(handler);
+ super(context, executor);
mScoreManager = scoreManager;
mStorage = storage;
}
diff --git a/src/com/android/networkrecommendation/NetworkRecommendationService.java b/src/com/android/networkrecommendation/NetworkRecommendationService.java
index 6583762..887741e 100644
--- a/src/com/android/networkrecommendation/NetworkRecommendationService.java
+++ b/src/com/android/networkrecommendation/NetworkRecommendationService.java
@@ -55,7 +55,7 @@ public class NetworkRecommendationService extends Service {
Looper looper = mHandlerThread.getLooper();
mHandler = new Handler(looper);
NetworkScoreManager networkScoreManager = getSystemService(NetworkScoreManager.class);
- mProvider = new DefaultNetworkRecommendationProvider(mHandler,
+ mProvider = new DefaultNetworkRecommendationProvider(this, mHandler::post,
networkScoreManager, new DefaultNetworkRecommendationProvider.ScoreStorage());
NotificationManager notificationManager = getSystemService(NotificationManager.class);
WifiManager wifiManager = getSystemService(WifiManager.class);
@@ -89,6 +89,12 @@ public class NetworkRecommendationService extends Service {
}
@Override
+ public void onDestroy() {
+ mHandlerThread.quit();
+ super.onDestroy();
+ }
+
+ @Override
protected void dump(FileDescriptor fd, PrintWriter writer, String[] args) {
mProvider.dump(fd, writer, args);
mWifiNotificationController.dump(fd, writer, args);
diff --git a/src/com/android/networkrecommendation/wakeup/WifiWakeupController.java b/src/com/android/networkrecommendation/wakeup/WifiWakeupController.java
index f07f0b6..79d5475 100644
--- a/src/com/android/networkrecommendation/wakeup/WifiWakeupController.java
+++ b/src/com/android/networkrecommendation/wakeup/WifiWakeupController.java
@@ -66,6 +66,7 @@ public class WifiWakeupController {
private final WifiWakeupNetworkSelector mWifiWakeupNetworkSelector;
private final Handler mHandler;
private final WifiWakeupNotificationHelper mWifiWakeupNotificationHelper;
+ private final SettingsFacade mSettingsFacade;
private final AtomicBoolean mStarted;
@VisibleForTesting final ContentObserver mContentObserver;
@@ -81,19 +82,29 @@ public class WifiWakeupController {
public WifiWakeupController(Context context, ContentResolver contentResolver, Looper looper,
WifiManager wifiManager, WifiWakeupNetworkSelector wifiWakeupNetworkSelector,
WifiWakeupNotificationHelper wifiWakeupNotificationHelper) {
+ this(context, contentResolver, looper, wifiManager, wifiWakeupNetworkSelector,
+ wifiWakeupNotificationHelper, new SettingsFacade());
+ }
+
+ @VisibleForTesting
+ WifiWakeupController(Context context, ContentResolver contentResolver, Looper looper,
+ WifiManager wifiManager, WifiWakeupNetworkSelector wifiWakeupNetworkSelector,
+ WifiWakeupNotificationHelper wifiWakeupNotificationHelper,
+ SettingsFacade settingsFacade) {
mContext = context;
mContentResolver = contentResolver;
mHandler = new Handler(looper);
mWifiWakeupNotificationHelper = wifiWakeupNotificationHelper;
+ mSettingsFacade = settingsFacade;
mStarted = new AtomicBoolean(false);
mWifiManager = wifiManager;
mWifiWakeupNetworkSelector = wifiWakeupNetworkSelector;
mContentObserver = new ContentObserver(mHandler) {
@Override
public void onChange(boolean selfChange) {
- mWifiWakeupEnabled = Settings.Global.getInt(mContentResolver,
+ mWifiWakeupEnabled = mSettingsFacade.getInt(mContentResolver,
Settings.Global.WIFI_WAKEUP_ENABLED, 0) == 1;
- mAirplaneModeEnabled = Settings.Global.getInt(mContentResolver,
+ mAirplaneModeEnabled = mSettingsFacade.getInt(mContentResolver,
Settings.Global.AIRPLANE_MODE_ON, 0) == 1;
}
};
@@ -261,4 +272,13 @@ public class WifiWakeupController {
pw.println("mSavedSsidsInLastScan: " + mSavedSsidsInLastScan);
pw.println("mSavedSsidsOnDisable: " + mSavedSsidsOnDisable);
}
+
+ /**
+ * Wrapper around Settings to make testing easier.
+ */
+ public static class SettingsFacade {
+ public int getInt(ContentResolver resolver, String name, int def) {
+ return Settings.Global.getInt(resolver, name, def);
+ }
+ }
}
diff --git a/tests/src/com/android/networkrecommendation/DefaultNetworkRecommendationProviderTest.java b/tests/src/com/android/networkrecommendation/DefaultNetworkRecommendationProviderTest.java
index 5b78310..dc6c673 100644
--- a/tests/src/com/android/networkrecommendation/DefaultNetworkRecommendationProviderTest.java
+++ b/tests/src/com/android/networkrecommendation/DefaultNetworkRecommendationProviderTest.java
@@ -22,6 +22,7 @@ import static org.junit.Assert.assertNull;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
+import android.content.Context;
import android.net.NetworkKey;
import android.net.NetworkRecommendationProvider;
import android.net.NetworkScoreManager;
@@ -134,6 +135,9 @@ public class DefaultNetworkRecommendationProviderTest {
@Mock
private NetworkScoreManager mNetworkScoreManager;
+ @Mock
+ private Context mContext;
+
private DefaultNetworkRecommendationProvider.ScoreStorage mStorage;
private DefaultNetworkRecommendationProvider mProvider;
@@ -141,8 +145,9 @@ public class DefaultNetworkRecommendationProviderTest {
public void setUp() {
MockitoAnnotations.initMocks(this);
mStorage = new DefaultNetworkRecommendationProvider.ScoreStorage();
- mProvider = new DefaultNetworkRecommendationProvider(
- new Handler(Looper.getMainLooper()), mNetworkScoreManager, mStorage);
+ final Handler handler = new Handler(Looper.getMainLooper());
+ mProvider = new DefaultNetworkRecommendationProvider(mContext,
+ handler::post, mNetworkScoreManager, mStorage);
}
@Test
diff --git a/tests/src/com/android/networkrecommendation/wakeup/WifiWakeupControllerTest.java b/tests/src/com/android/networkrecommendation/wakeup/WifiWakeupControllerTest.java
index 3f6d886..72a4571 100644
--- a/tests/src/com/android/networkrecommendation/wakeup/WifiWakeupControllerTest.java
+++ b/tests/src/com/android/networkrecommendation/wakeup/WifiWakeupControllerTest.java
@@ -17,15 +17,16 @@
package com.android.networkrecommendation.wakeup;
import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyInt;
import static org.mockito.Matchers.anyList;
import static org.mockito.Matchers.anyMap;
import static org.mockito.Matchers.anyString;
+import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyZeroInteractions;
import static org.mockito.Mockito.when;
-import android.app.NotificationManager;
import android.content.BroadcastReceiver;
import android.content.ContentResolver;
import android.content.Context;
@@ -43,7 +44,6 @@ import com.android.networkrecommendation.TestUtil;
import com.google.android.collect.Lists;
-import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -92,34 +92,29 @@ public class WifiWakeupControllerTest {
}
@Mock private Context mContext;
- @Mock private NotificationManager mNotificationManager;
@Mock private ContentResolver mContentResolver;
@Mock private WifiWakeupNetworkSelector mWifiWakeupNetworkSelector;
@Mock private WifiWakeupNotificationHelper mWifiWakeupNotificationHelper;
@Mock private WifiManager mWifiManager;
+ @Mock private WifiWakeupController.SettingsFacade mSettingsFacade;
@Captor private ArgumentCaptor<BroadcastReceiver> mBroadcastReceiverCaptor;
private WifiWakeupController mWifiWakeupController;
private BroadcastReceiver mBroadcastReceiver;
- private int mWifiWakeupEnabledOriginalValue;
- private int mAirplaneModeOriginalValue;
-
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
- mWifiWakeupEnabledOriginalValue =
- Settings.Global.getInt(mContentResolver, Settings.Global.WIFI_WAKEUP_ENABLED, 0);
- mAirplaneModeOriginalValue =
- Settings.Global.getInt(mContentResolver, Settings.Global.AIRPLANE_MODE_ON, 0);
- Settings.Global.putInt(mContentResolver, Settings.Global.WIFI_WAKEUP_ENABLED, 1);
- Settings.Global.putInt(mContentResolver, Settings.Global.AIRPLANE_MODE_ON, 0);
when(mWifiManager.getWifiApState()).thenReturn(WifiManager.WIFI_AP_STATE_DISABLED);
+ when(mSettingsFacade.getInt(eq(mContentResolver),
+ eq(Settings.Global.WIFI_WAKEUP_ENABLED), anyInt())).thenReturn(1);
+ when(mSettingsFacade.getInt(eq(mContentResolver),
+ eq(Settings.Global.AIRPLANE_MODE_ON), anyInt())).thenReturn(0);
mWifiWakeupController = new WifiWakeupController(mContext, mContentResolver,
Looper.getMainLooper(), mWifiManager, mWifiWakeupNetworkSelector,
- mWifiWakeupNotificationHelper);
+ mWifiWakeupNotificationHelper, mSettingsFacade);
mWifiWakeupController.start();
verify(mContext).registerReceiver(mBroadcastReceiverCaptor.capture(),
@@ -127,14 +122,6 @@ public class WifiWakeupControllerTest {
mBroadcastReceiver = mBroadcastReceiverCaptor.getValue();
}
- @After
- public void tearDown() {
- Settings.Global.putInt(mContentResolver, Settings.Global.WIFI_WAKEUP_ENABLED,
- mWifiWakeupEnabledOriginalValue);
- Settings.Global.putInt(mContentResolver, Settings.Global.AIRPLANE_MODE_ON,
- mAirplaneModeOriginalValue);
- }
-
/**
* When the NetworkRecommendationService associated with this WifiWakeupController is unbound,
* this WifiWakeupController should no longer function.
@@ -291,7 +278,8 @@ public class WifiWakeupControllerTest {
*/
@Test
public void wifiNotEnabled_userDisablesWifiWakeupFeature() {
- Settings.Global.putInt(mContentResolver, Settings.Global.WIFI_WAKEUP_ENABLED, 0);
+ when(mSettingsFacade.getInt(eq(mContentResolver),
+ eq(Settings.Global.WIFI_WAKEUP_ENABLED), anyInt())).thenReturn(0);
when(mWifiManager.getConfiguredNetworks()).thenReturn(
Lists.newArrayList(SAVED_WIFI_CONFIGURATION, SAVED_WIFI_CONFIGURATION_EXTERNAL));
when(mWifiManager.getScanResults())
@@ -313,7 +301,8 @@ public class WifiWakeupControllerTest {
*/
@Test
public void wifiNotEnabled_userIsInAirplaneMode() {
- Settings.Global.putInt(mContentResolver, Settings.Global.AIRPLANE_MODE_ON, 1);
+ when(mSettingsFacade.getInt(eq(mContentResolver),
+ eq(Settings.Global.AIRPLANE_MODE_ON), anyInt())).thenReturn(1);
when(mWifiManager.getConfiguredNetworks()).thenReturn(
Lists.newArrayList(SAVED_WIFI_CONFIGURATION, SAVED_WIFI_CONFIGURATION_EXTERNAL));
when(mWifiManager.getScanResults())