ConnectivityManager: unit test for argument validation

Bug: 36701874, 37107940
Test: new test passes
Change-Id: Ie762ce758b3d94052b7438a67fc55bef4690cbbb
This commit is contained in:
Hugo Benichi
2017-05-09 14:09:02 +09:00
parent a590ab8373
commit 7abd43f6fb

View File

@@ -45,6 +45,7 @@ import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
import android.app.PendingIntent;
import android.net.ConnectivityManager; import android.net.ConnectivityManager;
import android.net.NetworkCapabilities; import android.net.NetworkCapabilities;
import android.content.Context; import android.content.Context;
@@ -66,8 +67,6 @@ import org.mockito.ArgumentCaptor;
import org.mockito.Mock; import org.mockito.Mock;
import org.mockito.MockitoAnnotations; import org.mockito.MockitoAnnotations;
@RunWith(AndroidJUnit4.class) @RunWith(AndroidJUnit4.class)
@SmallTest @SmallTest
public class ConnectivityManagerTest { public class ConnectivityManagerTest {
@@ -296,6 +295,43 @@ public class ConnectivityManagerTest {
manager.requestNetwork(request, callback); manager.requestNetwork(request, callback);
} }
@Test
public void testArgumentValidation() throws Exception {
ConnectivityManager manager = new ConnectivityManager(mCtx, mService);
NetworkRequest request = mock(NetworkRequest.class);
NetworkCallback callback = mock(NetworkCallback.class);
Handler handler = mock(Handler.class);
NetworkCallback nullCallback = null;
PendingIntent nullIntent = null;
mustFail(() -> { manager.requestNetwork(null, callback); });
mustFail(() -> { manager.requestNetwork(request, nullCallback); });
mustFail(() -> { manager.requestNetwork(request, callback, null); });
mustFail(() -> { manager.requestNetwork(request, callback, -1); });
mustFail(() -> { manager.requestNetwork(request, nullIntent); });
mustFail(() -> { manager.registerNetworkCallback(null, callback, handler); });
mustFail(() -> { manager.registerNetworkCallback(request, null, handler); });
mustFail(() -> { manager.registerNetworkCallback(request, callback, null); });
mustFail(() -> { manager.registerNetworkCallback(request, nullIntent); });
mustFail(() -> { manager.registerDefaultNetworkCallback(null, handler); });
mustFail(() -> { manager.registerDefaultNetworkCallback(callback, null); });
mustFail(() -> { manager.unregisterNetworkCallback(nullCallback); });
mustFail(() -> { manager.unregisterNetworkCallback(nullIntent); });
mustFail(() -> { manager.releaseNetworkRequest(nullIntent); });
}
static void mustFail(Runnable fn) {
try {
fn.run();
fail();
} catch (Exception expected) {
}
}
static Message makeMessage(NetworkRequest req, int messageType) { static Message makeMessage(NetworkRequest req, int messageType) {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putParcelable(NetworkRequest.class.getSimpleName(), req); bundle.putParcelable(NetworkRequest.class.getSimpleName(), req);