diff options
| author | 2017-05-26 00:34:03 +0000 | |
|---|---|---|
| committer | 2017-05-26 00:34:05 +0000 | |
| commit | 0388f0e47b9853437cdeebafc77d38e86606554b (patch) | |
| tree | 64977dd5aa82375fa292aab2d92cc377e07f2f66 | |
| parent | 25ce41cf4c54eb2be721c7cdaede5d866181ffa0 (diff) | |
| parent | 03f6e1d18a495fb2fe691db7537e944aba1f13cc (diff) | |
Merge changes If4deb106,Ib25d7658
* changes:
NsdService: do not use ContentResolver directly
@Ignore ConnectivityServiceTest#testRequestBenchmark
| -rw-r--r-- | services/core/java/com/android/server/NsdService.java | 20 | ||||
| -rw-r--r-- | tests/net/java/com/android/server/ConnectivityServiceTest.java | 2 |
2 files changed, 17 insertions, 5 deletions
diff --git a/services/core/java/com/android/server/NsdService.java b/services/core/java/com/android/server/NsdService.java index 2158f60089d7..5f6bd59453ed 100644 --- a/services/core/java/com/android/server/NsdService.java +++ b/services/core/java/com/android/server/NsdService.java @@ -21,6 +21,7 @@ import android.content.ContentResolver; import android.content.Intent; import android.content.pm.PackageManager; import android.database.ContentObserver; +import android.net.Uri; import android.net.nsd.NsdServiceInfo; import android.net.nsd.DnsSdTxtRecord; import android.net.nsd.INsdManager; @@ -96,16 +97,15 @@ public class NsdService extends INsdManager.Stub { * Observes the NSD on/off setting, and takes action when changed. */ private void registerForNsdSetting() { - ContentObserver contentObserver = new ContentObserver(this.getHandler()) { + final ContentObserver contentObserver = new ContentObserver(this.getHandler()) { @Override public void onChange(boolean selfChange) { notifyEnabled(isNsdEnabled()); } }; - mContext.getContentResolver().registerContentObserver( - Settings.Global.getUriFor(Settings.Global.NSD_ON), - false, contentObserver); + final Uri uri = Settings.Global.getUriFor(Settings.Global.NSD_ON); + mNsdSettings.registerContentObserver(uri, contentObserver); } NsdStateMachine(String name, Handler handler) { @@ -885,13 +885,18 @@ public class NsdService extends INsdManager.Stub { } } + /** + * Interface which encapsulates dependencies of NsdService that are hard to mock, hard to + * override, or have side effects on global state in unit tests. + */ @VisibleForTesting public interface NsdSettings { boolean isEnabled(); void putEnabledStatus(boolean isEnabled); + void registerContentObserver(Uri uri, ContentObserver observer); static NsdSettings makeDefault(Context context) { - ContentResolver resolver = context.getContentResolver(); + final ContentResolver resolver = context.getContentResolver(); return new NsdSettings() { @Override public boolean isEnabled() { @@ -902,6 +907,11 @@ public class NsdService extends INsdManager.Stub { public void putEnabledStatus(boolean isEnabled) { Settings.Global.putInt(resolver, Settings.Global.NSD_ON, isEnabled ? 1 : 0); } + + @Override + public void registerContentObserver(Uri uri, ContentObserver observer) { + resolver.registerContentObserver(uri, false, observer); + } }; } } diff --git a/tests/net/java/com/android/server/ConnectivityServiceTest.java b/tests/net/java/com/android/server/ConnectivityServiceTest.java index 00b0f980d3cf..4fdbfe75da28 100644 --- a/tests/net/java/com/android/server/ConnectivityServiceTest.java +++ b/tests/net/java/com/android/server/ConnectivityServiceTest.java @@ -97,6 +97,7 @@ import com.android.server.connectivity.NetworkMonitor; import com.android.server.connectivity.NetworkMonitor.CaptivePortalProbeResult; import com.android.server.net.NetworkPinner; +import org.junit.Ignore; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.mockito.Spy; @@ -2409,6 +2410,7 @@ public class ConnectivityServiceTest extends AndroidTestCase { mCm.unregisterNetworkCallback(fgCallback); } + @Ignore // This test has instrinsic chances of spurious failures: ignore for continuous testing. @SmallTest public void testRequestBenchmark() throws Exception { // TODO: turn this unit test into a real benchmarking test. |