From 7da071ad378735dbe4fd916ff3bb277433b29ce3 Mon Sep 17 00:00:00 2001 From: rohks Date: Wed, 4 Jan 2023 13:51:24 +0000 Subject: [PATCH] Check bundles in `MediaItem` to verify keys are skipped Added another check in each of these tests to make sure we don't add keys to bundle for fields with default values. Also fixed comments of similar changes in `AdPlaybackStateTest` and `MediaMetadataTest`. PiperOrigin-RevId: 499463581 (cherry picked from commit 0512164fdd570a2047f51be719aae75ebcbf9255) --- .../media3/common/AdPlaybackStateTest.java | 3 +-- .../androidx/media3/common/MediaItemTest.java | 27 +++++++++++++++---- .../media3/common/MediaMetadataTest.java | 3 +-- 3 files changed, 24 insertions(+), 9 deletions(-) diff --git a/libraries/common/src/test/java/androidx/media3/common/AdPlaybackStateTest.java b/libraries/common/src/test/java/androidx/media3/common/AdPlaybackStateTest.java index 29d6383971..6a07dce3dc 100644 --- a/libraries/common/src/test/java/androidx/media3/common/AdPlaybackStateTest.java +++ b/libraries/common/src/test/java/androidx/media3/common/AdPlaybackStateTest.java @@ -421,13 +421,12 @@ public class AdPlaybackStateTest { Bundle adPlaybackStateWithNoAdsBundle = adPlaybackStateWithNoAds.toBundle(); - // check Bundle created above, contains no keys. + // Check that default values are skipped when bundling. assertThat(adPlaybackStateWithNoAdsBundle.keySet()).isEmpty(); AdPlaybackState adPlaybackStateWithNoAdsFromBundle = AdPlaybackState.CREATOR.fromBundle(adPlaybackStateWithNoAdsBundle); - // check object retrieved from adPlaybackStateWithNoAdsBundle is equal to AdPlaybackState.NONE assertThat(adPlaybackStateWithNoAdsFromBundle.adsId).isEqualTo(adPlaybackStateWithNoAds.adsId); assertThat(adPlaybackStateWithNoAdsFromBundle.adGroupCount) .isEqualTo(adPlaybackStateWithNoAds.adGroupCount); diff --git a/libraries/common/src/test/java/androidx/media3/common/MediaItemTest.java b/libraries/common/src/test/java/androidx/media3/common/MediaItemTest.java index 30b5853e5f..3f557ca8d2 100644 --- a/libraries/common/src/test/java/androidx/media3/common/MediaItemTest.java +++ b/libraries/common/src/test/java/androidx/media3/common/MediaItemTest.java @@ -375,12 +375,18 @@ public class MediaItemTest { } @Test - public void createDefaultClippingConfigurationInstance_roundTripViaBundle_yieldsEqualInstance() { + public void + createDefaultClippingConfigurationInstance_toBundleSkipsDefaultValues_fromBundleRestoresThem() { MediaItem.ClippingConfiguration clippingConfiguration = new MediaItem.ClippingConfiguration.Builder().build(); + Bundle clippingConfigurationBundle = clippingConfiguration.toBundle(); + + // Check that default values are skipped when bundling. + assertThat(clippingConfigurationBundle.keySet()).isEmpty(); + MediaItem.ClippingConfiguration clippingConfigurationFromBundle = - MediaItem.ClippingConfiguration.CREATOR.fromBundle(clippingConfiguration.toBundle()); + MediaItem.ClippingConfiguration.CREATOR.fromBundle(clippingConfigurationBundle); assertThat(clippingConfigurationFromBundle).isEqualTo(clippingConfiguration); } @@ -558,12 +564,18 @@ public class MediaItemTest { } @Test - public void createDefaultLiveConfigurationInstance_roundTripViaBundle_yieldsEqualInstance() { + public void + createDefaultLiveConfigurationInstance_toBundleSkipsDefaultValues_fromBundleRestoresThem() { MediaItem.LiveConfiguration liveConfiguration = new MediaItem.LiveConfiguration.Builder().build(); + Bundle liveConfigurationBundle = liveConfiguration.toBundle(); + + // Check that default values are skipped when bundling. + assertThat(liveConfigurationBundle.keySet()).isEmpty(); + MediaItem.LiveConfiguration liveConfigurationFromBundle = - MediaItem.LiveConfiguration.CREATOR.fromBundle(liveConfiguration.toBundle()); + MediaItem.LiveConfiguration.CREATOR.fromBundle(liveConfigurationBundle); assertThat(liveConfigurationFromBundle).isEqualTo(liveConfiguration); } @@ -832,9 +844,14 @@ public class MediaItemTest { } @Test - public void createDefaultMediaItemInstance_roundTripViaBundle_yieldsEqualInstance() { + public void createDefaultMediaItemInstance_toBundleSkipsDefaultValues_fromBundleRestoresThem() { MediaItem mediaItem = new MediaItem.Builder().build(); + Bundle mediaItemBundle = mediaItem.toBundle(); + + // Check that default values are skipped when bundling. + assertThat(mediaItemBundle.keySet()).isEmpty(); + MediaItem mediaItemFromBundle = MediaItem.CREATOR.fromBundle(mediaItem.toBundle()); assertThat(mediaItemFromBundle).isEqualTo(mediaItem); diff --git a/libraries/common/src/test/java/androidx/media3/common/MediaMetadataTest.java b/libraries/common/src/test/java/androidx/media3/common/MediaMetadataTest.java index d2810ddd1b..904c55ee15 100644 --- a/libraries/common/src/test/java/androidx/media3/common/MediaMetadataTest.java +++ b/libraries/common/src/test/java/androidx/media3/common/MediaMetadataTest.java @@ -112,12 +112,11 @@ public class MediaMetadataTest { Bundle mediaMetadataBundle = mediaMetadata.toBundle(); - // check Bundle created above, contains no keys. + // Check that default values are skipped when bundling. assertThat(mediaMetadataBundle.keySet()).isEmpty(); MediaMetadata mediaMetadataFromBundle = MediaMetadata.CREATOR.fromBundle(mediaMetadataBundle); - // check object retrieved from mediaMetadataBundle is equal to mediaMetadata. assertThat(mediaMetadataFromBundle).isEqualTo(mediaMetadata); // Extras is not implemented in MediaMetadata.equals(Object o). assertThat(mediaMetadataFromBundle.extras).isNull();