1 package android.app; 2 3 import static com.google.common.truth.Truth.assertThat; 4 5 import android.companion.virtual.VirtualDevice; 6 import android.companion.virtual.VirtualDeviceManager; 7 import android.content.Context; 8 import android.os.Build; 9 import androidx.test.core.app.ActivityScenario; 10 import androidx.test.core.app.ApplicationProvider; 11 import androidx.test.ext.junit.runners.AndroidJUnit4; 12 import androidx.test.filters.SdkSuppress; 13 import java.util.List; 14 import org.junit.Test; 15 import org.junit.runner.RunWith; 16 import org.robolectric.testapp.TestActivity; 17 18 /** Compatibility test for {@link VirtualDeviceManager}. */ 19 @RunWith(AndroidJUnit4.class) 20 @SdkSuppress(minSdkVersion = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) 21 public class VirtualDeviceManagerTest { 22 23 @Test virtualDeviceManager_applicationInstance_isNotSameAsActivityInstance()24 public void virtualDeviceManager_applicationInstance_isNotSameAsActivityInstance() { 25 VirtualDeviceManager applicationVirtualDeviceManager = 26 (VirtualDeviceManager) 27 ApplicationProvider.getApplicationContext() 28 .getSystemService(Context.VIRTUAL_DEVICE_SERVICE); 29 try (ActivityScenario<TestActivity> scenario = ActivityScenario.launch(TestActivity.class)) { 30 scenario.onActivity( 31 activity -> { 32 VirtualDeviceManager activityVirtualDeviceManager = 33 (VirtualDeviceManager) activity.getSystemService(Context.VIRTUAL_DEVICE_SERVICE); 34 assertThat(applicationVirtualDeviceManager) 35 .isNotSameInstanceAs(activityVirtualDeviceManager); 36 }); 37 } 38 } 39 40 @Test virtualDeviceManager_activityInstance_isSameAsActivityInstance()41 public void virtualDeviceManager_activityInstance_isSameAsActivityInstance() { 42 try (ActivityScenario<TestActivity> scenario = ActivityScenario.launch(TestActivity.class)) { 43 scenario.onActivity( 44 activity -> { 45 VirtualDeviceManager activityVirtualDeviceManager = 46 (VirtualDeviceManager) activity.getSystemService(Context.VIRTUAL_DEVICE_SERVICE); 47 VirtualDeviceManager anotherActivityVirtualDeviceManager = 48 (VirtualDeviceManager) activity.getSystemService(Context.VIRTUAL_DEVICE_SERVICE); 49 assertThat(anotherActivityVirtualDeviceManager) 50 .isSameInstanceAs(activityVirtualDeviceManager); 51 }); 52 } 53 } 54 55 @Test virtualDeviceManager_instance_retrievesSameVirtualDevices()56 public void virtualDeviceManager_instance_retrievesSameVirtualDevices() { 57 VirtualDeviceManager applicationVirtualDeviceManager = 58 (VirtualDeviceManager) 59 ApplicationProvider.getApplicationContext() 60 .getSystemService(Context.VIRTUAL_DEVICE_SERVICE); 61 try (ActivityScenario<TestActivity> scenario = ActivityScenario.launch(TestActivity.class)) { 62 scenario.onActivity( 63 activity -> { 64 VirtualDeviceManager activityVirtualDeviceManager = 65 (VirtualDeviceManager) activity.getSystemService(Context.VIRTUAL_DEVICE_SERVICE); 66 67 List<VirtualDevice> applicationVirtualDevices = 68 applicationVirtualDeviceManager.getVirtualDevices(); 69 List<VirtualDevice> activityVirtualDevices = 70 activityVirtualDeviceManager.getVirtualDevices(); 71 72 assertThat(applicationVirtualDevices).isNotNull(); 73 assertThat(activityVirtualDevices).isNotNull(); 74 75 assertThat(activityVirtualDevices).isEqualTo(applicationVirtualDevices); 76 }); 77 } 78 } 79 } 80