Export activity, verify activity start and display size changes

Bug: 29499595
Change-Id: I18aa3e5d4f65d8b4711fbbcb0adffd634ff6377d
diff --git a/hostsidetests/services/activitymanager/appDisplaySize/AndroidManifest.xml b/hostsidetests/services/activitymanager/appDisplaySize/AndroidManifest.xml
index 49649b6..7727759 100644
--- a/hostsidetests/services/activitymanager/appDisplaySize/AndroidManifest.xml
+++ b/hostsidetests/services/activitymanager/appDisplaySize/AndroidManifest.xml
@@ -25,7 +25,8 @@
     <supports-screens android:requiresSmallestWidthDp="100000" />
 
     <application>
-        <activity android:name=".SmallestWidthActivity" />
+        <activity android:name=".SmallestWidthActivity"
+                  android:exported="true" />
     </application>
 
 </manifest>
diff --git a/hostsidetests/services/activitymanager/src/android/server/cts/DisplaySizeTest.java b/hostsidetests/services/activitymanager/src/android/server/cts/DisplaySizeTest.java
index a6a6b5c..9813b00 100644
--- a/hostsidetests/services/activitymanager/src/android/server/cts/DisplaySizeTest.java
+++ b/hostsidetests/services/activitymanager/src/android/server/cts/DisplaySizeTest.java
@@ -31,6 +31,7 @@
     private static final String AM_START_COMMAND = "am start -n %s/%s.%s";
     private static final String AM_FORCE_STOP = "am force-stop %s";
 
+    private static final int ACTIVITY_TIMEOUT_MILLIS = 1000;
     private static final int WINDOW_TIMEOUT_MILLIS = 1000;
 
     private ITestDevice mDevice;
@@ -45,7 +46,7 @@
         // since the feature verifies that we're in a non-default density.
         final int stableDensity = getStableDensity();
         final int targetDensity = (int) (stableDensity * 0.85);
-        mDevice.executeShellCommand("wm density " + targetDensity);
+        setDensity(targetDensity);
     }
 
     @Override
@@ -65,6 +66,7 @@
 
     public void testCompatibilityDialog() throws Exception {
         startActivity("android.displaysize.app", "SmallestWidthActivity");
+        verifyWindowDisplayed("SmallestWidthActivity", ACTIVITY_TIMEOUT_MILLIS);
         verifyWindowDisplayed("UnsupportedDisplaySizeDialog", WINDOW_TIMEOUT_MILLIS);
     }
 
@@ -83,6 +85,16 @@
         }
     }
 
+    private void setDensity(int targetDensity) throws DeviceNotAvailableException {
+        mDevice.executeShellCommand("wm density " + targetDensity);
+
+        // Verify that the density is changed.
+        final String output = mDevice.executeShellCommand("wm density");
+        final boolean success = output.contains("Override density: " + targetDensity);
+
+        assertTrue("Failed to set density to " + targetDensity, success);
+    }
+
     private void forceStopPackage(String packageName) throws DeviceNotAvailableException {
         final String forceStopCmd = String.format(AM_FORCE_STOP, packageName);
         mDevice.executeShellCommand(forceStopCmd);