summaryrefslogtreecommitdiff
path: root/tests/unit/java/com/android/server/ConnectivityServiceTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit/java/com/android/server/ConnectivityServiceTest.java')
-rw-r--r--tests/unit/java/com/android/server/ConnectivityServiceTest.java36
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/unit/java/com/android/server/ConnectivityServiceTest.java b/tests/unit/java/com/android/server/ConnectivityServiceTest.java
index 4c768030f8..a4ee78f3ce 100644
--- a/tests/unit/java/com/android/server/ConnectivityServiceTest.java
+++ b/tests/unit/java/com/android/server/ConnectivityServiceTest.java
@@ -16,6 +16,7 @@
package com.android.server;
+import static android.Manifest.permission.ACCESS_NETWORK_STATE;
import static android.Manifest.permission.CHANGE_NETWORK_STATE;
import static android.Manifest.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS;
import static android.Manifest.permission.CONTROL_OEM_PAID_NETWORK_PREFERENCE;
@@ -269,6 +270,7 @@ import android.net.RouteInfo;
import android.net.RouteInfoParcel;
import android.net.SocketKeepalive;
import android.net.TelephonyNetworkSpecifier;
+import android.net.TetheringManager;
import android.net.TransportInfo;
import android.net.UidRange;
import android.net.UidRangeParcel;
@@ -543,6 +545,7 @@ public class ConnectivityServiceTest {
@Mock PacProxyManager mPacProxyManager;
@Mock BpfNetMaps mBpfNetMaps;
@Mock CarrierPrivilegeAuthenticator mCarrierPrivilegeAuthenticator;
+ @Mock TetheringManager mTetheringManager;
// BatteryStatsManager is final and cannot be mocked with regular mockito, so just mock the
// underlying binder calls.
@@ -663,6 +666,7 @@ public class ConnectivityServiceTest {
if (Context.NETWORK_STATS_SERVICE.equals(name)) return mStatsManager;
if (Context.BATTERY_STATS_SERVICE.equals(name)) return mBatteryStatsManager;
if (Context.PAC_PROXY_SERVICE.equals(name)) return mPacProxyManager;
+ if (Context.TETHERING_SERVICE.equals(name)) return mTetheringManager;
return super.getSystemService(name);
}
@@ -15699,4 +15703,36 @@ public class ConnectivityServiceTest {
mCm.reportNetworkConnectivity(mWiFiNetworkAgent.getNetwork(), false);
mDefaultNetworkCallback.expectAvailableCallbacksValidated(mCellNetworkAgent);
}
+
+ @Test
+ public void testLegacyTetheringApiGuardWithProperPermission() throws Exception {
+ final String testIface = "test0";
+ mServiceContext.setPermission(ACCESS_NETWORK_STATE, PERMISSION_DENIED);
+ assertThrows(SecurityException.class, () -> mService.getLastTetherError(testIface));
+ assertThrows(SecurityException.class, () -> mService.getTetherableIfaces());
+ assertThrows(SecurityException.class, () -> mService.getTetheredIfaces());
+ assertThrows(SecurityException.class, () -> mService.getTetheringErroredIfaces());
+ assertThrows(SecurityException.class, () -> mService.getTetherableUsbRegexs());
+ assertThrows(SecurityException.class, () -> mService.getTetherableWifiRegexs());
+
+ withPermission(ACCESS_NETWORK_STATE, () -> {
+ mService.getLastTetherError(testIface);
+ verify(mTetheringManager).getLastTetherError(testIface);
+
+ mService.getTetherableIfaces();
+ verify(mTetheringManager).getTetherableIfaces();
+
+ mService.getTetheredIfaces();
+ verify(mTetheringManager).getTetheredIfaces();
+
+ mService.getTetheringErroredIfaces();
+ verify(mTetheringManager).getTetheringErroredIfaces();
+
+ mService.getTetherableUsbRegexs();
+ verify(mTetheringManager).getTetherableUsbRegexs();
+
+ mService.getTetherableWifiRegexs();
+ verify(mTetheringManager).getTetherableWifiRegexs();
+ });
+ }
}