1 package com.android.server.wm; 2 3 import org.junit.Test; 4 import org.junit.runner.RunWith; 5 6 import android.content.res.Configuration; 7 import android.graphics.Rect; 8 9 import android.platform.test.annotations.Presubmit; 10 import android.support.test.filters.SmallTest; 11 import android.support.test.runner.AndroidJUnit4; 12 13 import static org.junit.Assert.assertTrue; 14 15 /** 16 * Tests for the {@link RootWindowContainer} class. 17 * 18 * Build/Install/Run: 19 * atest FrameworksServicesTests:com.android.server.wm.RootWindowContainerTests 20 */ 21 @SmallTest 22 @Presubmit 23 @RunWith(AndroidJUnit4.class) 24 public class RootWindowContainerTests extends WindowTestsBase { 25 @Test 26 public void testSetDisplayOverrideConfigurationIfNeeded() throws Exception { 27 synchronized (sWm.mWindowMap) { 28 // Add first stack we expect to be updated with configuration change. 29 final TaskStack stack = createTaskStackOnDisplay(mDisplayContent); 30 stack.getOverrideConfiguration().windowConfiguration.setBounds(new Rect(0, 0, 5, 5)); 31 32 // Add second task that will be set for deferred removal that should not be returned 33 // with the configuration change. 34 final TaskStack deferredDeletedStack = createTaskStackOnDisplay(mDisplayContent); 35 deferredDeletedStack.getOverrideConfiguration().windowConfiguration.setBounds( 36 new Rect(0, 0, 5, 5)); 37 deferredDeletedStack.mDeferRemoval = true; 38 39 final Configuration override = new Configuration( 40 mDisplayContent.getOverrideConfiguration()); 41 override.windowConfiguration.setBounds(new Rect(0, 0, 10, 10)); 42 43 // Set display override. 44 final int[] results = sWm.mRoot.setDisplayOverrideConfigurationIfNeeded(override, 45 mDisplayContent.getDisplayId()); 46 47 // Ensure only first stack is returned. 48 assertTrue(results.length == 1); 49 assertTrue(results[0] == stack.mStackId); 50 } 51 } 52 } 53