From 3ec710f6f03eb1edd05c0a48a992f79a6ac7f925 Mon Sep 17 00:00:00 2001 From: Hugo Benichi Date: Fri, 28 Apr 2017 11:01:22 +0900 Subject: [PATCH] NsdManager: unit test coverage for servive registration This patch adds test coverage for NsdManager#registerService() and NsdManager#unregisterService(). This test shows a potential defect in the api: if unregisterService() fails, the associated listener is always unregistered from NsdManager. If the service initially registered is still registered, this potentially make it impossible to unregister. Test: added new unit test Bug: 37013369, 33298084 Change-Id: Ia089b6d2f2a349907a8b29d9a3acd7f59e177887 --- core/java/android/net/nsd/NsdManager.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/java/android/net/nsd/NsdManager.java b/core/java/android/net/nsd/NsdManager.java index 83c469103f..4c33c36dc1 100644 --- a/core/java/android/net/nsd/NsdManager.java +++ b/core/java/android/net/nsd/NsdManager.java @@ -393,6 +393,8 @@ public final class NsdManager { ((RegistrationListener) listener).onUnregistrationFailed(ns, message.arg1); break; case UNREGISTER_SERVICE_SUCCEEDED: + // TODO: do not unregister listener until service is unregistered, or provide + // alternative way for unregistering ? removeListener(message.arg2); ((RegistrationListener) listener).onServiceUnregistered(ns); break;