diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-10-09 20:44:47 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2022-10-09 20:44:47 +0000 |
commit | 6d3dcc53e77fb3c17a0c1743ac74e348580c702e (patch) | |
tree | 961d0775b04f1821476cfd25bc619e2658a24887 | |
parent | 5e46a744d495347c0c90d362fad504f217fd0bdc (diff) | |
parent | aa39e1835b02a3295f730131a3056491c28973d8 (diff) | |
download | cts-sparse-9158713-L90200000957168129.tar.gz |
Merge "Snap for 9153255 from 3a256b05c025ba50b9fc6e7092abdb588e8304cb to android13-tests-release" into android13-tests-releasesparse-9158713-L90200000957168129
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)); + } } |