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