Increase line coverage of Rating
Bug: 173680971
Test: Passed CTS
Change-Id: I408fc4cfb607b83708640e463b40ea990d65d182
diff --git a/tests/tests/media/src/android/media/cts/RatingTest.java b/tests/tests/media/src/android/media/cts/RatingTest.java
index b6ea04f..8863602 100644
--- a/tests/tests/media/src/android/media/cts/RatingTest.java
+++ b/tests/tests/media/src/android/media/cts/RatingTest.java
@@ -31,7 +31,7 @@
import static org.junit.Assert.assertTrue;
import android.media.Rating;
-import android.text.TextUtils;
+import android.os.Parcel;
import androidx.test.filters.SmallTest;
import androidx.test.runner.AndroidJUnit4;
@@ -81,6 +81,14 @@
}
@Test
+ public void testHeartRatingWithIllegalRatingValueGetters() {
+ Rating ratingWithHeart = Rating.newHeartRating(/*hasHeart=*/ true);
+ assertFalse(ratingWithHeart.isThumbUp());
+ assertTrue(ratingWithHeart.getStarRating() < 0f);
+ assertTrue(ratingWithHeart.getPercentRating() < 0f);
+ }
+
+ @Test
public void testThumbRating() {
Rating ratingThumbUp = Rating.newThumbRating(/*thumbIsUp=*/ true);
assertEquals(RATING_THUMB_UP_DOWN, ratingThumbUp.getRatingStyle());
@@ -94,6 +102,14 @@
}
@Test
+ public void testThumbRatingWithIllegalRatingValueGetters() {
+ Rating ratingThumbUp = Rating.newThumbRating(/*thumbIsUp=*/ true);
+ assertFalse(ratingThumbUp.hasHeart());
+ assertTrue(ratingThumbUp.getStarRating() < 0f);
+ assertTrue(ratingThumbUp.getPercentRating() < 0f);
+ }
+
+ @Test
public void testNewStarRatingWithInvalidStylesReturnsNull() {
final int[] nonStarRatingStyles = new int[] { RATING_HEART, RATING_THUMB_UP_DOWN,
RATING_PERCENTAGE, RATING_NONE };
@@ -135,6 +151,14 @@
}
@Test
+ public void testStarRatingWithIllegalRatingValueGetters() {
+ Rating starRating = Rating.newStarRating(RATING_3_STARS, /*starValue=*/ 2.5f);
+ assertFalse(starRating.hasHeart());
+ assertFalse(starRating.isThumbUp());
+ assertTrue(starRating.getPercentRating() < 0f);
+ }
+
+ @Test
public void testNewPercentageRatingWithInvalidPercentValuesReturnsNull() {
final float[] invalidPercentValues = new float[] {-1.0f, 100.1f, 200f, 1000f,
Float.MAX_VALUE, Float.NaN};
@@ -156,8 +180,45 @@
}
@Test
+ public void testPercentageWithIllegalRatingValueGetters() {
+ Rating percentageRating = Rating.newPercentageRating(72.5f);
+ assertFalse(percentageRating.hasHeart());
+ assertFalse(percentageRating.isThumbUp());
+ assertTrue(percentageRating.getStarRating() < 0f);
+ }
+
+ @Test
public void testToStringDoesNotCrash() {
Rating rating = Rating.newHeartRating(/*hasHeart=*/ true);
rating.toString(); // This should not crash.
}
+
+ @Test
+ public void testParcelization() {
+ Parcel p = Parcel.obtain();
+ try {
+ Rating rating = Rating.newStarRating(RATING_4_STARS, 3.5f);
+ p.writeParcelable(rating, /*flags=*/ 0);
+ p.setDataPosition(0);
+
+ Rating ratingFromParcel = p.readParcelable(null);
+ assertNotNull(ratingFromParcel);
+ // TODO: Compare two rating using equals() when it is implemented.
+ assertEquals(rating.getRatingStyle(), ratingFromParcel.getRatingStyle());
+ assertEquals(rating.getStarRating(), ratingFromParcel.getStarRating(), 0f);
+ } finally {
+ p.recycle();
+ }
+ }
+
+ @Test
+ public void testCreatorNewArray() {
+ final int arrayLength = 5;
+ Rating[] ratingArrayInitializedWithNulls = Rating.CREATOR.newArray(arrayLength);
+ assertNotNull(ratingArrayInitializedWithNulls);
+ assertEquals(arrayLength, ratingArrayInitializedWithNulls.length);
+ for (Rating rating : ratingArrayInitializedWithNulls) {
+ assertNull(rating);
+ }
+ }
}