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