From 45984684aa2688924e10ea95c3951ece6c9b3f0b Mon Sep 17 00:00:00 2001 From: Paul Jensen Date: Tue, 22 Sep 2015 08:07:46 -0400 Subject: [PATCH] CTS: verify ConnectivityManager.requestNetwork throws for restricted networks Bug:21900139 Change-Id: Ib026bc4e66437f015729bdf7c923145ffa41fbde --- .../net/cts/ConnectivityManagerTest.java | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tests/cts/net/src/android/net/cts/ConnectivityManagerTest.java b/tests/cts/net/src/android/net/cts/ConnectivityManagerTest.java index d79ecdddb4..eeae257a26 100644 --- a/tests/cts/net/src/android/net/cts/ConnectivityManagerTest.java +++ b/tests/cts/net/src/android/net/cts/ConnectivityManagerTest.java @@ -16,16 +16,21 @@ package android.net.cts; +import static android.net.NetworkCapabilities.NET_CAPABILITY_IMS; +import static android.net.NetworkCapabilities.NET_CAPABILITY_INTERNET; + import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.pm.PackageManager; import android.net.ConnectivityManager; +import android.net.ConnectivityManager.NetworkCallback; import android.net.NetworkConfig; import android.net.NetworkInfo; import android.net.NetworkInfo.DetailedState; import android.net.NetworkInfo.State; +import android.net.NetworkRequest; import android.net.wifi.WifiManager; import android.test.AndroidTestCase; import android.util.Log; @@ -334,4 +339,23 @@ public class ConnectivityManagerTest extends AndroidTestCase { return mReceiveLatch.await(30, TimeUnit.SECONDS); } } + + /** Verify restricted networks cannot be requested. */ + public void testRestrictedNetworks() { + // Verify we can request unrestricted networks: + NetworkRequest request = new NetworkRequest.Builder() + .addCapability(NET_CAPABILITY_INTERNET).build(); + NetworkCallback callback = new NetworkCallback(); + mCm.requestNetwork(request, callback); + mCm.unregisterNetworkCallback(callback); + // Verify we cannot request restricted networks: + request = new NetworkRequest.Builder().addCapability(NET_CAPABILITY_IMS).build(); + callback = new NetworkCallback(); + try { + mCm.requestNetwork(request, callback); + fail("No exception thrown when restricted network requested."); + } catch (SecurityException e) { + // Expected. + } + } }