Create the MdnsDiscoveryManager
Create the MdnsDiscoveryManager for mdns discovery and resolution if the feature is enable. Bug: 254166302 Test: atest FrameworksNetTests CtsNetTestCases Change-Id: I4d7591b50cb06f0efcc0dde9834b775c513cceff
This commit is contained in:
@@ -18,6 +18,8 @@ package com.android.server;
|
||||
|
||||
import static android.net.nsd.NsdManager.FAILURE_INTERNAL_ERROR;
|
||||
|
||||
import static com.android.testutils.ContextUtils.mockService;
|
||||
|
||||
import static libcore.junit.util.compat.CoreCompatChangeRule.DisableCompatChanges;
|
||||
import static libcore.junit.util.compat.CoreCompatChangeRule.EnableCompatChanges;
|
||||
|
||||
@@ -67,6 +69,7 @@ import android.os.Message;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.test.filters.SmallTest;
|
||||
|
||||
import com.android.server.NsdService.Dependencies;
|
||||
import com.android.testutils.DevSdkIgnoreRule;
|
||||
import com.android.testutils.DevSdkIgnoreRunner;
|
||||
import com.android.testutils.HandlerUtils;
|
||||
@@ -112,6 +115,7 @@ public class NsdServiceTest {
|
||||
@Mock Context mContext;
|
||||
@Mock ContentResolver mResolver;
|
||||
@Mock MDnsManager mMockMDnsM;
|
||||
@Mock Dependencies mDeps;
|
||||
HandlerThread mThread;
|
||||
TestHandler mHandler;
|
||||
NsdService mService;
|
||||
@@ -133,9 +137,7 @@ public class NsdServiceTest {
|
||||
mThread.start();
|
||||
mHandler = new TestHandler(mThread.getLooper());
|
||||
when(mContext.getContentResolver()).thenReturn(mResolver);
|
||||
doReturn(MDnsManager.MDNS_SERVICE).when(mContext)
|
||||
.getSystemServiceName(MDnsManager.class);
|
||||
doReturn(mMockMDnsM).when(mContext).getSystemService(MDnsManager.MDNS_SERVICE);
|
||||
mockService(mContext, MDnsManager.class, MDnsManager.MDNS_SERVICE, mMockMDnsM);
|
||||
if (mContext.getSystemService(MDnsManager.class) == null) {
|
||||
// Test is using mockito-extended
|
||||
doCallRealMethod().when(mContext).getSystemService(MDnsManager.class);
|
||||
@@ -146,6 +148,7 @@ public class NsdServiceTest {
|
||||
doReturn(true).when(mMockMDnsM).discover(anyInt(), anyString(), anyInt());
|
||||
doReturn(true).when(mMockMDnsM).resolve(
|
||||
anyInt(), anyString(), anyString(), anyString(), anyInt());
|
||||
doReturn(false).when(mDeps).isMdnsDiscoveryManagerEnabled(any(Context.class));
|
||||
|
||||
mService = makeService();
|
||||
}
|
||||
@@ -555,12 +558,27 @@ public class NsdServiceTest {
|
||||
anyInt()/* interfaceIdx */);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMdnsDiscoveryManagerFeature() {
|
||||
// Create NsdService w/o feature enabled.
|
||||
connectClient(mService);
|
||||
verify(mDeps, never()).makeMdnsDiscoveryManager(any(), any());
|
||||
verify(mDeps, never()).makeMdnsSocketProvider(any(), any());
|
||||
|
||||
// Create NsdService again w/ feature enabled.
|
||||
doReturn(true).when(mDeps).isMdnsDiscoveryManagerEnabled(any(Context.class));
|
||||
makeService();
|
||||
verify(mDeps).makeMdnsDiscoveryManager(any(), any());
|
||||
verify(mDeps).makeMdnsSocketProvider(any(), any());
|
||||
}
|
||||
|
||||
|
||||
private void waitForIdle() {
|
||||
HandlerUtils.waitForIdle(mHandler, TIMEOUT_MS);
|
||||
}
|
||||
|
||||
NsdService makeService() {
|
||||
final NsdService service = new NsdService(mContext, mHandler, CLEANUP_DELAY_MS) {
|
||||
final NsdService service = new NsdService(mContext, mHandler, CLEANUP_DELAY_MS, mDeps) {
|
||||
@Override
|
||||
public INsdServiceConnector connect(INsdManagerCallback baseCb) {
|
||||
// Wrap the callback in a transparent mock, to mock asBinder returning a
|
||||
|
||||
Reference in New Issue
Block a user