summaryrefslogtreecommitdiff
path: root/tests/net/java/com/android/server/NsdServiceTest.java
diff options
context:
space:
mode:
authorRemi NGUYEN VAN <reminv@google.com>2021-05-11 13:37:06 +0000
committerRemi NGUYEN VAN <reminv@google.com>2021-05-13 05:55:44 +0000
commit007a886baf9f4e6737f2b4378f68c023dc7e7b31 (patch)
treed2f5cf57127acb12112234e8c841f58805862dc9 /tests/net/java/com/android/server/NsdServiceTest.java
parent8bee21a405b140c9969c40925d5e4c8e7228dbe1 (diff)
Move net unit tests to packages/Connectivity
Move the tests together with packages/Connectivity code, so both can be moved to packages/modules/Connectivity together. Also reorganize unit tests in a unit/ directory, as other tests (integration/, common/ etc.) have been added in tests/net since they were created. This makes the directory structure consistent. Test: atest FrameworksNetTests Bug: 187814163 Ignore-AOSP-First: needs per-branch move for merge conflicts Change-Id: I254ffd1c08ec058d594b4ea55cbae5505f8497cc
Diffstat (limited to 'tests/net/java/com/android/server/NsdServiceTest.java')
-rw-r--r--tests/net/java/com/android/server/NsdServiceTest.java194
1 files changed, 0 insertions, 194 deletions
diff --git a/tests/net/java/com/android/server/NsdServiceTest.java b/tests/net/java/com/android/server/NsdServiceTest.java
deleted file mode 100644
index a90fa6882c25..000000000000
--- a/tests/net/java/com/android/server/NsdServiceTest.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*
- * Copyright (C) 2017 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.server;
-
-import static org.junit.Assert.assertEquals;
-import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.reset;
-import static org.mockito.Mockito.timeout;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.content.ContentResolver;
-import android.content.Context;
-import android.net.nsd.NsdManager;
-import android.net.nsd.NsdServiceInfo;
-import android.os.Handler;
-import android.os.HandlerThread;
-import android.os.Looper;
-import android.os.Message;
-
-import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
-
-import com.android.server.NsdService.DaemonConnection;
-import com.android.server.NsdService.DaemonConnectionSupplier;
-import com.android.server.NsdService.NativeCallbackReceiver;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.ArgumentCaptor;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-
-// TODOs:
-// - test client can send requests and receive replies
-// - test NSD_ON ENABLE/DISABLED listening
-@RunWith(AndroidJUnit4.class)
-@SmallTest
-public class NsdServiceTest {
-
- static final int PROTOCOL = NsdManager.PROTOCOL_DNS_SD;
-
- long mTimeoutMs = 100; // non-final so that tests can adjust the value.
-
- @Mock Context mContext;
- @Mock ContentResolver mResolver;
- @Mock NsdService.NsdSettings mSettings;
- @Mock DaemonConnection mDaemon;
- NativeCallbackReceiver mDaemonCallback;
- HandlerThread mThread;
- TestHandler mHandler;
-
- @Before
- public void setUp() throws Exception {
- MockitoAnnotations.initMocks(this);
- mThread = new HandlerThread("mock-service-handler");
- mThread.start();
- mHandler = new TestHandler(mThread.getLooper());
- when(mContext.getContentResolver()).thenReturn(mResolver);
- }
-
- @After
- public void tearDown() throws Exception {
- if (mThread != null) {
- mThread.quit();
- mThread = null;
- }
- }
-
- @Test
- public void testClientsCanConnectAndDisconnect() {
- when(mSettings.isEnabled()).thenReturn(true);
-
- NsdService service = makeService();
-
- NsdManager client1 = connectClient(service);
- verify(mDaemon, timeout(100).times(1)).start();
-
- NsdManager client2 = connectClient(service);
-
- client1.disconnect();
- client2.disconnect();
-
- verify(mDaemon, timeout(mTimeoutMs).times(1)).stop();
-
- client1.disconnect();
- client2.disconnect();
- }
-
- @Test
- public void testClientRequestsAreGCedAtDisconnection() {
- when(mSettings.isEnabled()).thenReturn(true);
- when(mDaemon.execute(any())).thenReturn(true);
-
- NsdService service = makeService();
- NsdManager client = connectClient(service);
-
- verify(mDaemon, timeout(100).times(1)).start();
-
- NsdServiceInfo request = new NsdServiceInfo("a_name", "a_type");
- request.setPort(2201);
-
- // Client registration request
- NsdManager.RegistrationListener listener1 = mock(NsdManager.RegistrationListener.class);
- client.registerService(request, PROTOCOL, listener1);
- verifyDaemonCommand("register 2 a_name a_type 2201");
-
- // Client discovery request
- NsdManager.DiscoveryListener listener2 = mock(NsdManager.DiscoveryListener.class);
- client.discoverServices("a_type", PROTOCOL, listener2);
- verifyDaemonCommand("discover 3 a_type");
-
- // Client resolve request
- NsdManager.ResolveListener listener3 = mock(NsdManager.ResolveListener.class);
- client.resolveService(request, listener3);
- verifyDaemonCommand("resolve 4 a_name a_type local.");
-
- // Client disconnects
- client.disconnect();
- verify(mDaemon, timeout(mTimeoutMs).times(1)).stop();
-
- // checks that request are cleaned
- verifyDaemonCommands("stop-register 2", "stop-discover 3", "stop-resolve 4");
-
- client.disconnect();
- }
-
- NsdService makeService() {
- DaemonConnectionSupplier supplier = (callback) -> {
- mDaemonCallback = callback;
- return mDaemon;
- };
- NsdService service = new NsdService(mContext, mSettings, mHandler, supplier);
- verify(mDaemon, never()).execute(any(String.class));
- return service;
- }
-
- NsdManager connectClient(NsdService service) {
- return new NsdManager(mContext, service);
- }
-
- void verifyDaemonCommands(String... wants) {
- verifyDaemonCommand(String.join(" ", wants), wants.length);
- }
-
- void verifyDaemonCommand(String want) {
- verifyDaemonCommand(want, 1);
- }
-
- void verifyDaemonCommand(String want, int n) {
- ArgumentCaptor<Object> argumentsCaptor = ArgumentCaptor.forClass(Object.class);
- verify(mDaemon, timeout(mTimeoutMs).times(n)).execute(argumentsCaptor.capture());
- String got = "";
- for (Object o : argumentsCaptor.getAllValues()) {
- got += o + " ";
- }
- assertEquals(want, got.trim());
- // rearm deamon for next command verification
- reset(mDaemon);
- when(mDaemon.execute(any())).thenReturn(true);
- }
-
- public static class TestHandler extends Handler {
- public Message lastMessage;
-
- TestHandler(Looper looper) {
- super(looper);
- }
-
- @Override
- public void handleMessage(Message msg) {
- lastMessage = obtainMessage();
- lastMessage.copyFrom(msg);
- }
- }
-}