Test that preferKeepClear adds to custom keep clear Rects

Since ViewParents can be set to not clip their children, custom keep
clear areas can extend beyond the bounds of its hosting View.
If preferKeepClear is set, the View's bounds should be reported as
a keep clear area, but it should still report the custom Rects.

Bug: 221073574
Test: atest KeepClearRectsTests
Change-Id: Ia60b1400350b540cdb7bf005685b5c1da04e110a
diff --git a/tests/framework/base/windowmanager/src/android/server/wm/KeepClearRectsTests.java b/tests/framework/base/windowmanager/src/android/server/wm/KeepClearRectsTests.java
index ca997ab..10d33c5 100644
--- a/tests/framework/base/windowmanager/src/android/server/wm/KeepClearRectsTests.java
+++ b/tests/framework/base/windowmanager/src/android/server/wm/KeepClearRectsTests.java
@@ -220,7 +220,7 @@
     }
 
     @Test
-    public void testSetPreferKeepClearOverridesMultipleRects() {
+    public void testSetPreferKeepClearCombinesWithMultipleRects() {
         mTestSession.launchTestActivityOnDisplaySync(TestActivity.class, DEFAULT_DISPLAY);
         final TestActivity activity = mTestSession.getActivity();
         final ComponentName componentName = activity.getComponentName();
@@ -232,7 +232,9 @@
                            getKeepClearRectsForActivity(activity));
 
         mTestSession.runOnMainSyncAndWait(() -> v.setPreferKeepClear(true));
-        assertSameElements(getRectsInScreenSpace(Arrays.asList(viewBounds), componentName),
+        final List<Rect> combinedRects = new ArrayList<>(TEST_KEEP_CLEAR_RECTS);
+        combinedRects.add(viewBounds);
+        assertSameElements(getRectsInScreenSpace(combinedRects, componentName),
                            getKeepClearRectsForActivity(activity));
 
         mTestSession.runOnMainSyncAndWait(() -> v.setPreferKeepClear(false));