From 5c82686c3ef6251273dad7bdd04a1f68364f88b9 Mon Sep 17 00:00:00 2001 From: Marin Shalamanov Date: Thu, 18 Jun 2020 21:28:22 +0200 Subject: [PATCH] Test for DisplayContent.setForcedSize() Test that setForcedSize works properly and it's idempotent. Bug: 156100799 Bug: 159333536 Test: atest DisplayContentTests Change-Id: I82eea699ad2b03c3b48e935aa5b9ddf039980634 --- .../server/wm/DisplayContentTests.java | 58 ++++++++++++++++++- 1 file changed, 55 insertions(+), 3 deletions(-) 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 545901e550c1b..491a2657cfb14 100644 --- a/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java @@ -549,6 +549,58 @@ public class DisplayContentTests extends WindowTestsBase { verifySizes(displayContent, smallerWidth, smallerHeight, smallerDensity); } + @Test + public void testSetForcedSize() { + // Prevent base display metrics for test from being updated to the value of real display. + final DisplayContent displayContent = createDisplayNoUpdateDisplayInfo(); + final int baseWidth = 1280; + final int baseHeight = 720; + final int baseDensity = 320; + + displayContent.mInitialDisplayWidth = baseWidth; + displayContent.mInitialDisplayHeight = baseHeight; + displayContent.mInitialDisplayDensity = baseDensity; + displayContent.updateBaseDisplayMetrics(baseWidth, baseHeight, baseDensity); + + final int forcedWidth = 1920; + final int forcedHeight = 1080; + + // Verify that forcing the size is honored and the density doesn't change. + displayContent.setForcedSize(forcedWidth, forcedHeight); + verifySizes(displayContent, forcedWidth, forcedHeight, baseDensity); + + // Verify that forcing the size is idempotent. + displayContent.setForcedSize(forcedWidth, forcedHeight); + verifySizes(displayContent, forcedWidth, forcedHeight, baseDensity); + } + + @Test + public void testSetForcedSize_WithMaxUiWidth() { + // Prevent base display metrics for test from being updated to the value of real display. + final DisplayContent displayContent = createDisplayNoUpdateDisplayInfo(); + final int baseWidth = 1280; + final int baseHeight = 720; + final int baseDensity = 320; + + displayContent.mInitialDisplayWidth = baseWidth; + displayContent.mInitialDisplayHeight = baseHeight; + displayContent.mInitialDisplayDensity = baseDensity; + displayContent.updateBaseDisplayMetrics(baseWidth, baseHeight, baseDensity); + + displayContent.setMaxUiWidth(baseWidth); + + final int forcedWidth = 1920; + final int forcedHeight = 1080; + + // Verify that forcing bigger size doesn't work and density doesn't change. + displayContent.setForcedSize(forcedWidth, forcedHeight); + verifySizes(displayContent, baseWidth, baseHeight, baseDensity); + + // Verify that forcing the size is idempotent. + displayContent.setForcedSize(forcedWidth, forcedHeight); + verifySizes(displayContent, baseWidth, baseHeight, baseDensity); + } + @Test public void testDisplayCutout_rot0() { final DisplayContent dc = createNewDisplay(); @@ -1396,9 +1448,9 @@ public class DisplayContentTests extends WindowTestsBase { private static void verifySizes(DisplayContent displayContent, int expectedBaseWidth, int expectedBaseHeight, int expectedBaseDensity) { - assertEquals(displayContent.mBaseDisplayWidth, expectedBaseWidth); - assertEquals(displayContent.mBaseDisplayHeight, expectedBaseHeight); - assertEquals(displayContent.mBaseDisplayDensity, expectedBaseDensity); + assertEquals(expectedBaseWidth, displayContent.mBaseDisplayWidth); + assertEquals(expectedBaseHeight, displayContent.mBaseDisplayHeight); + assertEquals(expectedBaseDensity, displayContent.mBaseDisplayDensity); } private void updateFocusedWindow() {