Merge "Ensure Display Settings Overrides Do Not Impact TestDisplayContent" into sc-dev
diff --git a/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java b/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java
index 33bcc5b..32e5200 100644
--- a/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java
@@ -1974,6 +1974,81 @@
assertEquals(new Rect(500, 0, 2000, 700), rotateBounds);
}
+ /**
+ * Creates a TestDisplayContent using the constructor that takes in display width and height as
+ * parameters and validates that the newly-created TestDisplayContent's DisplayInfo and
+ * WindowConfiguration match the parameters passed into the constructor. Additionally, this test
+ * checks that device-specific overrides are not applied.
+ */
+ @Test
+ public void testCreateTestDisplayContentFromDimensions() {
+ final int displayWidth = 1000;
+ final int displayHeight = 2000;
+ final int windowingMode = WINDOWING_MODE_FULLSCREEN;
+ final boolean ignoreOrientationRequests = false;
+ final float fixedOrientationLetterboxRatio = 0;
+ final DisplayContent testDisplayContent = new TestDisplayContent.Builder(mAtm, displayWidth,
+ displayHeight).build();
+
+ // test display info
+ final DisplayInfo di = testDisplayContent.getDisplayInfo();
+ assertEquals(displayWidth, di.logicalWidth);
+ assertEquals(displayHeight, di.logicalHeight);
+ assertEquals(TestDisplayContent.DEFAULT_LOGICAL_DISPLAY_DENSITY, di.logicalDensityDpi);
+
+ // test configuration
+ final WindowConfiguration windowConfig = testDisplayContent.getConfiguration()
+ .windowConfiguration;
+ assertEquals(displayWidth, windowConfig.getBounds().width());
+ assertEquals(displayHeight, windowConfig.getBounds().height());
+ assertEquals(windowingMode, windowConfig.getWindowingMode());
+
+ // test misc display overrides
+ assertEquals(ignoreOrientationRequests, testDisplayContent.mIgnoreOrientationRequest);
+ assertEquals(fixedOrientationLetterboxRatio, mWm.getFixedOrientationLetterboxAspectRatio(),
+ 0 /* delta */);
+ }
+
+ /**
+ * Creates a TestDisplayContent using the constructor that takes in a DisplayInfo as a parameter
+ * and validates that the newly-created TestDisplayContent's DisplayInfo and WindowConfiguration
+ * match the width, height, and density values set in the DisplayInfo passed as a parameter.
+ * Additionally, this test checks that device-specific overrides are not applied.
+ */
+ @Test
+ public void testCreateTestDisplayContentFromDisplayInfo() {
+ final int displayWidth = 1000;
+ final int displayHeight = 2000;
+ final int windowingMode = WINDOWING_MODE_FULLSCREEN;
+ final boolean ignoreOrientationRequests = false;
+ final float fixedOrientationLetterboxRatio = 0;
+ final DisplayInfo testDisplayInfo = new DisplayInfo();
+ mContext.getDisplay().getDisplayInfo(testDisplayInfo);
+ testDisplayInfo.logicalWidth = displayWidth;
+ testDisplayInfo.logicalHeight = displayHeight;
+ testDisplayInfo.logicalDensityDpi = TestDisplayContent.DEFAULT_LOGICAL_DISPLAY_DENSITY;
+ final DisplayContent testDisplayContent = new TestDisplayContent.Builder(mAtm,
+ testDisplayInfo).build();
+
+ // test display info
+ final DisplayInfo di = testDisplayContent.getDisplayInfo();
+ assertEquals(displayWidth, di.logicalWidth);
+ assertEquals(displayHeight, di.logicalHeight);
+ assertEquals(TestDisplayContent.DEFAULT_LOGICAL_DISPLAY_DENSITY, di.logicalDensityDpi);
+
+ // test configuration
+ final WindowConfiguration windowConfig = testDisplayContent.getConfiguration()
+ .windowConfiguration;
+ assertEquals(displayWidth, windowConfig.getBounds().width());
+ assertEquals(displayHeight, windowConfig.getBounds().height());
+ assertEquals(windowingMode, windowConfig.getWindowingMode());
+
+ // test misc display overrides
+ assertEquals(ignoreOrientationRequests, testDisplayContent.mIgnoreOrientationRequest);
+ assertEquals(fixedOrientationLetterboxRatio, mWm.getFixedOrientationLetterboxAspectRatio(),
+ 0 /* delta */);
+ }
+
private boolean isOptionsPanelAtRight(int displayId) {
return (mWm.getPreferredOptionsPanelGravity(displayId) & Gravity.RIGHT) == Gravity.RIGHT;
}
diff --git a/services/tests/wmtests/src/com/android/server/wm/DisplayWindowSettingsProviderTests.java b/services/tests/wmtests/src/com/android/server/wm/DisplayWindowSettingsProviderTests.java
index 3e05c86..18a1caa 100644
--- a/services/tests/wmtests/src/com/android/server/wm/DisplayWindowSettingsProviderTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/DisplayWindowSettingsProviderTests.java
@@ -102,7 +102,7 @@
SettingsEntry expectedSettings = new SettingsEntry();
expectedSettings.mWindowingMode = WINDOWING_MODE_PINNED;
- readAndAssertExpectedSettings(mPrimaryDisplay, expectedSettings);
+ readAndAssertExpectedSettings(mSecondaryDisplay, expectedSettings);
}
@Test
@@ -176,17 +176,17 @@
// Expected settings should be empty because the default is to read from the primary vendor
// settings location.
SettingsEntry expectedSettings = new SettingsEntry();
- assertEquals(expectedSettings, provider.getSettings(mPrimaryDisplay.getDisplayInfo()));
+ assertEquals(expectedSettings, provider.getSettings(mSecondaryDisplay.getDisplayInfo()));
// Now switch to secondary vendor settings and assert proper settings.
provider.setBaseSettingsStorage(mSecondaryVendorSettingsStorage);
expectedSettings.mWindowingMode = WINDOWING_MODE_FULLSCREEN;
- assertEquals(expectedSettings, provider.getSettings(mPrimaryDisplay.getDisplayInfo()));
+ assertEquals(expectedSettings, provider.getSettings(mSecondaryDisplay.getDisplayInfo()));
// Switch back to primary and assert settings are empty again.
provider.setBaseSettingsStorage(mDefaultVendorSettingsStorage);
expectedSettings.mWindowingMode = WINDOWING_MODE_UNDEFINED;
- assertEquals(expectedSettings, provider.getSettings(mPrimaryDisplay.getDisplayInfo()));
+ assertEquals(expectedSettings, provider.getSettings(mSecondaryDisplay.getDisplayInfo()));
}
@Test
@@ -204,7 +204,7 @@
// take precedence over the vendor provided settings.
SettingsEntry expectedSettings = new SettingsEntry();
expectedSettings.mWindowingMode = WINDOWING_MODE_PINNED;
- assertEquals(expectedSettings, provider.getSettings(mPrimaryDisplay.getDisplayInfo()));
+ assertEquals(expectedSettings, provider.getSettings(mSecondaryDisplay.getDisplayInfo()));
}
@Test
diff --git a/services/tests/wmtests/src/com/android/server/wm/TestDisplayContent.java b/services/tests/wmtests/src/com/android/server/wm/TestDisplayContent.java
index 21536a6..777149b 100644
--- a/services/tests/wmtests/src/com/android/server/wm/TestDisplayContent.java
+++ b/services/tests/wmtests/src/com/android/server/wm/TestDisplayContent.java
@@ -37,6 +37,8 @@
class TestDisplayContent extends DisplayContent {
+ public static final int DEFAULT_LOGICAL_DISPLAY_DENSITY = 300;
+
/** Please use the {@link Builder} to create, visible for use in test builder overrides only. */
TestDisplayContent(RootWindowContainer rootWindowContainer, Display display) {
super(display, rootWindowContainer);
@@ -82,12 +84,21 @@
mService.mContext.getDisplay().getDisplayInfo(mInfo);
mInfo.logicalWidth = width;
mInfo.logicalHeight = height;
- mInfo.logicalDensityDpi = 300;
+ mInfo.logicalDensityDpi = DEFAULT_LOGICAL_DISPLAY_DENSITY;
mInfo.displayCutout = null;
+ // Set unique ID so physical display overrides are not inheritted from
+ // DisplayWindowSettings.
+ mInfo.uniqueId = generateUniqueId();
}
Builder(ActivityTaskManagerService service, DisplayInfo info) {
mService = service;
mInfo = info;
+ // Set unique ID so physical display overrides are not inheritted from
+ // DisplayWindowSettings.
+ mInfo.uniqueId = generateUniqueId();
+ }
+ private String generateUniqueId() {
+ return "TEST_DISPLAY_CONTENT_" + System.currentTimeMillis();
}
Builder setSystemDecorations(boolean yes) {
mSystemDecorations = yes;