1 package android.app; 2 3 import static com.google.common.truth.Truth.assertThat; 4 5 import android.content.Context; 6 import android.media.session.MediaSessionManager; 7 import androidx.test.core.app.ActivityScenario; 8 import androidx.test.core.app.ApplicationProvider; 9 import androidx.test.ext.junit.runners.AndroidJUnit4; 10 import org.junit.Test; 11 import org.junit.runner.RunWith; 12 import org.robolectric.testapp.TestActivity; 13 14 /** Compatibility test for {@link MediaSessionManager}. */ 15 @RunWith(AndroidJUnit4.class) 16 public class MediaSessionManagerTest { 17 18 @Test mediaSessionManager_applicationInstance_isNotSameAsActivityInstance()19 public void mediaSessionManager_applicationInstance_isNotSameAsActivityInstance() { 20 MediaSessionManager applicationMediaSessionManager = 21 (MediaSessionManager) 22 ApplicationProvider.getApplicationContext() 23 .getSystemService(Context.MEDIA_SESSION_SERVICE); 24 try (ActivityScenario<TestActivity> scenario = ActivityScenario.launch(TestActivity.class)) { 25 scenario.onActivity( 26 activity -> { 27 MediaSessionManager activityMediaSessionManager = 28 (MediaSessionManager) activity.getSystemService(Context.MEDIA_SESSION_SERVICE); 29 assertThat(applicationMediaSessionManager) 30 .isNotSameInstanceAs(activityMediaSessionManager); 31 }); 32 } 33 } 34 35 @Test mediaSessionManager_activityInstance_isSameAsActivityInstance()36 public void mediaSessionManager_activityInstance_isSameAsActivityInstance() { 37 try (ActivityScenario<TestActivity> scenario = ActivityScenario.launch(TestActivity.class)) { 38 scenario.onActivity( 39 activity -> { 40 MediaSessionManager activityMediaSessionManager = 41 (MediaSessionManager) activity.getSystemService(Context.MEDIA_SESSION_SERVICE); 42 MediaSessionManager anotherActivityMediaSessionManager = 43 (MediaSessionManager) activity.getSystemService(Context.MEDIA_SESSION_SERVICE); 44 assertThat(anotherActivityMediaSessionManager) 45 .isSameInstanceAs(activityMediaSessionManager); 46 }); 47 } 48 } 49 50 @Test mediaSessionManager_isTrustedForMediaControl_retrievesCorrectTrustStatus()51 public void mediaSessionManager_isTrustedForMediaControl_retrievesCorrectTrustStatus() { 52 MediaSessionManager applicationMediaSessionManager = 53 (MediaSessionManager) 54 ApplicationProvider.getApplicationContext() 55 .getSystemService(Context.MEDIA_SESSION_SERVICE); 56 try (ActivityScenario<TestActivity> scenario = ActivityScenario.launch(TestActivity.class)) { 57 scenario.onActivity( 58 activity -> { 59 MediaSessionManager activityMediaSessionManager = 60 (MediaSessionManager) activity.getSystemService(Context.MEDIA_SESSION_SERVICE); 61 62 MediaSessionManager.RemoteUserInfo userInfo = 63 new MediaSessionManager.RemoteUserInfo("com.example.package", 1234, 5678); 64 65 boolean applicationIsTrusted = 66 applicationMediaSessionManager.isTrustedForMediaControl(userInfo); 67 boolean activityIsTrusted = 68 activityMediaSessionManager.isTrustedForMediaControl(userInfo); 69 70 assertThat(activityIsTrusted).isEqualTo(applicationIsTrusted); 71 }); 72 } 73 } 74 } 75