Modify FreeformWindowingModeTests#testNonResizeableActivityHasFullDisplayBounds to test for freeform windowing mode behaviour and re-enable the test.
Bug: 341070482
Test: atest CtsWindowManagerDeviceDisplay:FreeformWindowingModeTests
Change-Id: Iaa76deddc93ad58b85cd5d61bdf11c9ee53a2954
diff --git a/tests/framework/base/windowmanager/src/android/server/wm/display/FreeformWindowingModeTests.java b/tests/framework/base/windowmanager/src/android/server/wm/display/FreeformWindowingModeTests.java
index 6df7478..d4b658d 100644
--- a/tests/framework/base/windowmanager/src/android/server/wm/display/FreeformWindowingModeTests.java
+++ b/tests/framework/base/windowmanager/src/android/server/wm/display/FreeformWindowingModeTests.java
@@ -22,13 +22,12 @@
import static android.content.pm.PackageManager.FEATURE_PC;
import static android.server.wm.WindowManagerState.dpToPx;
import static android.server.wm.app.Components.FREEFORM_ACTIVITY;
+import static android.server.wm.app.Components.MIN_ASPECT_RATIO_ACTIVITY;
import static android.server.wm.app.Components.MULTI_WINDOW_FULLSCREEN_ACTIVITY;
import static android.server.wm.app.Components.MultiWindowFullscreenActivity.ACTION_REQUEST_FULLSCREEN;
import static android.server.wm.app.Components.MultiWindowFullscreenActivity.ACTION_RESTORE_FREEFORM;
-import static android.server.wm.app.Components.NON_RESIZEABLE_ACTIVITY;
import static android.server.wm.app.Components.NO_RELAUNCH_ACTIVITY;
import static android.server.wm.app.Components.TEST_ACTIVITY;
-import static android.server.wm.app.Components.TestActivity.TEST_ACTIVITY_ACTION_FINISH_SELF;
import static android.view.WindowManager.DISPLAY_IME_POLICY_LOCAL;
import static org.junit.Assert.assertEquals;
@@ -46,7 +45,6 @@
import com.android.window.flags.Flags;
-import org.junit.Ignore;
import org.junit.Test;
/**
@@ -104,25 +102,13 @@
}
@Test
- @Ignore("b/303085283 This is related to new app compat policy")
public void testNonResizeableActivityHasFullDisplayBounds() throws Exception {
createManagedDevEnableNonResizableMultiWindowSession().set(0);
- launchActivity(TEST_ACTIVITY);
+ // Create a new non-resizeable activity with a min aspect ratio
+ launchActivity(MIN_ASPECT_RATIO_ACTIVITY, WINDOWING_MODE_FREEFORM);
+ mWmState.computeState(MIN_ASPECT_RATIO_ACTIVITY);
- mWmState.computeState(TEST_ACTIVITY);
-
- final Task testTask = mWmState.getTaskByActivity(TEST_ACTIVITY);
- Rect expectedBounds = testTask.getBounds();
- mBroadcastActionTrigger.doAction(TEST_ACTIVITY_ACTION_FINISH_SELF);
- mWmState.waitFor((wmState) ->
- !wmState.containsActivity(TEST_ACTIVITY),
- "Waiting for test activity to finish...");
-
- launchActivity(NON_RESIZEABLE_ACTIVITY, WINDOWING_MODE_FREEFORM);
-
- mWmState.computeState(NON_RESIZEABLE_ACTIVITY);
-
- final Task nonResizeableTask = mWmState.getTaskByActivity(NON_RESIZEABLE_ACTIVITY);
+ final Task nonResizeableTask = mWmState.getTaskByActivity(MIN_ASPECT_RATIO_ACTIVITY);
if (nonResizeableTask.isFullscreen()) {
// If the task is on the fullscreen stack, then we know that it will have bounds that
@@ -130,9 +116,15 @@
return;
}
- // If the task is not on the fullscreen stack, then compare the task bounds to the display
- // bounds.
- assertEquals(expectedBounds, nonResizeableTask.getBounds());
+ if (!supportsFreeform()) {
+ mWmState.assertDoesNotContainStack("Must not contain a freeform stack.",
+ WINDOWING_MODE_FREEFORM, ACTIVITY_TYPE_STANDARD);
+ return;
+ }
+
+ mWmState.assertContainsStack("Must contain a freeform stack.",
+ WINDOWING_MODE_FREEFORM, ACTIVITY_TYPE_STANDARD);
+ assertEquals(WINDOWING_MODE_FREEFORM, nonResizeableTask.getWindowingMode());
}
@Test