1/* 2 * Copyright 2017 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16package android.support.mediacompat.client; 17 18import static org.junit.Assert.assertEquals; 19import static org.junit.Assert.assertFalse; 20import static org.junit.Assert.assertTrue; 21 22import android.os.Parcel; 23import android.support.test.filters.SmallTest; 24import android.support.v4.media.MediaBrowserCompat.MediaItem; 25import android.support.v4.media.MediaDescriptionCompat; 26 27import org.junit.Test; 28 29/** 30 * Test {@link MediaItem}. 31 */ 32public class MediaItemTest { 33 private static final String DESCRIPTION = "test_description"; 34 private static final String MEDIA_ID = "test_media_id"; 35 private static final String TITLE = "test_title"; 36 private static final String SUBTITLE = "test_subtitle"; 37 38 @Test 39 @SmallTest 40 public void testBrowsableMediaItem() { 41 MediaDescriptionCompat description = 42 new MediaDescriptionCompat.Builder() 43 .setDescription(DESCRIPTION) 44 .setMediaId(MEDIA_ID) 45 .setTitle(TITLE) 46 .setSubtitle(SUBTITLE) 47 .build(); 48 MediaItem mediaItem = new MediaItem(description, MediaItem.FLAG_BROWSABLE); 49 50 assertEquals(description.toString(), mediaItem.getDescription().toString()); 51 assertEquals(MEDIA_ID, mediaItem.getMediaId()); 52 assertEquals(MediaItem.FLAG_BROWSABLE, mediaItem.getFlags()); 53 assertTrue(mediaItem.isBrowsable()); 54 assertFalse(mediaItem.isPlayable()); 55 assertEquals(0, mediaItem.describeContents()); 56 57 // Test writeToParcel 58 Parcel p = Parcel.obtain(); 59 mediaItem.writeToParcel(p, 0); 60 p.setDataPosition(0); 61 assertEquals(mediaItem.getFlags(), p.readInt()); 62 assertEquals( 63 description.toString(), 64 MediaDescriptionCompat.CREATOR.createFromParcel(p).toString()); 65 p.recycle(); 66 } 67 68 @Test 69 @SmallTest 70 public void testPlayableMediaItem() { 71 MediaDescriptionCompat description = new MediaDescriptionCompat.Builder() 72 .setDescription(DESCRIPTION) 73 .setMediaId(MEDIA_ID) 74 .setTitle(TITLE) 75 .setSubtitle(SUBTITLE) 76 .build(); 77 MediaItem mediaItem = new MediaItem(description, MediaItem.FLAG_PLAYABLE); 78 79 assertEquals(description.toString(), mediaItem.getDescription().toString()); 80 assertEquals(MEDIA_ID, mediaItem.getMediaId()); 81 assertEquals(MediaItem.FLAG_PLAYABLE, mediaItem.getFlags()); 82 assertFalse(mediaItem.isBrowsable()); 83 assertTrue(mediaItem.isPlayable()); 84 assertEquals(0, mediaItem.describeContents()); 85 86 // Test writeToParcel 87 Parcel p = Parcel.obtain(); 88 mediaItem.writeToParcel(p, 0); 89 p.setDataPosition(0); 90 assertEquals(mediaItem.getFlags(), p.readInt()); 91 assertEquals( 92 description.toString(), 93 MediaDescriptionCompat.CREATOR.createFromParcel(p).toString()); 94 p.recycle(); 95 } 96} 97