1aea60d2f55dc71ec05c4bd2636e25f2dd7d0bf12Bryce Leepackage com.android.server.wm; 2aea60d2f55dc71ec05c4bd2636e25f2dd7d0bf12Bryce Lee 3aea60d2f55dc71ec05c4bd2636e25f2dd7d0bf12Bryce Leeimport org.junit.Test; 4aea60d2f55dc71ec05c4bd2636e25f2dd7d0bf12Bryce Leeimport org.junit.runner.RunWith; 5aea60d2f55dc71ec05c4bd2636e25f2dd7d0bf12Bryce Lee 6aea60d2f55dc71ec05c4bd2636e25f2dd7d0bf12Bryce Leeimport android.content.res.Configuration; 7aea60d2f55dc71ec05c4bd2636e25f2dd7d0bf12Bryce Leeimport android.graphics.Rect; 8aea60d2f55dc71ec05c4bd2636e25f2dd7d0bf12Bryce Lee 9aea60d2f55dc71ec05c4bd2636e25f2dd7d0bf12Bryce Leeimport android.platform.test.annotations.Presubmit; 10aea60d2f55dc71ec05c4bd2636e25f2dd7d0bf12Bryce Leeimport android.support.test.filters.SmallTest; 11aea60d2f55dc71ec05c4bd2636e25f2dd7d0bf12Bryce Leeimport android.support.test.runner.AndroidJUnit4; 12aea60d2f55dc71ec05c4bd2636e25f2dd7d0bf12Bryce Lee 13aea60d2f55dc71ec05c4bd2636e25f2dd7d0bf12Bryce Leeimport static org.junit.Assert.assertTrue; 14aea60d2f55dc71ec05c4bd2636e25f2dd7d0bf12Bryce Lee 15aea60d2f55dc71ec05c4bd2636e25f2dd7d0bf12Bryce Lee/** 16aea60d2f55dc71ec05c4bd2636e25f2dd7d0bf12Bryce Lee * Tests for the {@link RootWindowContainer} class. 17aea60d2f55dc71ec05c4bd2636e25f2dd7d0bf12Bryce Lee * 18aea60d2f55dc71ec05c4bd2636e25f2dd7d0bf12Bryce Lee * Build/Install/Run: 19aea60d2f55dc71ec05c4bd2636e25f2dd7d0bf12Bryce Lee * atest FrameworksServicesTests:com.android.server.wm.RootWindowContainerTests 20aea60d2f55dc71ec05c4bd2636e25f2dd7d0bf12Bryce Lee */ 21aea60d2f55dc71ec05c4bd2636e25f2dd7d0bf12Bryce Lee@SmallTest 22aea60d2f55dc71ec05c4bd2636e25f2dd7d0bf12Bryce Lee@Presubmit 23aea60d2f55dc71ec05c4bd2636e25f2dd7d0bf12Bryce Lee@RunWith(AndroidJUnit4.class) 24aea60d2f55dc71ec05c4bd2636e25f2dd7d0bf12Bryce Leepublic class RootWindowContainerTests extends WindowTestsBase { 25aea60d2f55dc71ec05c4bd2636e25f2dd7d0bf12Bryce Lee @Test 26aea60d2f55dc71ec05c4bd2636e25f2dd7d0bf12Bryce Lee public void testSetDisplayOverrideConfigurationIfNeeded() throws Exception { 270dc5880ab7dc350738ce3edc873e443c226718f4chaviw synchronized (sWm.mWindowMap) { 280dc5880ab7dc350738ce3edc873e443c226718f4chaviw // Add first stack we expect to be updated with configuration change. 290dc5880ab7dc350738ce3edc873e443c226718f4chaviw final TaskStack stack = createTaskStackOnDisplay(mDisplayContent); 300dc5880ab7dc350738ce3edc873e443c226718f4chaviw stack.getOverrideConfiguration().windowConfiguration.setBounds(new Rect(0, 0, 5, 5)); 310dc5880ab7dc350738ce3edc873e443c226718f4chaviw 320dc5880ab7dc350738ce3edc873e443c226718f4chaviw // Add second task that will be set for deferred removal that should not be returned 330dc5880ab7dc350738ce3edc873e443c226718f4chaviw // with the configuration change. 340dc5880ab7dc350738ce3edc873e443c226718f4chaviw final TaskStack deferredDeletedStack = createTaskStackOnDisplay(mDisplayContent); 350dc5880ab7dc350738ce3edc873e443c226718f4chaviw deferredDeletedStack.getOverrideConfiguration().windowConfiguration.setBounds( 360dc5880ab7dc350738ce3edc873e443c226718f4chaviw new Rect(0, 0, 5, 5)); 370dc5880ab7dc350738ce3edc873e443c226718f4chaviw deferredDeletedStack.mDeferRemoval = true; 380dc5880ab7dc350738ce3edc873e443c226718f4chaviw 390dc5880ab7dc350738ce3edc873e443c226718f4chaviw final Configuration override = new Configuration( 400dc5880ab7dc350738ce3edc873e443c226718f4chaviw mDisplayContent.getOverrideConfiguration()); 410dc5880ab7dc350738ce3edc873e443c226718f4chaviw override.windowConfiguration.setBounds(new Rect(0, 0, 10, 10)); 420dc5880ab7dc350738ce3edc873e443c226718f4chaviw 430dc5880ab7dc350738ce3edc873e443c226718f4chaviw // Set display override. 440dc5880ab7dc350738ce3edc873e443c226718f4chaviw final int[] results = sWm.mRoot.setDisplayOverrideConfigurationIfNeeded(override, 450dc5880ab7dc350738ce3edc873e443c226718f4chaviw mDisplayContent.getDisplayId()); 460dc5880ab7dc350738ce3edc873e443c226718f4chaviw 470dc5880ab7dc350738ce3edc873e443c226718f4chaviw // Ensure only first stack is returned. 480dc5880ab7dc350738ce3edc873e443c226718f4chaviw assertTrue(results.length == 1); 490dc5880ab7dc350738ce3edc873e443c226718f4chaviw assertTrue(results[0] == stack.mStackId); 500dc5880ab7dc350738ce3edc873e443c226718f4chaviw } 51aea60d2f55dc71ec05c4bd2636e25f2dd7d0bf12Bryce Lee } 52aea60d2f55dc71ec05c4bd2636e25f2dd7d0bf12Bryce Lee} 53