• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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