diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-02-02 20:40:57 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2023-02-02 20:40:57 +0000 |
commit | 16cb9081ee0bcc6fc03c5fb05696bafaac49c831 (patch) | |
tree | 029ce82bfa2b7307c6a823c19d9155291d77e0fc | |
parent | 8e11ea226c6d3e3a92da7e2cde11e33868ebf0b7 (diff) | |
parent | d740d754f373fb887115bcd35d83e898dc352ea1 (diff) | |
download | cts-sparse-9556388-L61500000958499553.tar.gz |
Merge "Merge cherrypicks of ['android-review.googlesource.com/2388225', 'android-review.googlesource.com/2391933', 'android-review.googlesource.com/2406112', 'android-review.googlesource.com/2404652', 'android-review.googlesource.com/2412813'] into sparse-9492874-L46600000958426283. SPARSE_CHANGE: I87e8a36e0f84a43d71926b9c21f1434c85dbea9e SPARSE_CHANGE: I217dfe39f1ac4032f3c52cc19618fec83516c9b8 SPARSE_CHANGE: I29ddee5affc7fe0a5f6ec5ecd776d39ff5e9c138 SPARSE_CHANGE: I7ab4c315f56a711e91b13f8ff8e7a4cbe8fcd989 SPARSE_CHANGE: I3d9b1e687f6b7ea797113385abbec56dd5d0ee60" into sparse-9492874-L46600000958426283sparse-9556388-L61500000958499553
6 files changed, 78 insertions, 182 deletions
diff --git a/hostsidetests/dumpsys/src/android/dumpsys/cts/BatteryStatsDumpsysTest.java b/hostsidetests/dumpsys/src/android/dumpsys/cts/BatteryStatsDumpsysTest.java index 17cfca70b4b..518144a0ed0 100755..100644 --- a/hostsidetests/dumpsys/src/android/dumpsys/cts/BatteryStatsDumpsysTest.java +++ b/hostsidetests/dumpsys/src/android/dumpsys/cts/BatteryStatsDumpsysTest.java @@ -18,12 +18,9 @@ package android.dumpsys.cts; import static com.google.common.truth.Truth.assertThat; -import com.android.compatibility.common.tradefed.build.CompatibilityBuildHelper; import com.android.tradefed.log.LogUtil.CLog; import java.io.BufferedReader; -import java.io.File; -import java.io.IOException; import java.io.StringReader; import java.util.ArrayList; import java.util.HashSet; @@ -166,6 +163,10 @@ public class BatteryStatsDumpsysTest extends BaseDumpsysTest { checkNetwork(parts); break; case "ua": + if (parts.length == 9) { + checkUserActivityCompat(parts); + break; + } checkUserActivity(parts); break; case "bt": @@ -490,6 +491,15 @@ public class BatteryStatsDumpsysTest extends BaseDumpsysTest { assertInteger(parts[10]); // deviceState } + private void checkUserActivityCompat(String[] parts) { + assertEquals(9, parts.length); + assertInteger(parts[4]); // other + assertInteger(parts[5]); // button + assertInteger(parts[6]); // touch + assertInteger(parts[7]); // accessibility + assertInteger(parts[8]); // attention + } + private void checkBattery(String[] parts) { assertEquals(16, parts.length); if (!parts[4].equals("N/A")) { diff --git a/hostsidetests/dumpsys/src/android/dumpsys/cts/GfxInfoDumpsysTest.java b/hostsidetests/dumpsys/src/android/dumpsys/cts/GfxInfoDumpsysTest.java index 173a6dab9d0..173a6dab9d0 100755..100644 --- a/hostsidetests/dumpsys/src/android/dumpsys/cts/GfxInfoDumpsysTest.java +++ b/hostsidetests/dumpsys/src/android/dumpsys/cts/GfxInfoDumpsysTest.java diff --git a/tests/app/src/android/app/cts/NotificationTemplateTest.kt b/tests/app/src/android/app/cts/NotificationTemplateTest.kt index ff8bf5629ba..f7edaf7da9a 100644 --- a/tests/app/src/android/app/cts/NotificationTemplateTest.kt +++ b/tests/app/src/android/app/cts/NotificationTemplateTest.kt @@ -16,7 +16,6 @@ package android.app.cts import android.R -import android.app.ActivityManager import android.app.Notification import android.app.PendingIntent import android.app.Person @@ -36,8 +35,8 @@ import androidx.annotation.ColorInt import androidx.test.filters.SmallTest import com.android.compatibility.common.util.CddTest import com.google.common.truth.Truth.assertThat -import kotlin.math.min import kotlin.test.assertFailsWith +import org.junit.Assume class NotificationTemplateTest : NotificationTemplateTestBase() { @@ -144,11 +143,7 @@ class NotificationTemplateTest : NotificationTemplateTestBase() { } fun testWideIcon_inBigPicture_cappedTo16By9() { - if (isPlatformAutomotive()) { - Log.i(TAG, "Skipping: testWideIcon_inBigPicture_cappedTo16By9" + - " - BigPictureStyle is not supported in automotive.") - return - } + skipIfPlatformDoesNotSupportNotificationStyles() val picture = createBitmap(40, 30) val icon = createBitmap(200, 100) val views = Notification.Builder(mContext, NOTIFICATION_CHANNEL_ID) @@ -166,11 +161,7 @@ class NotificationTemplateTest : NotificationTemplateTestBase() { } fun testWideIcon_inBigPicture_canShowExact4By3() { - if (isPlatformAutomotive()) { - Log.i(TAG, "Skipping: testWideIcon_inBigPicture_canShowExact4By3" + - " - BigPictureStyle is not supported in automotive.") - return - } + skipIfPlatformDoesNotSupportNotificationStyles() val picture = createBitmap(40, 30) val icon = createBitmap(400, 300) val views = Notification.Builder(mContext, NOTIFICATION_CHANNEL_ID) @@ -188,11 +179,7 @@ class NotificationTemplateTest : NotificationTemplateTestBase() { } fun testWideIcon_inBigPicture_neverNarrowerThanSquare() { - if (isPlatformAutomotive()) { - Log.i(TAG, "Skipping: testWideIcon_inBigPicture_neverNarrowerThanSquare" + - " - BigPictureStyle is not supported in automotive.") - return - } + skipIfPlatformDoesNotSupportNotificationStyles() val picture = createBitmap(40, 30) val icon = createBitmap(200, 300) val views = Notification.Builder(mContext, NOTIFICATION_CHANNEL_ID) @@ -254,11 +241,7 @@ class NotificationTemplateTest : NotificationTemplateTestBase() { } fun testBigPictureStyle_populatesExtrasCompatibly() { - if (isPlatformAutomotive()) { - Log.i(TAG, "Skipping: testBigPictureStyle_populatesExtrasCompatibly" + - " - BigPictureStyle is not supported in automotive.") - return - } + skipIfPlatformDoesNotSupportNotificationStyles() val bitmap = createBitmap(40, 30) val uri = Uri.parse("content://android.app.stubs.assets/picture_400_by_300.png") val iconWithUri = Icon.createWithContentUri(uri) @@ -272,7 +255,7 @@ class NotificationTemplateTest : NotificationTemplateTestBase() { style.bigPicture(bitmap) builder.build().let { assertThat(it.extras.getParcelable<Bitmap>(Notification.EXTRA_PICTURE) - !!.sameAs(bitmap)).isTrue() + !!.sameAs(bitmap)).isTrue() assertThat(it.extras.get(Notification.EXTRA_PICTURE_ICON)).isNull() } @@ -286,18 +269,15 @@ class NotificationTemplateTest : NotificationTemplateTestBase() { style.bigPicture(iconWithBitmap) builder.build().let { assertThat(it.extras.getParcelable<Bitmap>(Notification.EXTRA_PICTURE) - !!.sameAs(bitmap)).isTrue() + !!.sameAs(bitmap)).isTrue() assertThat(it.extras.get(Notification.EXTRA_PICTURE_ICON)).isNull() } } @CddTest(requirement = "3.8.3.1/C-2-1") fun testBigPictureStyle_bigPictureUriIcon() { - if (isPlatformAutomotive()) { - Log.i(TAG, "Skipping: testBigPictureStyle_bigPictureUriIcon" + - " - BigPictureStyle is not supported in automotive.") - return - } + skipIfPlatformDoesNotSupportNotificationStyles() + val pictureUri = Uri.parse("content://android.app.stubs.assets/picture_400_by_300.png") val pictureIcon = Icon.createWithContentUri(pictureUri) val builder = Notification.Builder(mContext, NOTIFICATION_CHANNEL_ID) @@ -307,28 +287,16 @@ class NotificationTemplateTest : NotificationTemplateTestBase() { checkViews(builder.createBigContentView()) { val pictureView = requireViewByIdName<ImageView>("big_picture") assertThat(pictureView.visibility).isEqualTo(View.VISIBLE) - - var expectedWidth = min(400, bigPictureWidth()) - var expectedHeight = min(300, bigPictureWidth() * 3 / 4) - // It's possible that big picture width is configured smaller than we expect here. - // In that situation, we need to flip the expected size. - if (bigPictureHeight() < expectedHeight) { - expectedHeight = bigPictureHeight() - expectedWidth = bigPictureHeight() * 4 / 3 - } - - assertThat(pictureView.drawable.intrinsicWidth).isEqualTo(expectedWidth) - assertThat(pictureView.drawable.intrinsicHeight).isEqualTo(expectedHeight) + assertThat(pictureView.width.toFloat()) + .isWithin(1f) + .of((pictureView.height * 4 / 3).toFloat()) + assertThat(pictureView.scaleType).isEqualTo(ImageView.ScaleType.CENTER_CROP) } } @CddTest(requirement = "3.8.3.1/C-2-1") fun testPromoteBigPicture_withBigPictureUriIcon() { - if (isPlatformAutomotive()) { - Log.i(TAG, "Skipping: testPromoteBigPicture_withBigPictureUriIcon" + - " - BigPictureStyle is not supported in automotive.") - return - } + skipIfPlatformDoesNotSupportNotificationStyles() val pictureUri = Uri.parse("content://android.app.stubs.assets/picture_800_by_600.png") val pictureIcon = Icon.createWithContentUri(pictureUri) val builder = Notification.Builder(mContext, NOTIFICATION_CHANNEL_ID) @@ -343,17 +311,13 @@ class NotificationTemplateTest : NotificationTemplateTestBase() { assertThat(iconView.width.toFloat()) .isWithin(1f) .of((iconView.height * 4 / 3).toFloat()) - assertThat(iconView.drawable.intrinsicWidth).isEqualTo(rightIconSize()) - assertThat(iconView.drawable.intrinsicHeight).isEqualTo(rightIconSize() * 3 / 4) + assertThat(iconView.scaleType).isEqualTo(ImageView.ScaleType.CENTER_CROP) } } fun testPromoteBigPicture_withoutLargeIcon() { - if (isPlatformAutomotive()) { - Log.i(TAG, "Skipping: testPromoteBigPicture_withoutLargeIcon" + - " - BigPictureStyle is not supported in automotive.") - return - } + skipIfPlatformDoesNotSupportNotificationStyles() + val picture = createBitmap(40, 30) val builder = Notification.Builder(mContext, NOTIFICATION_CHANNEL_ID) .setSmallIcon(R.drawable.ic_media_play) @@ -367,8 +331,7 @@ class NotificationTemplateTest : NotificationTemplateTestBase() { assertThat(iconView.width.toFloat()) .isWithin(1f) .of((iconView.height * 4 / 3).toFloat()) - assertThat(iconView.drawable.intrinsicWidth).isEqualTo(40) - assertThat(iconView.drawable.intrinsicHeight).isEqualTo(30) + assertThat(iconView.scaleType).isEqualTo(ImageView.ScaleType.CENTER_CROP) } checkIconView(builder.createBigContentView()) { iconView -> assertThat(iconView.visibility).isEqualTo(View.GONE) @@ -376,11 +339,8 @@ class NotificationTemplateTest : NotificationTemplateTestBase() { } fun testPromoteBigPicture_withLargeIcon() { - if (isPlatformAutomotive()) { - Log.i(TAG, "Skipping: testPromoteBigPicture_withLargeIcon" + - " - BigPictureStyle is not supported in automotive.") - return - } + skipIfPlatformDoesNotSupportNotificationStyles() + val picture = createBitmap(40, 30) val icon = createBitmap(80, 65) val builder = Notification.Builder(mContext, NOTIFICATION_CHANNEL_ID) @@ -392,37 +352,26 @@ class NotificationTemplateTest : NotificationTemplateTestBase() { .showBigPictureWhenCollapsed(true) ) - // At really high densities the size of rendered icon can dip below the - // tested size - we allow rendering of smaller icon with the same - // aspect ratio then. - val expectedIconWidth = minOf(rightIconSize(), 80) - val expectedIconHeight = minOf(rightIconSize() * 65 / 80, 65) - checkIconView(builder.createContentView()) { iconView -> assertThat(iconView.visibility).isEqualTo(View.VISIBLE) assertThat(iconView.width.toFloat()) .isWithin(1f) .of((iconView.height * 4 / 3).toFloat()) - assertThat(iconView.drawable.intrinsicWidth).isEqualTo(40) - assertThat(iconView.drawable.intrinsicHeight).isEqualTo(30) + assertThat(iconView.scaleType).isEqualTo(ImageView.ScaleType.CENTER_CROP) } checkIconView(builder.createBigContentView()) { iconView -> assertThat(iconView.visibility).isEqualTo(View.VISIBLE) assertThat(iconView.width.toFloat()) .isWithin(1f) .of((iconView.height * 80 / 65).toFloat()) - assertThat(iconView.drawable.intrinsicWidth).isEqualTo(expectedIconWidth) - assertThat(iconView.drawable.intrinsicHeight).isEqualTo(expectedIconHeight) + assertThat(iconView.scaleType).isEqualTo(ImageView.ScaleType.CENTER_CROP) } } @CddTest(requirement = "3.8.3.1/C-2-1") fun testPromoteBigPicture_withBigLargeIcon() { - if (isPlatformAutomotive()) { - Log.i(TAG, "Skipping: testPromoteBigPicture_withBigLargeIcon" + - " - BigPictureStyle is not supported in automotive.") - return - } + skipIfPlatformDoesNotSupportNotificationStyles() + val picture = createBitmap(40, 30) val inputWidth = 400 val inputHeight = 300 @@ -436,36 +385,28 @@ class NotificationTemplateTest : NotificationTemplateTestBase() { .showBigPictureWhenCollapsed(true) ) - val expectedIconWidth = minOf(rightIconSize(), inputWidth) - val expectedIconHeight = minOf(rightIconSize() * inputHeight / inputWidth, inputHeight) - checkIconView(builder.createContentView()) { iconView -> assertThat(iconView.visibility).isEqualTo(View.VISIBLE) assertThat(iconView.width.toFloat()) .isWithin(1f) .of((iconView.height * 4 / 3).toFloat()) - assertThat(iconView.drawable.intrinsicWidth).isEqualTo(40) - assertThat(iconView.drawable.intrinsicHeight).isEqualTo(30) + assertThat(iconView.scaleType).isEqualTo(ImageView.ScaleType.CENTER_CROP) } checkIconView(builder.createBigContentView()) { iconView -> assertThat(iconView.visibility).isEqualTo(View.VISIBLE) assertThat(iconView.width.toFloat()) .isWithin(1f) .of((iconView.height * 4 / 3).toFloat()) - assertThat(iconView.drawable.intrinsicWidth).isEqualTo(expectedIconWidth) - assertThat(iconView.drawable.intrinsicHeight).isEqualTo(expectedIconHeight) + assertThat(iconView.scaleType).isEqualTo(ImageView.ScaleType.CENTER_CROP) } assertThat(builder.build().extras.getParcelable<Bitmap>(Notification.EXTRA_PICTURE) - !!.sameAs(picture)).isTrue() + !!.sameAs(picture)).isTrue() } @CddTest(requirement = "3.8.3.1/C-2-1") fun testBigPicture_withBigLargeIcon_withContentUri() { - if (isPlatformAutomotive()) { - Log.i(TAG, "Skipping: testBigPicture_withBigLargeIcon_withContentUri" + - " - BigPictureStyle is not supported in automotive.") - return - } + skipIfPlatformDoesNotSupportNotificationStyles() + val iconUri = Uri.parse("content://android.app.stubs.assets/picture_800_by_600.png") val icon = Icon.createWithContentUri(iconUri) val builder = Notification.Builder(mContext, NOTIFICATION_CHANNEL_ID) @@ -477,9 +418,7 @@ class NotificationTemplateTest : NotificationTemplateTestBase() { assertThat(iconView.width.toFloat()) .isWithin(1f) .of((iconView.height * 4 / 3).toFloat()) - - assertThat(iconView.drawable.intrinsicWidth).isEqualTo(rightIconSize()) - assertThat(iconView.drawable.intrinsicHeight).isEqualTo(rightIconSize() * 3 / 4) + assertThat(iconView.scaleType).isEqualTo(ImageView.ScaleType.CENTER_CROP) } } @@ -864,39 +803,15 @@ class NotificationTemplateTest : NotificationTemplateTestBase() { PendingIntent.getBroadcast(mContext, 0, Intent("test"), PendingIntent.FLAG_IMMUTABLE) } - private fun rightIconSize(): Int { - return mContext.resources.getDimensionPixelSize(getAndroidRDimen( - if (isLowRamDevice()) { - "notification_right_icon_size_low_ram" - } else { - "notification_right_icon_size" - })) - } - - private fun bigPictureWidth(): Int { - return mContext.resources.getDimensionPixelSize(getAndroidRDimen( - if (isLowRamDevice()) { - "notification_big_picture_max_width_low_ram" - } else { - "notification_big_picture_max_width" - })) - } - - private fun bigPictureHeight(): Int { - return mContext.resources.getDimensionPixelSize(getAndroidRDimen( - if (isLowRamDevice()) { - "notification_big_picture_max_width_low_ram" - } else { - "notification_big_picture_max_width" - })) - } - - private fun isLowRamDevice(): Boolean { - return mContext.getSystemService(ActivityManager::class.java).isLowRamDevice() - } - - private fun isPlatformAutomotive(): Boolean { - return mContext.packageManager.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE) + /** + * Assume that we're running on the platform that supports styled notifications. + * + * If the current platform does not support notification styles, skip this test without failure. + */ + private fun skipIfPlatformDoesNotSupportNotificationStyles() { + Assume.assumeFalse("Current platform does not support notification styles.", + mContext.packageManager.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE) || + mContext.packageManager.hasSystemFeature(PackageManager.FEATURE_LEANBACK)) } companion object { diff --git a/tests/location/location_fine/src/android/location/cts/fine/LocationManagerFineTest.java b/tests/location/location_fine/src/android/location/cts/fine/LocationManagerFineTest.java index b741a2e31b3..af807bf728c 100644 --- a/tests/location/location_fine/src/android/location/cts/fine/LocationManagerFineTest.java +++ b/tests/location/location_fine/src/android/location/cts/fine/LocationManagerFineTest.java @@ -754,6 +754,7 @@ public class LocationManagerFineTest { } @Test + @AppModeFull(reason = "Instant apps can't access ACTION_BATTERY_CHANGED intent") public void testRequestLocationUpdates_BatterySaver_GpsDisabledScreenOff() throws Exception { // battery saver is unsupported on auto and tv assumeFalse(mContext.getPackageManager().hasSystemFeature(FEATURE_AUTOMOTIVE)); @@ -816,6 +817,7 @@ public class LocationManagerFineTest { } @Test + @AppModeFull(reason = "Instant apps can't access ACTION_BATTERY_CHANGED intent") public void testRequestLocationUpdates_BatterySaver_AllDisabledScreenOff() throws Exception { // battery saver is unsupported on auto and tv assumeFalse(mContext.getPackageManager().hasSystemFeature(FEATURE_AUTOMOTIVE)); @@ -859,6 +861,7 @@ public class LocationManagerFineTest { } @Test + @AppModeFull(reason = "Instant apps can't access ACTION_BATTERY_CHANGED intent") public void testRequestLocationUpdates_BatterySaver_ThrottleScreenOff() throws Exception { // battery saver is unsupported on auto and tv assumeFalse(mContext.getPackageManager().hasSystemFeature(FEATURE_AUTOMOTIVE)); diff --git a/tests/tests/media/codec/src/android/media/codec/cts/MediaCodecCapabilitiesTest.java b/tests/tests/media/codec/src/android/media/codec/cts/MediaCodecCapabilitiesTest.java index 644ecc6aa9f..0c33f93a70d 100644 --- a/tests/tests/media/codec/src/android/media/codec/cts/MediaCodecCapabilitiesTest.java +++ b/tests/tests/media/codec/src/android/media/codec/cts/MediaCodecCapabilitiesTest.java @@ -750,15 +750,7 @@ public class MediaCodecCapabilitiesTest extends MediaPlayerTestBase { int minFrameRate = Math.max(vcaps.getSupportedFrameRatesFor(minWidth, minHeight) .getLower().intValue(), 1); format = MediaFormat.createVideoFormat(mime, minWidth, minHeight); - int colorFormat = caps.colorFormats[0]; - for (int i = 0; i < caps.colorFormats.length; ++i) { - colorFormat = caps.colorFormats[i]; - // Avoid COLOR_FormatSurface as we will be configuring the codec without a surface. - if (colorFormat != CodecCapabilities.COLOR_FormatSurface) { - break; - } - } - format.setInteger(MediaFormat.KEY_COLOR_FORMAT, colorFormat); + format.setInteger(MediaFormat.KEY_COLOR_FORMAT, caps.colorFormats[0]); format.setInteger(MediaFormat.KEY_BIT_RATE, minBitrate); format.setInteger(MediaFormat.KEY_FRAME_RATE, minFrameRate); format.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, IFRAME_INTERVAL); diff --git a/tests/tests/notificationlegacy/notificationlegacy30/src/android/app/notification/legacy30/cts/NotificationTemplateApi30Test.kt b/tests/tests/notificationlegacy/notificationlegacy30/src/android/app/notification/legacy30/cts/NotificationTemplateApi30Test.kt index 29638bded5b..e0895ef03f9 100644 --- a/tests/tests/notificationlegacy/notificationlegacy30/src/android/app/notification/legacy30/cts/NotificationTemplateApi30Test.kt +++ b/tests/tests/notificationlegacy/notificationlegacy30/src/android/app/notification/legacy30/cts/NotificationTemplateApi30Test.kt @@ -19,11 +19,11 @@ import android.R import android.app.Notification import android.app.cts.NotificationTemplateTestBase import android.content.pm.PackageManager -import android.util.Log import android.view.View import android.widget.ImageView import android.widget.TextView import com.google.common.truth.Truth.assertThat +import org.junit.Assume class NotificationTemplateApi30Test : NotificationTemplateTestBase() { @@ -58,11 +58,8 @@ class NotificationTemplateApi30Test : NotificationTemplateTestBase() { } fun testWideIcon_inBigPicture_isSquareForLegacyApps() { - if (isPlatformAutomotive()) { - Log.i(TAG, "Skipping: testWideIcon_inBigPicture_isSquareForLegacyApps" + - " - BigPictureStyle is not supported in automotive.") - return - } + skipIfPlatformDoesNotSupportNotificationStyles() + val picture = createBitmap(40, 30) val icon = createBitmap(200, 100) val views = Notification.Builder(mContext, NOTIFICATION_CHANNEL_ID) @@ -92,11 +89,8 @@ class NotificationTemplateApi30Test : NotificationTemplateTestBase() { } fun testPromoteBigPicture_withoutLargeIcon() { - if (isPlatformAutomotive()) { - Log.i(TAG, "Skipping: testPromoteBigPicture_withoutLargeIcon" + - " - BigPictureStyle is not supported in automotive.") - return - } + skipIfPlatformDoesNotSupportNotificationStyles() + val picture = createBitmap(40, 30) val builder = Notification.Builder(mContext, NOTIFICATION_CHANNEL_ID) .setSmallIcon(R.drawable.ic_media_play) @@ -121,11 +115,8 @@ class NotificationTemplateApi30Test : NotificationTemplateTestBase() { } fun testPromoteBigPicture_withLargeIcon() { - if (isPlatformAutomotive()) { - Log.i(TAG, "Skipping: testPromoteBigPicture_withLargeIcon" + - " - BigPictureStyle is not supported in automotive.") - return - } + skipIfPlatformDoesNotSupportNotificationStyles() + val picture = createBitmap(40, 30) val icon = createBitmap(80, 65) val builder = Notification.Builder(mContext, NOTIFICATION_CHANNEL_ID) @@ -137,36 +128,24 @@ class NotificationTemplateApi30Test : NotificationTemplateTestBase() { .showBigPictureWhenCollapsed(true) ) - // At really high densities the size of rendered icon can dip below the - // tested size - we allow rendering of smaller icon with the same - // aspect ratio then. - val expectedIconWidth = minOf(rightIconSize(), 80) - val expectedIconHeight = minOf(rightIconSize() * 65 / 80, 65) - // the promoted big picture is shown with enlarged aspect ratio checkIconView(builder.createContentView()) { iconView -> assertThat(iconView.visibility).isEqualTo(View.VISIBLE) assertThat(iconView.width.toFloat()) .isWithin(1f) .of((iconView.height * 4 / 3).toFloat()) - assertThat(iconView.drawable.intrinsicWidth).isEqualTo(40) - assertThat(iconView.drawable.intrinsicHeight).isEqualTo(30) } // because it doesn't target S, the icon is still shown in a square checkIconView(builder.createBigContentView()) { iconView -> assertThat(iconView.visibility).isEqualTo(View.VISIBLE) assertThat(iconView.width).isEqualTo(iconView.height) - assertThat(iconView.drawable.intrinsicWidth).isEqualTo(expectedIconWidth) - assertThat(iconView.drawable.intrinsicHeight).isEqualTo(expectedIconHeight) + assertThat(iconView.scaleType).isEqualTo(ImageView.ScaleType.CENTER_CROP) } } fun testPromoteBigPicture_withBigLargeIcon() { - if (isPlatformAutomotive()) { - Log.i(TAG, "Skipping: testPromoteBigPicture_withBigLargeIcon" + - " - BigPictureStyle is not supported in automotive.") - return - } + skipIfPlatformDoesNotSupportNotificationStyles() + val picture = createBitmap(40, 30) val inputWidth = 400 val inputHeight = 300 @@ -180,24 +159,19 @@ class NotificationTemplateApi30Test : NotificationTemplateTestBase() { .showBigPictureWhenCollapsed(true) ) - val expectedIconWidth = minOf(rightIconSize(), inputWidth) - val expectedIconHeight = minOf(rightIconSize() * inputHeight / inputWidth, inputHeight) - // the promoted big picture is shown with enlarged aspect ratio checkIconView(builder.createContentView()) { iconView -> assertThat(iconView.visibility).isEqualTo(View.VISIBLE) assertThat(iconView.width.toFloat()) .isWithin(1f) .of((iconView.height * 4 / 3).toFloat()) - assertThat(iconView.drawable.intrinsicWidth).isEqualTo(40) - assertThat(iconView.drawable.intrinsicHeight).isEqualTo(30) + assertThat(iconView.scaleType).isEqualTo(ImageView.ScaleType.CENTER_CROP) } // because it doesn't target S, the icon is still shown in a square checkIconView(builder.createBigContentView()) { iconView -> assertThat(iconView.visibility).isEqualTo(View.VISIBLE) assertThat(iconView.width).isEqualTo(iconView.height) - assertThat(iconView.drawable.intrinsicWidth).isEqualTo(expectedIconWidth) - assertThat(iconView.drawable.intrinsicHeight).isEqualTo(expectedIconHeight) + assertThat(iconView.scaleType).isEqualTo(ImageView.ScaleType.CENTER_CROP) } } @@ -314,17 +288,19 @@ class NotificationTemplateApi30Test : NotificationTemplateTestBase() { } } - private fun rightIconSize(): Int { - return mContext.resources.getDimensionPixelSize( - getAndroidRDimen("notification_right_icon_size")) - } - - private fun isPlatformAutomotive(): Boolean { - return mContext.packageManager.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE) + /** + * Assume that we're running on the platform that supports styled notifications. + * + * If the current platform does not support notification styles, skip this test without failure. + */ + private fun skipIfPlatformDoesNotSupportNotificationStyles() { + Assume.assumeFalse("Current platform does not support notification styles.", + mContext.packageManager.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE) || + mContext.packageManager.hasSystemFeature(PackageManager.FEATURE_LEANBACK)) } companion object { val TAG = NotificationTemplateApi30Test::class.java.simpleName const val NOTIFICATION_CHANNEL_ID = "NotificationTemplateApi30Test" } -}
\ No newline at end of file +} |