CTS tests for VirtualDeviceManager#isVirtualDeviceOwnedMirrorDisplay
Test: m VirtualDisplayTest
Bug: 292212199
Change-Id: I2303fbbc41138c8366a31a33cac94c396cffb22a
diff --git a/tests/tests/virtualdevice/core/src/android/virtualdevice/cts/core/VirtualDisplayTest.java b/tests/tests/virtualdevice/core/src/android/virtualdevice/cts/core/VirtualDisplayTest.java
index c0621e8..d966a8c 100644
--- a/tests/tests/virtualdevice/core/src/android/virtualdevice/cts/core/VirtualDisplayTest.java
+++ b/tests/tests/virtualdevice/core/src/android/virtualdevice/cts/core/VirtualDisplayTest.java
@@ -242,7 +242,7 @@
@RequiresFlagsEnabled(Flags.FLAG_INTERACTIVE_SCREEN_MIRROR)
@Test
- public void createVirtualDisplay_public_doesNotThrow() {
+ public void createVirtualDisplay_public_createsMirrorDisplay() {
VirtualDisplay virtualDisplay = createVirtualDisplayForVirtualDevice(
DisplayManager.VIRTUAL_DISPLAY_FLAG_PUBLIC,
DEFAULT_VIRTUAL_DEVICE_PARAMS);
@@ -250,11 +250,13 @@
assertThat(virtualDisplay).isNotNull();
Display display = virtualDisplay.getDisplay();
assertThat(display.isValid()).isTrue();
+ assertThat(mVirtualDeviceManager.isVirtualDeviceOwnedMirrorDisplay(display.getDisplayId()))
+ .isTrue();
}
@RequiresFlagsEnabled(Flags.FLAG_INTERACTIVE_SCREEN_MIRROR)
@Test
- public void createVirtualDisplay_autoMirror_doesNotThrow() {
+ public void createVirtualDisplay_autoMirror_createsMirrorDisplay() {
VirtualDisplay virtualDisplay = createVirtualDisplayForVirtualDevice(
DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR,
DEFAULT_VIRTUAL_DEVICE_PARAMS);
@@ -262,11 +264,13 @@
assertThat(virtualDisplay).isNotNull();
Display display = virtualDisplay.getDisplay();
assertThat(display.isValid()).isTrue();
+ assertThat(mVirtualDeviceManager.isVirtualDeviceOwnedMirrorDisplay(display.getDisplayId()))
+ .isTrue();
}
@RequiresFlagsEnabled(Flags.FLAG_INTERACTIVE_SCREEN_MIRROR)
@Test
- public void createVirtualDisplay_publicAutoMirror_doesNotThrow() {
+ public void createVirtualDisplay_publicAutoMirror_createsMirrorDisplay() {
VirtualDisplay virtualDisplay = createVirtualDisplayForVirtualDevice(
DisplayManager.VIRTUAL_DISPLAY_FLAG_PUBLIC
| DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR,
@@ -275,6 +279,37 @@
assertThat(virtualDisplay).isNotNull();
Display display = virtualDisplay.getDisplay();
assertThat(display.isValid()).isTrue();
+ assertThat(mVirtualDeviceManager.isVirtualDeviceOwnedMirrorDisplay(display.getDisplayId()))
+ .isTrue();
+ }
+
+ @RequiresFlagsEnabled(Flags.FLAG_INTERACTIVE_SCREEN_MIRROR)
+ @Test
+ public void createVirtualDisplay_ownContentOnly_doesNotCreateMirrorDisplay() {
+ VirtualDisplay virtualDisplay = createVirtualDisplayForVirtualDevice(
+ DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY,
+ DEFAULT_VIRTUAL_DEVICE_PARAMS);
+
+ assertThat(virtualDisplay).isNotNull();
+ Display display = virtualDisplay.getDisplay();
+ assertThat(display.isValid()).isTrue();
+ assertThat(mVirtualDeviceManager.isVirtualDeviceOwnedMirrorDisplay(display.getDisplayId()))
+ .isFalse();
+ }
+
+ @RequiresFlagsEnabled(Flags.FLAG_INTERACTIVE_SCREEN_MIRROR)
+ @Test
+ public void createVirtualDisplay_autoMirrorAndOwnContentOnly_doesNotCreateMirrorDisplay() {
+ VirtualDisplay virtualDisplay = createVirtualDisplayForVirtualDevice(
+ DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY
+ | DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR,
+ DEFAULT_VIRTUAL_DEVICE_PARAMS);
+
+ assertThat(virtualDisplay).isNotNull();
+ Display display = virtualDisplay.getDisplay();
+ assertThat(display.isValid()).isTrue();
+ assertThat(mVirtualDeviceManager.isVirtualDeviceOwnedMirrorDisplay(display.getDisplayId()))
+ .isFalse();
}
@RequiresFlagsEnabled(Flags.FLAG_INTERACTIVE_SCREEN_MIRROR)
@@ -331,6 +366,64 @@
assertThat(display.getFlags() & Display.FLAG_PRESENTATION).isEqualTo(0);
}
+ @RequiresFlagsEnabled(Flags.FLAG_INTERACTIVE_SCREEN_MIRROR)
+ @Test
+ public void isVirtualDeviceOwnedMirrorDisplay_invalidDisplay_returnsFalse() {
+ assertThat(mVirtualDeviceManager.isVirtualDeviceOwnedMirrorDisplay(Display.INVALID_DISPLAY))
+ .isFalse();
+ }
+
+ @RequiresFlagsEnabled(Flags.FLAG_INTERACTIVE_SCREEN_MIRROR)
+ @Test
+ public void isVirtualDeviceOwnedMirrorDisplay_defaultDisplay_returnsFalse() {
+ assertThat(mVirtualDeviceManager.isVirtualDeviceOwnedMirrorDisplay(Display.DEFAULT_DISPLAY))
+ .isFalse();
+ }
+
+ @RequiresFlagsEnabled(Flags.FLAG_INTERACTIVE_SCREEN_MIRROR)
+ @Test
+ public void isVirtualDeviceOwnedMirrorDisplay_unownedAutoMirrorDisplay_returnsFalse() {
+ VirtualDisplay virtualDisplay = createUnownedVirtualDisplay(
+ DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR);
+
+ Display display = virtualDisplay.getDisplay();
+ assertThat(mVirtualDeviceManager.isVirtualDeviceOwnedMirrorDisplay(display.getDisplayId()))
+ .isFalse();
+ }
+
+ @RequiresFlagsEnabled(Flags.FLAG_INTERACTIVE_SCREEN_MIRROR)
+ @Test
+ public void isVirtualDeviceOwnedMirrorDisplay_unownedPublicDisplay_returnsFalse() {
+ VirtualDisplay virtualDisplay = createUnownedVirtualDisplay(
+ DisplayManager.VIRTUAL_DISPLAY_FLAG_PUBLIC);
+
+ Display display = virtualDisplay.getDisplay();
+ assertThat(mVirtualDeviceManager.isVirtualDeviceOwnedMirrorDisplay(display.getDisplayId()))
+ .isFalse();
+ }
+
+ @RequiresFlagsEnabled(Flags.FLAG_INTERACTIVE_SCREEN_MIRROR)
+ @Test
+ public void isVirtualDeviceOwnedMirrorDisplay_unownedPublicAutoMirrorDisplay_returnsFalse() {
+ VirtualDisplay virtualDisplay = createUnownedVirtualDisplay(
+ DisplayManager.VIRTUAL_DISPLAY_FLAG_PUBLIC
+ | DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR);
+
+ Display display = virtualDisplay.getDisplay();
+ assertThat(mVirtualDeviceManager.isVirtualDeviceOwnedMirrorDisplay(display.getDisplayId()))
+ .isFalse();
+ }
+
+ @RequiresFlagsEnabled(Flags.FLAG_INTERACTIVE_SCREEN_MIRROR)
+ @Test
+ public void isVirtualDeviceOwnedMirrorDisplay_unownedDisplay_returnsFalse() {
+ VirtualDisplay virtualDisplay = createUnownedVirtualDisplay();
+
+ Display display = virtualDisplay.getDisplay();
+ assertThat(mVirtualDeviceManager.isVirtualDeviceOwnedMirrorDisplay(display.getDisplayId()))
+ .isFalse();
+ }
+
@Test
public void createVirtualDisplay_trustedDisplay_shouldSpecifyOwnFocusFlag() {
mVirtualDevice =
@@ -547,6 +640,18 @@
config, Runnable::run, mVirtualDisplayCallback);
}
+ private VirtualDisplay createUnownedVirtualDisplay() {
+ VirtualDisplayConfig config = createDefaultVirtualDisplayConfigBuilder().build();
+ return mDisplayManager.createVirtualDisplay(config);
+ }
+
+ private VirtualDisplay createUnownedVirtualDisplay(int displayFlags) {
+ VirtualDisplayConfig config = createDefaultVirtualDisplayConfigBuilder()
+ .setFlags(displayFlags)
+ .build();
+ return mDisplayManager.createVirtualDisplay(config);
+ }
+
private static List<Integer> getDisplayIds(Collection<VirtualDisplay> displays) {
return displays.stream().map((display) -> display.getDisplay().getDisplayId()).collect(
Collectors.toList());