summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreehugger Robot <treehugger-gerrit@google.com>2019-04-30 21:01:48 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2019-04-30 21:01:48 +0000
commitbf71d462f9e02ad1ae8bbc08fc1d1c285b6104af (patch)
treed7a949b8c9fecd643a3f0067b11f270b0f3c6bc5
parentcbc7ad6a81fd9413764fadb482f39c336719a716 (diff)
parenta97b16370504d646b81e7185212ca52ce36f3169 (diff)
downloadcts-bf71d462f9e02ad1ae8bbc08fc1d1c285b6104af.tar.gz
Merge "DO NOT MERGE Automatically switch to native density for testMinimalSizeDocked" into pie-cts-dev
-rw-r--r--tests/framework/base/activitymanager/src/android/server/am/ActivityManagerManifestLayoutTests.java37
1 files changed, 36 insertions, 1 deletions
diff --git a/tests/framework/base/activitymanager/src/android/server/am/ActivityManagerManifestLayoutTests.java b/tests/framework/base/activitymanager/src/android/server/am/ActivityManagerManifestLayoutTests.java
index b491a9fd1fe..615a4427c7a 100644
--- a/tests/framework/base/activitymanager/src/android/server/am/ActivityManagerManifestLayoutTests.java
+++ b/tests/framework/base/activitymanager/src/android/server/am/ActivityManagerManifestLayoutTests.java
@@ -35,10 +35,14 @@ import android.content.ComponentName;
import android.graphics.Rect;
import android.server.am.WindowManagerState.Display;
import android.server.am.WindowManagerState.WindowState;
+import androidx.test.InstrumentationRegistry;
+import android.support.test.uiautomator.UiDevice;
import org.junit.Test;
import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
/**
* Build/Install/Run:
@@ -95,7 +99,38 @@ public class ActivityManagerManifestLayoutTests extends ActivityManagerTestBase
public void testMinimalSizeDocked() throws Exception {
assumeTrue("Skipping test: no multi-window support", supportsSplitScreenMultiWindow());
- testMinimalSize(WINDOWING_MODE_SPLIT_SCREEN_PRIMARY);
+ // We are allowed to set device density to anything different than default,
+ // however, the way we realize is to set a new property to overlay it,
+ // so mDisplay.getDpi() cannot get our real density, now we will run command
+ // automatically switch to native density before the test excecutes and restore later.
+ UiDevice uiDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
+ int density = 0;
+ try {
+ density = resetDensityIfNeeded(uiDevice);
+
+ testMinimalSize(WINDOWING_MODE_SPLIT_SCREEN_PRIMARY);
+
+ } finally {
+ restoreDensityIfNeeded(uiDevice, density);
+ }
+ }
+
+ private int resetDensityIfNeeded(UiDevice device) throws Exception {
+ final String output = device.executeShellCommand("wm density");
+ final Pattern p = Pattern.compile("Override density: (\\d+)");
+ final Matcher m = p.matcher(output);
+ if (m.find()) {
+ device.executeShellCommand("wm density reset");
+ int restoreDensity = Integer.parseInt(m.group(1));
+ return restoreDensity;
+ }
+ return -1;
+ }
+
+ private void restoreDensityIfNeeded(UiDevice device, int restoreDensity) throws Exception {
+ if (restoreDensity > 0) {
+ device.executeShellCommand("wm density " + restoreDensity);
+ }
}
private void testMinimalSize(int windowingMode) throws Exception {