WifiManagerTest: Test for new privileged permission
Add a new test to ensure that the NETWORK_CARRIER_PROVISIONING is only
granted to one app.
Bug: 129401919
Test: atest WifiManagerTest
Change-Id: Id2e722d63b02d9cee718dd3af49e9ef113bd5ffb
diff --git a/tests/cts/net/src/android/net/wifi/cts/WifiManagerTest.java b/tests/cts/net/src/android/net/wifi/cts/WifiManagerTest.java
index 93795b2..1d66682 100644
--- a/tests/cts/net/src/android/net/wifi/cts/WifiManagerTest.java
+++ b/tests/cts/net/src/android/net/wifi/cts/WifiManagerTest.java
@@ -882,6 +882,30 @@
}
/**
+ * Verify that the {@link android.Manifest.permission#NETWORK_CARRIER_PROVISIONING} permission
+ * is held by at most one application.
+ */
+ public void testNetworkCarrierProvisioningPermission() {
+ final PackageManager pm = getContext().getPackageManager();
+
+ final List<PackageInfo> holding = pm.getPackagesHoldingPermissions(new String[] {
+ android.Manifest.permission.NETWORK_CARRIER_PROVISIONING
+ }, PackageManager.MATCH_UNINSTALLED_PACKAGES);
+
+ List<String> uniquePackageNames = holding
+ .stream()
+ .map(pi -> pi.packageName)
+ .distinct()
+ .collect(Collectors.toList());
+
+ if (uniquePackageNames.size() > 1) {
+ fail("The NETWORK_CARRIER_PROVISIONING permission must not be held by more than one "
+ + "application, but is held by " + uniquePackageNames.size() + " applications: "
+ + String.join(", ", uniquePackageNames));
+ }
+ }
+
+ /**
* Verify that the {@link android.Manifest.permission#WIFI_UPDATE_USABILITY_STATS_SCORE}
* permission is held by at most one application.
*/