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
This commit is contained in:
Hugo Benichi
2017-04-28 11:01:22 +09:00
parent 6d70644998
commit 3ec710f6f0

View File

@@ -393,6 +393,8 @@ public final class NsdManager {
((RegistrationListener) listener).onUnregistrationFailed(ns, message.arg1); ((RegistrationListener) listener).onUnregistrationFailed(ns, message.arg1);
break; break;
case UNREGISTER_SERVICE_SUCCEEDED: case UNREGISTER_SERVICE_SUCCEEDED:
// TODO: do not unregister listener until service is unregistered, or provide
// alternative way for unregistering ?
removeListener(message.arg2); removeListener(message.arg2);
((RegistrationListener) listener).onServiceUnregistered(ns); ((RegistrationListener) listener).onServiceUnregistered(ns);
break; break;