summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2022-10-09 20:44:47 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2022-10-09 20:44:47 +0000
commit6d3dcc53e77fb3c17a0c1743ac74e348580c702e (patch)
tree961d0775b04f1821476cfd25bc619e2658a24887
parent5e46a744d495347c0c90d362fad504f217fd0bdc (diff)
parentaa39e1835b02a3295f730131a3056491c28973d8 (diff)
downloadcts-sparse-9158713-L90200000957168129.tar.gz
Merge "Snap for 9153255 from 3a256b05c025ba50b9fc6e7092abdb588e8304cb to android13-tests-release" into android13-tests-releasesparse-9158713-L90200000957168129
-rw-r--r--hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/AlwaysOnVpnMultiStageTest.java2
-rw-r--r--hostsidetests/statsdatom/src/android/cts/statsdatom/appops/AppOpsTests.java3
-rw-r--r--tests/mediapc/common/src/android/mediapc/cts/common/Utils.java15
-rwxr-xr-xtests/tests/telephony/current/src/android/telephony/cts/SubscriptionManagerTest.java86
4 files changed, 70 insertions, 36 deletions
diff --git a/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/AlwaysOnVpnMultiStageTest.java b/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/AlwaysOnVpnMultiStageTest.java
index 5e3e697fec6..7dfddee996b 100644
--- a/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/AlwaysOnVpnMultiStageTest.java
+++ b/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/AlwaysOnVpnMultiStageTest.java
@@ -34,7 +34,7 @@ import java.util.concurrent.TimeUnit;
*/
public class AlwaysOnVpnMultiStageTest extends BaseDeviceAdminTest {
- private final int MAX_NUMBER_OF_ATTEMPTS = 5;
+ private final int MAX_NUMBER_OF_ATTEMPTS = 10;
public void testAlwaysOnSet() throws Exception {
// Setup always-on vpn
diff --git a/hostsidetests/statsdatom/src/android/cts/statsdatom/appops/AppOpsTests.java b/hostsidetests/statsdatom/src/android/cts/statsdatom/appops/AppOpsTests.java
index cd8c063680d..f07f9d34e64 100644
--- a/hostsidetests/statsdatom/src/android/cts/statsdatom/appops/AppOpsTests.java
+++ b/hostsidetests/statsdatom/src/android/cts/statsdatom/appops/AppOpsTests.java
@@ -38,7 +38,8 @@ import java.util.Map;
import java.util.Set;
public class AppOpsTests extends DeviceTestCase implements IBuildReceiver {
- private static final int NUM_APP_OPS = 116;
+ private static final int NUM_APP_OPS = AtomsProto.AttributedAppOps.getDefaultInstance().getOp().
+ getDescriptorForType().getValues().size() - 1;
private static final int APP_OP_RECORD_AUDIO = 27;
private static final int APP_OP_RECORD_AUDIO_HOTWORD = 102;
diff --git a/tests/mediapc/common/src/android/mediapc/cts/common/Utils.java b/tests/mediapc/common/src/android/mediapc/cts/common/Utils.java
index 75698c2fadb..418b304a279 100644
--- a/tests/mediapc/common/src/android/mediapc/cts/common/Utils.java
+++ b/tests/mediapc/common/src/android/mediapc/cts/common/Utils.java
@@ -24,15 +24,16 @@ import static org.junit.Assume.assumeTrue;
import android.app.ActivityManager;
import android.content.Context;
import android.content.pm.PackageManager;
+import android.graphics.Rect;
import android.media.MediaCodec;
import android.media.MediaCodecInfo;
import android.media.MediaCodecInfo.VideoCapabilities.PerformancePoint;
import android.media.MediaFormat;
import android.os.Build;
import android.os.SystemProperties;
-import android.util.DisplayMetrics;
import android.util.Log;
import android.view.WindowManager;
+import android.view.WindowMetrics;
import androidx.test.platform.app.InstrumentationRegistry;
@@ -81,14 +82,16 @@ public class Utils {
Log.d(TAG, "performance class is " + sPc);
Context context = InstrumentationRegistry.getInstrumentation().getContext();
- DisplayMetrics metrics = new DisplayMetrics();
// When used from ItsService, context will be null
if (context != null) {
WindowManager windowManager = context.getSystemService(WindowManager.class);
- windowManager.getDefaultDisplay().getMetrics(metrics);
- DISPLAY_DPI = metrics.densityDpi;
- DISPLAY_LONG_PIXELS = Math.max(metrics.widthPixels, metrics.heightPixels);
- DISPLAY_SHORT_PIXELS = Math.min(metrics.widthPixels, metrics.heightPixels);
+ WindowMetrics metrics = windowManager.getMaximumWindowMetrics();
+ Rect displayBounds = metrics.getBounds();
+ int widthPixels = displayBounds.width();
+ int heightPixels = displayBounds.height();
+ DISPLAY_DPI = context.getResources().getConfiguration().densityDpi;
+ DISPLAY_LONG_PIXELS = Math.max(widthPixels, heightPixels);
+ DISPLAY_SHORT_PIXELS = Math.min(widthPixels, heightPixels);
ActivityManager activityManager = context.getSystemService(ActivityManager.class);
ActivityManager.MemoryInfo memoryInfo = new ActivityManager.MemoryInfo();
diff --git a/tests/tests/telephony/current/src/android/telephony/cts/SubscriptionManagerTest.java b/tests/tests/telephony/current/src/android/telephony/cts/SubscriptionManagerTest.java
index ce92c8cefbd..b40118bd45c 100755
--- a/tests/tests/telephony/current/src/android/telephony/cts/SubscriptionManagerTest.java
+++ b/tests/tests/telephony/current/src/android/telephony/cts/SubscriptionManagerTest.java
@@ -33,6 +33,7 @@ import static org.junit.Assert.fail;
import static org.junit.Assume.assumeTrue;
import android.annotation.Nullable;
+import android.app.AppOpsManager;
import android.app.UiAutomation;
import android.content.BroadcastReceiver;
import android.content.Context;
@@ -49,6 +50,7 @@ import android.net.Uri;
import android.os.Looper;
import android.os.ParcelUuid;
import android.os.PersistableBundle;
+import android.os.Process;
import android.telephony.CarrierConfigManager;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
@@ -63,6 +65,7 @@ import android.util.Log;
import androidx.test.InstrumentationRegistry;
+import com.android.compatibility.common.util.ApiTest;
import com.android.compatibility.common.util.CarrierPrivilegeUtils;
import com.android.compatibility.common.util.PropertyUtil;
import com.android.compatibility.common.util.ShellIdentityUtils;
@@ -670,6 +673,7 @@ public class SubscriptionManagerTest {
}
@Test
+ @ApiTest(apis = "android.telephony.SubscriptionManager#getSubscriptionsInGroup")
public void testSubscriptionGroupingWithPermission() throws Exception {
// Set subscription group with current sub Id.
List<Integer> subGroup = new ArrayList();
@@ -680,8 +684,14 @@ public class SubscriptionManagerTest {
// Getting subscriptions in group.
List<SubscriptionInfo> infoList = mSm.getSubscriptionsInGroup(uuid);
assertNotNull(infoList);
+ assertTrue(infoList.isEmpty());
+
+ // has the READ_PRIVILEGED_PHONE_STATE permission
+ infoList = ShellIdentityUtils.invokeMethodWithShellPermissions(mSm,
+ (sm) -> sm.getSubscriptionsInGroup(uuid), READ_PRIVILEGED_PHONE_STATE);
+ assertNotNull(infoList);
assertEquals(1, infoList.size());
- assertNull(infoList.get(0).getGroupUuid());
+ assertEquals(uuid, infoList.get(0).getGroupUuid());
infoList = ShellIdentityUtils.invokeMethodWithShellPermissions(mSm,
(sm) -> sm.getSubscriptionsInGroup(uuid));
@@ -698,33 +708,40 @@ public class SubscriptionManagerTest {
}
availableInfoList = ShellIdentityUtils.invokeMethodWithShellPermissions(mSm,
(sm) -> sm.getAvailableSubscriptionInfoList());
- if (availableInfoList.size() > 1) {
- List<Integer> availableSubGroup = availableInfoList.stream()
- .map(info -> info.getSubscriptionId())
- .filter(subId -> subId != mSubId)
- .collect(Collectors.toList());
+ // has the OPSTR_READ_DEVICE_IDENTIFIERS permission
+ try {
+ setIdentifierAccess(true);
+ if (availableInfoList.size() > 1) {
+ List<Integer> availableSubGroup = availableInfoList.stream()
+ .map(info -> info.getSubscriptionId())
+ .filter(subId -> subId != mSubId)
+ .collect(Collectors.toList());
+
+ ShellIdentityUtils.invokeMethodWithShellPermissionsNoReturn(mSm,
+ (sm) -> sm.addSubscriptionsIntoGroup(availableSubGroup, uuid));
+
+ infoList = mSm.getSubscriptionsInGroup(uuid);
+ assertNotNull(infoList);
+ assertEquals(availableInfoList.size(), infoList.size());
+
+ ShellIdentityUtils.invokeMethodWithShellPermissionsNoReturn(mSm,
+ (sm) -> sm.removeSubscriptionsFromGroup(availableSubGroup, uuid));
+ }
+ // Remove from subscription group with current sub Id.
ShellIdentityUtils.invokeMethodWithShellPermissionsNoReturn(mSm,
- (sm) -> sm.addSubscriptionsIntoGroup(availableSubGroup, uuid));
+ (sm) -> sm.removeSubscriptionsFromGroup(subGroup, uuid));
infoList = mSm.getSubscriptionsInGroup(uuid);
assertNotNull(infoList);
- assertEquals(availableInfoList.size(), infoList.size());
-
- ShellIdentityUtils.invokeMethodWithShellPermissionsNoReturn(mSm,
- (sm) -> sm.removeSubscriptionsFromGroup(availableSubGroup, uuid));
+ assertTrue(infoList.isEmpty());
+ } finally {
+ setIdentifierAccess(false);
}
-
- // Remove from subscription group with current sub Id.
- ShellIdentityUtils.invokeMethodWithShellPermissionsNoReturn(mSm,
- (sm) -> sm.removeSubscriptionsFromGroup(subGroup, uuid));
-
- infoList = mSm.getSubscriptionsInGroup(uuid);
- assertNotNull(infoList);
- assertTrue(infoList.isEmpty());
}
@Test
+ @ApiTest(apis = "android.telephony.SubscriptionManager#getSubscriptionsInGroup")
public void testAddSubscriptionIntoNewGroupWithPermission() throws Exception {
// Set subscription group with current sub Id.
List<Integer> subGroup = new ArrayList();
@@ -733,23 +750,27 @@ public class SubscriptionManagerTest {
ShellIdentityUtils.invokeMethodWithShellPermissionsNoReturn(mSm,
(sm) -> sm.addSubscriptionsIntoGroup(subGroup, uuid));
- // Getting subscriptions in group.
List<SubscriptionInfo> infoList = mSm.getSubscriptionsInGroup(uuid);
assertNotNull(infoList);
- assertEquals(1, infoList.size());
- assertNull(infoList.get(0).getGroupUuid());
+ assertTrue(infoList.isEmpty());
- infoList = ShellIdentityUtils.invokeMethodWithShellPermissions(mSm,
- (sm) -> sm.getSubscriptionsInGroup(uuid));
- assertNotNull(infoList);
- assertEquals(1, infoList.size());
- assertEquals(uuid, infoList.get(0).getGroupUuid());
+ // Getting subscriptions in group.
+ try {
+ setIdentifierAccess(true);
+ infoList = mSm.getSubscriptionsInGroup(uuid);
+ assertNotNull(infoList);
+ assertEquals(1, infoList.size());
+ assertEquals(uuid, infoList.get(0).getGroupUuid());
+ } finally {
+ setIdentifierAccess(false);
+ }
// Remove from subscription group with current sub Id.
ShellIdentityUtils.invokeMethodWithShellPermissionsNoReturn(mSm,
(sm) -> sm.removeSubscriptionsFromGroup(subGroup, uuid));
- infoList = mSm.getSubscriptionsInGroup(uuid);
+ infoList = ShellIdentityUtils.invokeMethodWithShellPermissions(mSm,
+ (sm) -> sm.getSubscriptionsInGroup(uuid));
assertNotNull(infoList);
assertTrue(infoList.isEmpty());
}
@@ -1459,4 +1480,13 @@ public class SubscriptionManagerTest {
return validCarrier && validNetworkType && validCapabilities;
}
+
+ private void setIdentifierAccess(boolean allowed) {
+ String op = AppOpsManager.OPSTR_READ_DEVICE_IDENTIFIERS;
+ AppOpsManager appOpsManager = InstrumentationRegistry.getContext().getSystemService(
+ AppOpsManager.class);
+ int mode = allowed ? AppOpsManager.MODE_ALLOWED : AppOpsManager.opToDefaultMode(op);
+ ShellIdentityUtils.invokeMethodWithShellPermissionsNoReturn(
+ appOpsManager, (appOps) -> appOps.setUidMode(op, Process.myUid(), mode));
+ }
}