Fix activity config tests in ActivityThreadTest
If the activity doesn't declare to handle the corresponding config
change. The Activity#onConfigurationChanged won't be called.
Also add timeout to avoid test hangs.
Bug: 169550676
Test: testHandleActivityConfigurationChanged_ApplyNewConfigurations
testHandleActivityConfigurationChanged_OnlyAppliesNewestConfiguration
Change-Id: I65bc363695ed475d89e6b6828a97c4fed460470a
diff --git a/core/tests/coretests/AndroidManifest.xml b/core/tests/coretests/AndroidManifest.xml
index 71cb2ac..56f18d5 100644
--- a/core/tests/coretests/AndroidManifest.xml
+++ b/core/tests/coretests/AndroidManifest.xml
@@ -1599,6 +1599,7 @@
</activity>
<activity android:name="android.app.activity.ActivityThreadTest$TestActivity"
+ android:configChanges="screenLayout|screenSize|orientation|smallestScreenSize"
android:supportsPictureInPicture="true"
android:exported="true">
</activity>
diff --git a/core/tests/coretests/src/android/app/activity/ActivityThreadTest.java b/core/tests/coretests/src/android/app/activity/ActivityThreadTest.java
index 23534e2..8b25afb 100644
--- a/core/tests/coretests/src/android/app/activity/ActivityThreadTest.java
+++ b/core/tests/coretests/src/android/app/activity/ActivityThreadTest.java
@@ -69,6 +69,7 @@
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
/**
* Test for verifying {@link android.app.ActivityThread} class.
@@ -78,6 +79,7 @@
@RunWith(AndroidJUnit4.class)
@MediumTest
public class ActivityThreadTest {
+ private static final int TIMEOUT_SEC = 10;
// The first sequence number to try with. Use a large number to avoid conflicts with the first a
// few sequence numbers the framework used to launch the test activity.
@@ -309,7 +311,7 @@
transaction.addCallback(ActivityConfigurationChangeItem.obtain(activityConfigPortrait));
appThread.scheduleTransaction(transaction);
- activity.mTestLatch.await();
+ activity.mTestLatch.await(TIMEOUT_SEC, TimeUnit.SECONDS);
activity.mConfigLatch.countDown();
activity.mConfigLatch = null;
@@ -352,7 +354,7 @@
// Wait until the main thread is performing the configuration change for the configuration
// with sequence number BASE_SEQ + 1 before proceeding. This is to mimic the situation where
// the activity takes very long time to process configuration changes.
- activity.mTestLatch.await();
+ activity.mTestLatch.await(TIMEOUT_SEC, TimeUnit.SECONDS);
config = new Configuration();
config.seq = BASE_SEQ + 2;
@@ -738,7 +740,7 @@
mTestLatch.countDown();
}
try {
- mConfigLatch.await();
+ mConfigLatch.await(TIMEOUT_SEC, TimeUnit.SECONDS);
} catch (InterruptedException e) {
throw new IllegalStateException(e);
}