Loading services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java +70 −0 Original line number Diff line number Diff line Loading @@ -41,9 +41,11 @@ import static org.junit.Assert.assertTrue; import android.app.ActivityOptions; import android.app.servertransaction.ClientTransaction; import android.app.servertransaction.PauseActivityItem; import android.content.pm.ActivityInfo; import android.content.res.Configuration; import android.graphics.Rect; import android.platform.test.annotations.Presubmit; import android.util.MergedConfiguration; import android.util.MutableBoolean; import androidx.test.filters.MediumTest; Loading Loading @@ -251,4 +253,72 @@ public class ActivityRecordTests extends ActivityTestsBase { assertEquals(prevSeq + 1, appWindowTokenRequestedOrientation.seq); verify(mActivity.mAppWindowToken).onMergedOverrideConfigurationChanged(); } @Test public void testSetsRelaunchReason_NotDragResizing() { mActivity.setState(ActivityStack.ActivityState.RESUMED, "Testing"); mTask.onRequestedOverrideConfigurationChanged(mTask.getConfiguration()); mActivity.setLastReportedConfiguration(new MergedConfiguration(new Configuration(), mActivity.getConfiguration())); mActivity.info.configChanges &= ~ActivityInfo.CONFIG_ORIENTATION; final Configuration newConfig = new Configuration(mTask.getConfiguration()); newConfig.orientation = newConfig.orientation == Configuration.ORIENTATION_PORTRAIT ? Configuration.ORIENTATION_LANDSCAPE : Configuration.ORIENTATION_PORTRAIT; mTask.onRequestedOverrideConfigurationChanged(newConfig); mActivity.mRelaunchReason = ActivityTaskManagerService.RELAUNCH_REASON_NONE; mActivity.ensureActivityConfiguration(0, false, false); assertEquals(ActivityTaskManagerService.RELAUNCH_REASON_WINDOWING_MODE_RESIZE, mActivity.mRelaunchReason); } @Test public void testSetsRelaunchReason_DragResizing() { mActivity.setState(ActivityStack.ActivityState.RESUMED, "Testing"); mTask.onRequestedOverrideConfigurationChanged(mTask.getConfiguration()); mActivity.setLastReportedConfiguration(new MergedConfiguration(new Configuration(), mActivity.getConfiguration())); mActivity.info.configChanges &= ~ActivityInfo.CONFIG_ORIENTATION; final Configuration newConfig = new Configuration(mTask.getConfiguration()); newConfig.orientation = newConfig.orientation == Configuration.ORIENTATION_PORTRAIT ? Configuration.ORIENTATION_LANDSCAPE : Configuration.ORIENTATION_PORTRAIT; mTask.onRequestedOverrideConfigurationChanged(newConfig); doReturn(true).when(mTask.getTask()).isDragResizing(); mActivity.mRelaunchReason = ActivityTaskManagerService.RELAUNCH_REASON_NONE; mActivity.ensureActivityConfiguration(0, false, false); assertEquals(ActivityTaskManagerService.RELAUNCH_REASON_FREE_RESIZE, mActivity.mRelaunchReason); } @Test public void testSetsRelaunchReason_NonResizeConfigChanges() { mActivity.setState(ActivityStack.ActivityState.RESUMED, "Testing"); mTask.onRequestedOverrideConfigurationChanged(mTask.getConfiguration()); mActivity.setLastReportedConfiguration(new MergedConfiguration(new Configuration(), mActivity.getConfiguration())); mActivity.info.configChanges &= ~ActivityInfo.CONFIG_FONT_SCALE; final Configuration newConfig = new Configuration(mTask.getConfiguration()); newConfig.fontScale = 5; mTask.onRequestedOverrideConfigurationChanged(newConfig); mActivity.mRelaunchReason = ActivityTaskManagerService.RELAUNCH_REASON_WINDOWING_MODE_RESIZE; mActivity.ensureActivityConfiguration(0, false, false); assertEquals(ActivityTaskManagerService.RELAUNCH_REASON_NONE, mActivity.mRelaunchReason); } } services/tests/wmtests/src/com/android/server/wm/ActivityStackTests.java +58 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,8 @@ import static com.android.server.wm.ActivityStack.ActivityState.PAUSING; import static com.android.server.wm.ActivityStack.ActivityState.RESUMED; import static com.android.server.wm.ActivityStack.ActivityState.STOPPING; import static com.android.server.wm.ActivityStack.REMOVE_TASK_MODE_DESTROYING; import static com.android.server.wm.ActivityTaskManagerService.RELAUNCH_REASON_FREE_RESIZE; import static com.android.server.wm.ActivityTaskManagerService.RELAUNCH_REASON_WINDOWING_MODE_RESIZE; import static com.google.common.truth.Truth.assertThat; Loading Loading @@ -686,6 +688,62 @@ public class ActivityStackTests extends ActivityTestsBase { assertThat(mStack.getAllTasks()).isEmpty(); } @Test public void testHandleAppDied_RelaunchesAfterCrashDuringWindowingModeResize() { final ActivityRecord activity = new ActivityBuilder(mService).setTask(mTask).build(); activity.mRelaunchReason = RELAUNCH_REASON_WINDOWING_MODE_RESIZE; activity.launchCount = 1; activity.haveState = false; mStack.handleAppDiedLocked(activity.app); assertEquals(1, mTask.mActivities.size()); assertEquals(1, mStack.getAllTasks().size()); } @Test public void testHandleAppDied_NotRelaunchAfterThreeCrashesDuringWindowingModeResize() { final ActivityRecord activity = new ActivityBuilder(mService).setTask(mTask).build(); activity.mRelaunchReason = RELAUNCH_REASON_WINDOWING_MODE_RESIZE; activity.launchCount = 3; activity.haveState = false; mStack.handleAppDiedLocked(activity.app); assertThat(mTask.mActivities).isEmpty(); assertThat(mStack.getAllTasks()).isEmpty(); } @Test public void testHandleAppDied_RelaunchesAfterCrashDuringFreeResize() { final ActivityRecord activity = new ActivityBuilder(mService).setTask(mTask).build(); activity.mRelaunchReason = RELAUNCH_REASON_FREE_RESIZE; activity.launchCount = 1; activity.haveState = false; mStack.handleAppDiedLocked(activity.app); assertEquals(1, mTask.mActivities.size()); assertEquals(1, mStack.getAllTasks().size()); } @Test public void testHandleAppDied_NotRelaunchAfterThreeCrashesDuringFreeResize() { final ActivityRecord activity = new ActivityBuilder(mService).setTask(mTask).build(); activity.mRelaunchReason = RELAUNCH_REASON_FREE_RESIZE; activity.launchCount = 3; activity.haveState = false; mStack.handleAppDiedLocked(activity.app); assertThat(mTask.mActivities).isEmpty(); assertThat(mStack.getAllTasks()).isEmpty(); } @Test public void testFinishCurrentActivity() { // Create 2 activities on a new display. Loading Loading
services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java +70 −0 Original line number Diff line number Diff line Loading @@ -41,9 +41,11 @@ import static org.junit.Assert.assertTrue; import android.app.ActivityOptions; import android.app.servertransaction.ClientTransaction; import android.app.servertransaction.PauseActivityItem; import android.content.pm.ActivityInfo; import android.content.res.Configuration; import android.graphics.Rect; import android.platform.test.annotations.Presubmit; import android.util.MergedConfiguration; import android.util.MutableBoolean; import androidx.test.filters.MediumTest; Loading Loading @@ -251,4 +253,72 @@ public class ActivityRecordTests extends ActivityTestsBase { assertEquals(prevSeq + 1, appWindowTokenRequestedOrientation.seq); verify(mActivity.mAppWindowToken).onMergedOverrideConfigurationChanged(); } @Test public void testSetsRelaunchReason_NotDragResizing() { mActivity.setState(ActivityStack.ActivityState.RESUMED, "Testing"); mTask.onRequestedOverrideConfigurationChanged(mTask.getConfiguration()); mActivity.setLastReportedConfiguration(new MergedConfiguration(new Configuration(), mActivity.getConfiguration())); mActivity.info.configChanges &= ~ActivityInfo.CONFIG_ORIENTATION; final Configuration newConfig = new Configuration(mTask.getConfiguration()); newConfig.orientation = newConfig.orientation == Configuration.ORIENTATION_PORTRAIT ? Configuration.ORIENTATION_LANDSCAPE : Configuration.ORIENTATION_PORTRAIT; mTask.onRequestedOverrideConfigurationChanged(newConfig); mActivity.mRelaunchReason = ActivityTaskManagerService.RELAUNCH_REASON_NONE; mActivity.ensureActivityConfiguration(0, false, false); assertEquals(ActivityTaskManagerService.RELAUNCH_REASON_WINDOWING_MODE_RESIZE, mActivity.mRelaunchReason); } @Test public void testSetsRelaunchReason_DragResizing() { mActivity.setState(ActivityStack.ActivityState.RESUMED, "Testing"); mTask.onRequestedOverrideConfigurationChanged(mTask.getConfiguration()); mActivity.setLastReportedConfiguration(new MergedConfiguration(new Configuration(), mActivity.getConfiguration())); mActivity.info.configChanges &= ~ActivityInfo.CONFIG_ORIENTATION; final Configuration newConfig = new Configuration(mTask.getConfiguration()); newConfig.orientation = newConfig.orientation == Configuration.ORIENTATION_PORTRAIT ? Configuration.ORIENTATION_LANDSCAPE : Configuration.ORIENTATION_PORTRAIT; mTask.onRequestedOverrideConfigurationChanged(newConfig); doReturn(true).when(mTask.getTask()).isDragResizing(); mActivity.mRelaunchReason = ActivityTaskManagerService.RELAUNCH_REASON_NONE; mActivity.ensureActivityConfiguration(0, false, false); assertEquals(ActivityTaskManagerService.RELAUNCH_REASON_FREE_RESIZE, mActivity.mRelaunchReason); } @Test public void testSetsRelaunchReason_NonResizeConfigChanges() { mActivity.setState(ActivityStack.ActivityState.RESUMED, "Testing"); mTask.onRequestedOverrideConfigurationChanged(mTask.getConfiguration()); mActivity.setLastReportedConfiguration(new MergedConfiguration(new Configuration(), mActivity.getConfiguration())); mActivity.info.configChanges &= ~ActivityInfo.CONFIG_FONT_SCALE; final Configuration newConfig = new Configuration(mTask.getConfiguration()); newConfig.fontScale = 5; mTask.onRequestedOverrideConfigurationChanged(newConfig); mActivity.mRelaunchReason = ActivityTaskManagerService.RELAUNCH_REASON_WINDOWING_MODE_RESIZE; mActivity.ensureActivityConfiguration(0, false, false); assertEquals(ActivityTaskManagerService.RELAUNCH_REASON_NONE, mActivity.mRelaunchReason); } }
services/tests/wmtests/src/com/android/server/wm/ActivityStackTests.java +58 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,8 @@ import static com.android.server.wm.ActivityStack.ActivityState.PAUSING; import static com.android.server.wm.ActivityStack.ActivityState.RESUMED; import static com.android.server.wm.ActivityStack.ActivityState.STOPPING; import static com.android.server.wm.ActivityStack.REMOVE_TASK_MODE_DESTROYING; import static com.android.server.wm.ActivityTaskManagerService.RELAUNCH_REASON_FREE_RESIZE; import static com.android.server.wm.ActivityTaskManagerService.RELAUNCH_REASON_WINDOWING_MODE_RESIZE; import static com.google.common.truth.Truth.assertThat; Loading Loading @@ -686,6 +688,62 @@ public class ActivityStackTests extends ActivityTestsBase { assertThat(mStack.getAllTasks()).isEmpty(); } @Test public void testHandleAppDied_RelaunchesAfterCrashDuringWindowingModeResize() { final ActivityRecord activity = new ActivityBuilder(mService).setTask(mTask).build(); activity.mRelaunchReason = RELAUNCH_REASON_WINDOWING_MODE_RESIZE; activity.launchCount = 1; activity.haveState = false; mStack.handleAppDiedLocked(activity.app); assertEquals(1, mTask.mActivities.size()); assertEquals(1, mStack.getAllTasks().size()); } @Test public void testHandleAppDied_NotRelaunchAfterThreeCrashesDuringWindowingModeResize() { final ActivityRecord activity = new ActivityBuilder(mService).setTask(mTask).build(); activity.mRelaunchReason = RELAUNCH_REASON_WINDOWING_MODE_RESIZE; activity.launchCount = 3; activity.haveState = false; mStack.handleAppDiedLocked(activity.app); assertThat(mTask.mActivities).isEmpty(); assertThat(mStack.getAllTasks()).isEmpty(); } @Test public void testHandleAppDied_RelaunchesAfterCrashDuringFreeResize() { final ActivityRecord activity = new ActivityBuilder(mService).setTask(mTask).build(); activity.mRelaunchReason = RELAUNCH_REASON_FREE_RESIZE; activity.launchCount = 1; activity.haveState = false; mStack.handleAppDiedLocked(activity.app); assertEquals(1, mTask.mActivities.size()); assertEquals(1, mStack.getAllTasks().size()); } @Test public void testHandleAppDied_NotRelaunchAfterThreeCrashesDuringFreeResize() { final ActivityRecord activity = new ActivityBuilder(mService).setTask(mTask).build(); activity.mRelaunchReason = RELAUNCH_REASON_FREE_RESIZE; activity.launchCount = 3; activity.haveState = false; mStack.handleAppDiedLocked(activity.app); assertThat(mTask.mActivities).isEmpty(); assertThat(mStack.getAllTasks()).isEmpty(); } @Test public void testFinishCurrentActivity() { // Create 2 activities on a new display. Loading