• 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.hardware.display.DisplayManager;
7 import android.view.Display;
8 import androidx.test.core.app.ActivityScenario;
9 import androidx.test.core.app.ApplicationProvider;
10 import androidx.test.ext.junit.runners.AndroidJUnit4;
11 import org.junit.Test;
12 import org.junit.runner.RunWith;
13 import org.robolectric.testapp.TestActivity;
14 
15 /** Tests for {@link DisplayManager}. */
16 @RunWith(AndroidJUnit4.class)
17 public class DisplayManagerTest {
18 
19   @Test
displayManager_applicationInstance_isNotSameAsActivityInstance()20   public void displayManager_applicationInstance_isNotSameAsActivityInstance() {
21     DisplayManager applicationDisplayManager =
22         (DisplayManager)
23             ApplicationProvider.getApplicationContext().getSystemService(Context.DISPLAY_SERVICE);
24     try (ActivityScenario<TestActivity> scenario = ActivityScenario.launch(TestActivity.class)) {
25       scenario.onActivity(
26           activity -> {
27             DisplayManager activityDisplayManager =
28                 (DisplayManager) activity.getSystemService(Context.DISPLAY_SERVICE);
29             assertThat(applicationDisplayManager).isNotSameInstanceAs(activityDisplayManager);
30           });
31     }
32   }
33 
34   @Test
displayManager_activityInstance_isSameAsActivityInstance()35   public void displayManager_activityInstance_isSameAsActivityInstance() {
36     try (ActivityScenario<TestActivity> scenario = ActivityScenario.launch(TestActivity.class)) {
37       scenario.onActivity(
38           activity -> {
39             DisplayManager activityDisplayManager =
40                 (DisplayManager) activity.getSystemService(Context.DISPLAY_SERVICE);
41             DisplayManager anotherActivityDisplayManager =
42                 (DisplayManager) activity.getSystemService(Context.DISPLAY_SERVICE);
43             assertThat(anotherActivityDisplayManager).isSameInstanceAs(activityDisplayManager);
44           });
45     }
46   }
47 
48   @Test
displayManager_instance_retrievesSameDisplays()49   public void displayManager_instance_retrievesSameDisplays() {
50     DisplayManager applicationDisplayManager =
51         (DisplayManager)
52             ApplicationProvider.getApplicationContext().getSystemService(Context.DISPLAY_SERVICE);
53 
54     try (ActivityScenario<TestActivity> scenario = ActivityScenario.launch(TestActivity.class)) {
55       scenario.onActivity(
56           activity -> {
57             DisplayManager activityDisplayManager =
58                 (DisplayManager) activity.getSystemService(Context.DISPLAY_SERVICE);
59 
60             Display[] applicationDisplays = applicationDisplayManager.getDisplays();
61             Display[] activityDisplays = activityDisplayManager.getDisplays();
62 
63             assertThat(activityDisplays.length).isEqualTo(applicationDisplays.length);
64 
65             for (int i = 0; i < applicationDisplays.length; i++) {
66               Display appDisplay = applicationDisplays[i];
67               Display actDisplay = activityDisplays[i];
68 
69               assertThat(actDisplay.getDisplayId()).isEqualTo(appDisplay.getDisplayId());
70               assertThat(actDisplay.getWidth()).isEqualTo(appDisplay.getWidth());
71               assertThat(actDisplay.getHeight()).isEqualTo(appDisplay.getHeight());
72             }
73           });
74     }
75   }
76 }
77