Loading libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/legacysplitscreen/EnterSplitScreenNonResizableNotDock.kt→libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/legacysplitscreen/EnterSplitScreenNotSupportNonResizable.kt +36 −10 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.wm.shell.flicker.legacysplitscreen import android.platform.test.annotations.Postsubmit import android.provider.Settings import android.view.Surface import androidx.test.filters.FlakyTest import androidx.test.filters.RequiresDevice Loading @@ -28,7 +30,9 @@ import com.android.server.wm.flicker.helpers.openQuickstep import com.android.server.wm.traces.parser.windowmanager.WindowManagerStateHelper import com.android.wm.shell.flicker.dockedStackDividerIsInvisible import com.android.wm.shell.flicker.helpers.SplitScreenHelper import org.junit.After import org.junit.Assert import org.junit.Before import org.junit.FixMethodOrder import org.junit.Test import org.junit.runner.RunWith Loading @@ -36,27 +40,31 @@ import org.junit.runners.MethodSorters import org.junit.runners.Parameterized /** * Test open non-resizable activity will auto exit split screen mode * To run this test: `atest WMShellFlickerTests:EnterSplitScreenNonResizableNotDock` * Test enter split screen from non-resizable activity. When the device doesn't support * non-resizable in multi window, there should be no button to enter split screen for non-resizable * activity. * * To run this test: `atest WMShellFlickerTests:EnterSplitScreenNotSupportNonResizable` */ @Postsubmit @RequiresDevice @RunWith(Parameterized::class) @FixMethodOrder(MethodSorters.NAME_ASCENDING) @Parameterized.UseParametersRunnerFactory(FlickerParametersRunnerFactory::class) @FlakyTest(bugId = 173875043) class EnterSplitScreenNonResizableNotDock( class EnterSplitScreenNotSupportNonResizable( testSpec: FlickerTestParameter ) : LegacySplitScreenTransition(testSpec) { var prevSupportNonResizableInMultiWindow = 0 override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit get() = { configuration -> super.transition(this, configuration) teardown { cleanSetup(this, configuration) setup { eachRun { nonResizeableApp.exit(wmHelper) nonResizeableApp.launchViaIntent(wmHelper) } } transitions { nonResizeableApp.launchViaIntent(wmHelper) device.openQuickstep(wmHelper) if (device.canSplitScreen(wmHelper)) { Assert.fail("Non-resizeable app should not enter split screen") Loading @@ -71,8 +79,23 @@ class EnterSplitScreenNonResizableNotDock( nonResizeableApp.defaultWindowName, splitScreenApp.defaultWindowName) @Test fun dockedStackDividerIsInvisible() = testSpec.dockedStackDividerIsInvisible() @Before fun setup() { prevSupportNonResizableInMultiWindow = Settings.Global.getInt(context.contentResolver, Settings.Global.DEVELOPMENT_ENABLE_NON_RESIZABLE_MULTI_WINDOW) if (prevSupportNonResizableInMultiWindow == 1) { // Not support non-resizable in multi window Settings.Global.putInt(context.contentResolver, Settings.Global.DEVELOPMENT_ENABLE_NON_RESIZABLE_MULTI_WINDOW, 0) } } @After fun teardown() { Settings.Global.putInt(context.contentResolver, Settings.Global.DEVELOPMENT_ENABLE_NON_RESIZABLE_MULTI_WINDOW, prevSupportNonResizableInMultiWindow) } @FlakyTest(bugId = 178447631) @Test Loading @@ -83,6 +106,9 @@ class EnterSplitScreenNonResizableNotDock( override fun visibleWindowsShownMoreThanOneConsecutiveEntry() = super.visibleWindowsShownMoreThanOneConsecutiveEntry() @Test fun dockedStackDividerIsInvisible() = testSpec.dockedStackDividerIsInvisible() @Test fun appWindowIsVisible() { testSpec.assertWmEnd { Loading libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/legacysplitscreen/EnterSplitScreenSupportNonResizable.kt 0 → 100644 +123 −0 Original line number Diff line number Diff line /* * Copyright (C) 2021 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.wm.shell.flicker.legacysplitscreen import android.platform.test.annotations.Postsubmit import android.provider.Settings import android.view.Surface import androidx.test.filters.FlakyTest import androidx.test.filters.RequiresDevice import com.android.server.wm.flicker.FlickerParametersRunnerFactory import com.android.server.wm.flicker.FlickerTestParameter import com.android.server.wm.flicker.FlickerTestParameterFactory import com.android.server.wm.flicker.dsl.FlickerBuilder import com.android.server.wm.flicker.helpers.launchSplitScreen import com.android.server.wm.traces.parser.windowmanager.WindowManagerStateHelper import com.android.wm.shell.flicker.dockedStackDividerIsVisible import com.android.wm.shell.flicker.helpers.SplitScreenHelper import org.junit.After import org.junit.Before import org.junit.FixMethodOrder import org.junit.Test import org.junit.runner.RunWith import org.junit.runners.MethodSorters import org.junit.runners.Parameterized /** * Test enter split screen from non-resizable activity. When the device supports * non-resizable in multi window, there should be a button to enter split screen for non-resizable * activity. * * To run this test: `atest WMShellFlickerTests:EnterSplitScreenSupportNonResizable` */ @Postsubmit @RequiresDevice @RunWith(Parameterized::class) @FixMethodOrder(MethodSorters.NAME_ASCENDING) @Parameterized.UseParametersRunnerFactory(FlickerParametersRunnerFactory::class) class EnterSplitScreenSupportNonResizable( testSpec: FlickerTestParameter ) : LegacySplitScreenTransition(testSpec) { var prevSupportNonResizableInMultiWindow = 0 override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit get() = { configuration -> cleanSetup(this, configuration) setup { eachRun { nonResizeableApp.launchViaIntent(wmHelper) } } transitions { device.launchSplitScreen(wmHelper) } } override val ignoredWindows: List<String> get() = listOf(LAUNCHER_PACKAGE_NAME, WindowManagerStateHelper.SPLASH_SCREEN_NAME, WindowManagerStateHelper.SNAPSHOT_WINDOW_NAME, nonResizeableApp.defaultWindowName, splitScreenApp.defaultWindowName) @Before fun setup() { prevSupportNonResizableInMultiWindow = Settings.Global.getInt(context.contentResolver, Settings.Global.DEVELOPMENT_ENABLE_NON_RESIZABLE_MULTI_WINDOW) if (prevSupportNonResizableInMultiWindow != 1) { // Support non-resizable in multi window Settings.Global.putInt(context.contentResolver, Settings.Global.DEVELOPMENT_ENABLE_NON_RESIZABLE_MULTI_WINDOW, 1) } } @After fun teardown() { Settings.Global.putInt(context.contentResolver, Settings.Global.DEVELOPMENT_ENABLE_NON_RESIZABLE_MULTI_WINDOW, prevSupportNonResizableInMultiWindow) } @FlakyTest(bugId = 178447631) @Test override fun visibleLayersShownMoreThanOneConsecutiveEntry() = super.visibleLayersShownMoreThanOneConsecutiveEntry() @Test override fun visibleWindowsShownMoreThanOneConsecutiveEntry() = super.visibleWindowsShownMoreThanOneConsecutiveEntry() @Test fun dockedStackDividerIsVisible() = testSpec.dockedStackDividerIsVisible() @Test fun appWindowIsVisible() { testSpec.assertWmEnd { isVisible(nonResizeableApp.defaultWindowName) } } companion object { @Parameterized.Parameters(name = "{0}") @JvmStatic fun getParams(): Collection<FlickerTestParameter> { return FlickerTestParameterFactory.getInstance().getConfigNonRotationTests( repetitions = SplitScreenHelper.TEST_REPETITIONS, supportedRotations = listOf(Surface.ROTATION_0)) // b/178685668 } } } No newline at end of file libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/legacysplitscreen/LegacySplitScreenFromIntentNotSupportNonResizable.kt 0 → 100644 +145 −0 Original line number Diff line number Diff line /* * Copyright (C) 2021 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.wm.shell.flicker.legacysplitscreen import android.platform.test.annotations.Postsubmit import android.provider.Settings import android.view.Surface import androidx.test.filters.FlakyTest import androidx.test.filters.RequiresDevice import com.android.server.wm.flicker.FlickerParametersRunnerFactory import com.android.server.wm.flicker.FlickerTestParameter import com.android.server.wm.flicker.FlickerTestParameterFactory import com.android.server.wm.flicker.appWindowBecomesInVisible import com.android.server.wm.flicker.appWindowBecomesVisible import com.android.server.wm.flicker.dsl.FlickerBuilder import com.android.server.wm.flicker.helpers.launchSplitScreen import com.android.server.wm.flicker.layerBecomesInvisible import com.android.server.wm.flicker.layerBecomesVisible import com.android.server.wm.traces.parser.windowmanager.WindowManagerStateHelper import com.android.wm.shell.flicker.DOCKED_STACK_DIVIDER import com.android.wm.shell.flicker.dockedStackDividerIsInvisible import com.android.wm.shell.flicker.helpers.SplitScreenHelper import org.junit.After import org.junit.Before import org.junit.FixMethodOrder import org.junit.Test import org.junit.runner.RunWith import org.junit.runners.MethodSorters import org.junit.runners.Parameterized /** * Test launch non-resizable activity via intent in split screen mode. When the device does not * support non-resizable in multi window, it should trigger exit split screen. * To run this test: `atest WMShellFlickerTests:LegacySplitScreenFromIntentNotSupportNonResizable` */ @Postsubmit @RequiresDevice @RunWith(Parameterized::class) @Parameterized.UseParametersRunnerFactory(FlickerParametersRunnerFactory::class) @FixMethodOrder(MethodSorters.NAME_ASCENDING) class LegacySplitScreenFromIntentNotSupportNonResizable( testSpec: FlickerTestParameter ) : LegacySplitScreenTransition(testSpec) { var prevSupportNonResizableInMultiWindow = 0 override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit get() = { configuration -> cleanSetup(this, configuration) setup { eachRun { splitScreenApp.launchViaIntent(wmHelper) device.launchSplitScreen(wmHelper) } } transitions { nonResizeableApp.launchViaIntent(wmHelper) wmHelper.waitForAppTransitionIdle() } } override val ignoredWindows: List<String> get() = listOf(DOCKED_STACK_DIVIDER, LAUNCHER_PACKAGE_NAME, LETTERBOX_NAME, nonResizeableApp.defaultWindowName, splitScreenApp.defaultWindowName, WindowManagerStateHelper.SPLASH_SCREEN_NAME, WindowManagerStateHelper.SNAPSHOT_WINDOW_NAME) @Before fun setup() { prevSupportNonResizableInMultiWindow = Settings.Global.getInt(context.contentResolver, Settings.Global.DEVELOPMENT_ENABLE_NON_RESIZABLE_MULTI_WINDOW) if (prevSupportNonResizableInMultiWindow == 1) { // Not support non-resizable in multi window Settings.Global.putInt(context.contentResolver, Settings.Global.DEVELOPMENT_ENABLE_NON_RESIZABLE_MULTI_WINDOW, 0) } } @After fun teardown() { Settings.Global.putInt(context.contentResolver, Settings.Global.DEVELOPMENT_ENABLE_NON_RESIZABLE_MULTI_WINDOW, prevSupportNonResizableInMultiWindow) } @FlakyTest(bugId = 178447631) @Test override fun visibleLayersShownMoreThanOneConsecutiveEntry() = super.visibleLayersShownMoreThanOneConsecutiveEntry() @FlakyTest(bugId = 178447631) @Test override fun visibleWindowsShownMoreThanOneConsecutiveEntry() = super.visibleWindowsShownMoreThanOneConsecutiveEntry() @Test fun resizableAppLayerBecomesInvisible() = testSpec.layerBecomesInvisible(splitScreenApp.defaultWindowName) @Test fun nonResizableAppLayerBecomesVisible() = testSpec.layerBecomesVisible(nonResizeableApp.defaultWindowName) @Test fun resizableAppWindowBecomesInvisible() = testSpec.appWindowBecomesInVisible(splitScreenApp.defaultWindowName) @Test fun nonResizableAppWindowBecomesVisible() = testSpec.appWindowBecomesVisible(nonResizeableApp.defaultWindowName) @Test fun dockedStackDividerIsInvisibleAtEnd() = testSpec.dockedStackDividerIsInvisible() @Test fun onlyNonResizableAppWindowIsVisibleAtEnd() { testSpec.assertWmEnd { isInvisible(splitScreenApp.defaultWindowName) isVisible(nonResizeableApp.defaultWindowName) } } companion object { @Parameterized.Parameters(name = "{0}") @JvmStatic fun getParams(): Collection<FlickerTestParameter> { return FlickerTestParameterFactory.getInstance().getConfigNonRotationTests( repetitions = SplitScreenHelper.TEST_REPETITIONS, supportedRotations = listOf(Surface.ROTATION_0)) // b/178685668 } } } libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/legacysplitscreen/NonResizableLaunchInLegacySplitScreen.kt→libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/legacysplitscreen/LegacySplitScreenFromIntentSupportNonResizable.kt +47 −24 Original line number Diff line number Diff line Loading @@ -16,22 +16,24 @@ package com.android.wm.shell.flicker.legacysplitscreen import android.platform.test.annotations.Presubmit import android.platform.test.annotations.Postsubmit import android.provider.Settings import android.view.Surface import androidx.test.filters.FlakyTest import androidx.test.filters.RequiresDevice import com.android.server.wm.flicker.FlickerParametersRunnerFactory import com.android.server.wm.flicker.FlickerTestParameter import com.android.server.wm.flicker.FlickerTestParameterFactory import com.android.server.wm.flicker.appWindowBecomesInVisible import com.android.server.wm.flicker.appWindowBecomesVisible import com.android.server.wm.flicker.dsl.FlickerBuilder import com.android.server.wm.flicker.helpers.launchSplitScreen import com.android.server.wm.flicker.layerBecomesInvisible import com.android.server.wm.flicker.layerBecomesVisible import com.android.server.wm.traces.parser.windowmanager.WindowManagerStateHelper import com.android.wm.shell.flicker.DOCKED_STACK_DIVIDER import com.android.wm.shell.flicker.dockedStackDividerIsVisible import com.android.wm.shell.flicker.helpers.SplitScreenHelper import org.junit.After import org.junit.Before import org.junit.FixMethodOrder import org.junit.Test import org.junit.runner.RunWith Loading @@ -39,18 +41,20 @@ import org.junit.runners.MethodSorters import org.junit.runners.Parameterized /** * Test launch non resizable activity in split screen mode will trigger exit split screen mode * (Non resizable activity launch via intent) * To run this test: `atest WMShellFlickerTests:NonResizableLaunchInLegacySplitScreen` * Test launch non-resizable activity via intent in split screen mode. When the device supports * non-resizable in multi window, it should show the non-resizable app in split screen. * To run this test: `atest WMShellFlickerTests:LegacySplitScreenFromIntentSupportNonResizable` */ @Presubmit @Postsubmit @RequiresDevice @RunWith(Parameterized::class) @Parameterized.UseParametersRunnerFactory(FlickerParametersRunnerFactory::class) @FixMethodOrder(MethodSorters.NAME_ASCENDING) class NonResizableLaunchInLegacySplitScreen( class LegacySplitScreenFromIntentSupportNonResizable( testSpec: FlickerTestParameter ) : LegacySplitScreenTransition(testSpec) { var prevSupportNonResizableInMultiWindow = 0 override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit get() = { configuration -> cleanSetup(this, configuration) Loading @@ -72,33 +76,52 @@ class NonResizableLaunchInLegacySplitScreen( WindowManagerStateHelper.SPLASH_SCREEN_NAME, WindowManagerStateHelper.SNAPSHOT_WINDOW_NAME) @Presubmit @Test fun layerBecomesVisible() = testSpec.layerBecomesVisible(nonResizeableApp.defaultWindowName) @Before fun setup() { prevSupportNonResizableInMultiWindow = Settings.Global.getInt(context.contentResolver, Settings.Global.DEVELOPMENT_ENABLE_NON_RESIZABLE_MULTI_WINDOW) if (prevSupportNonResizableInMultiWindow == 0) { // Support non-resizable in multi window Settings.Global.putInt(context.contentResolver, Settings.Global.DEVELOPMENT_ENABLE_NON_RESIZABLE_MULTI_WINDOW, 1) } } @Presubmit @Test fun layerBecomesInvisible() = testSpec.layerBecomesInvisible(splitScreenApp.defaultWindowName) @After fun teardown() { Settings.Global.putInt(context.contentResolver, Settings.Global.DEVELOPMENT_ENABLE_NON_RESIZABLE_MULTI_WINDOW, prevSupportNonResizableInMultiWindow) } @FlakyTest(bugId = 178447631) @Test override fun visibleLayersShownMoreThanOneConsecutiveEntry() = super.visibleLayersShownMoreThanOneConsecutiveEntry() @Presubmit @FlakyTest(bugId = 178447631) @Test override fun visibleWindowsShownMoreThanOneConsecutiveEntry() = super.visibleWindowsShownMoreThanOneConsecutiveEntry() @Test fun appWindowBecomesVisible() = fun nonResizableAppLayerBecomesVisible() = testSpec.layerBecomesVisible(nonResizeableApp.defaultWindowName) @Test fun nonResizableAppWindowBecomesVisible() = testSpec.appWindowBecomesVisible(nonResizeableApp.defaultWindowName) @Presubmit @Test fun appWindowBecomesInVisible() = testSpec.appWindowBecomesInVisible(splitScreenApp.defaultWindowName) fun dockedStackDividerIsVisibleAtEnd() = testSpec.dockedStackDividerIsVisible() @FlakyTest(bugId = 178447631) @Test override fun visibleWindowsShownMoreThanOneConsecutiveEntry() = super.visibleWindowsShownMoreThanOneConsecutiveEntry() fun bothAppsWindowsAreVisibleAtEnd() { testSpec.assertWmEnd { isVisible(splitScreenApp.defaultWindowName) isVisible(nonResizeableApp.defaultWindowName) } } companion object { @Parameterized.Parameters(name = "{0}") Loading libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/legacysplitscreen/LegacySplitScreenFromRecentNotSupportNonResizable.kt 0 → 100644 +146 −0 Original line number Diff line number Diff line /* * Copyright (C) 2021 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.wm.shell.flicker.legacysplitscreen import android.platform.test.annotations.Postsubmit import android.provider.Settings import android.view.Surface import androidx.test.filters.FlakyTest import androidx.test.filters.RequiresDevice import com.android.server.wm.flicker.FlickerParametersRunnerFactory import com.android.server.wm.flicker.FlickerTestParameter import com.android.server.wm.flicker.FlickerTestParameterFactory import com.android.server.wm.flicker.appWindowBecomesInVisible import com.android.server.wm.flicker.appWindowBecomesVisible import com.android.server.wm.flicker.dsl.FlickerBuilder import com.android.server.wm.flicker.helpers.launchSplitScreen import com.android.server.wm.flicker.helpers.reopenAppFromOverview import com.android.server.wm.flicker.layerBecomesInvisible import com.android.server.wm.flicker.layerBecomesVisible import com.android.server.wm.traces.parser.windowmanager.WindowManagerStateHelper import com.android.wm.shell.flicker.DOCKED_STACK_DIVIDER import com.android.wm.shell.flicker.dockedStackDividerIsInvisible import com.android.wm.shell.flicker.helpers.SplitScreenHelper import org.junit.After import org.junit.Before import org.junit.FixMethodOrder import org.junit.Test import org.junit.runner.RunWith import org.junit.runners.MethodSorters import org.junit.runners.Parameterized /** * Test launch non-resizable activity via recent overview in split screen mode. When the device does * not support non-resizable in multi window, it should trigger exit split screen. * To run this test: `atest WMShellFlickerTests:LegacySplitScreenFromRecentNotSupportNonResizable` */ @Postsubmit @RequiresDevice @RunWith(Parameterized::class) @Parameterized.UseParametersRunnerFactory(FlickerParametersRunnerFactory::class) @FixMethodOrder(MethodSorters.NAME_ASCENDING) class LegacySplitScreenFromRecentNotSupportNonResizable( testSpec: FlickerTestParameter ) : LegacySplitScreenTransition(testSpec) { var prevSupportNonResizableInMultiWindow = 0 override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit get() = { configuration -> cleanSetup(this, configuration) setup { eachRun { nonResizeableApp.launchViaIntent(wmHelper) splitScreenApp.launchViaIntent(wmHelper) device.launchSplitScreen(wmHelper) } } transitions { device.reopenAppFromOverview(wmHelper) } } override val ignoredWindows: List<String> get() = listOf(DOCKED_STACK_DIVIDER, LAUNCHER_PACKAGE_NAME, LETTERBOX_NAME, TOAST_NAME, splitScreenApp.defaultWindowName, nonResizeableApp.defaultWindowName, WindowManagerStateHelper.SPLASH_SCREEN_NAME, WindowManagerStateHelper.SNAPSHOT_WINDOW_NAME) @Before fun setup() { prevSupportNonResizableInMultiWindow = Settings.Global.getInt(context.contentResolver, Settings.Global.DEVELOPMENT_ENABLE_NON_RESIZABLE_MULTI_WINDOW) if (prevSupportNonResizableInMultiWindow == 1) { // Not support non-resizable in multi window Settings.Global.putInt(context.contentResolver, Settings.Global.DEVELOPMENT_ENABLE_NON_RESIZABLE_MULTI_WINDOW, 0) } } @After fun teardown() { Settings.Global.putInt(context.contentResolver, Settings.Global.DEVELOPMENT_ENABLE_NON_RESIZABLE_MULTI_WINDOW, prevSupportNonResizableInMultiWindow) } @FlakyTest(bugId = 178447631) @Test override fun visibleLayersShownMoreThanOneConsecutiveEntry() = super.visibleLayersShownMoreThanOneConsecutiveEntry() @FlakyTest(bugId = 178447631) @Test override fun visibleWindowsShownMoreThanOneConsecutiveEntry() = super.visibleWindowsShownMoreThanOneConsecutiveEntry() @Test fun resizableAppLayerBecomesInvisible() = testSpec.layerBecomesInvisible(splitScreenApp.defaultWindowName) @Test fun nonResizableAppLayerBecomesVisible() = testSpec.layerBecomesVisible(nonResizeableApp.defaultWindowName) @Test fun resizableAppWindowBecomesInvisible() = testSpec.appWindowBecomesInVisible(splitScreenApp.defaultWindowName) @Test fun nonResizableAppWindowBecomesVisible() = testSpec.appWindowBecomesVisible(nonResizeableApp.defaultWindowName) @Test fun dockedStackDividerIsInvisibleAtEnd() = testSpec.dockedStackDividerIsInvisible() @Test fun onlyNonResizableAppWindowIsVisibleAtEnd() { testSpec.assertWmEnd { isInvisible(splitScreenApp.defaultWindowName) isVisible(nonResizeableApp.defaultWindowName) } } companion object { @Parameterized.Parameters(name = "{0}") @JvmStatic fun getParams(): Collection<FlickerTestParameter> { return FlickerTestParameterFactory.getInstance().getConfigNonRotationTests( repetitions = SplitScreenHelper.TEST_REPETITIONS, supportedRotations = listOf(Surface.ROTATION_0)) // b/178685668 } } } Loading
libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/legacysplitscreen/EnterSplitScreenNonResizableNotDock.kt→libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/legacysplitscreen/EnterSplitScreenNotSupportNonResizable.kt +36 −10 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.wm.shell.flicker.legacysplitscreen import android.platform.test.annotations.Postsubmit import android.provider.Settings import android.view.Surface import androidx.test.filters.FlakyTest import androidx.test.filters.RequiresDevice Loading @@ -28,7 +30,9 @@ import com.android.server.wm.flicker.helpers.openQuickstep import com.android.server.wm.traces.parser.windowmanager.WindowManagerStateHelper import com.android.wm.shell.flicker.dockedStackDividerIsInvisible import com.android.wm.shell.flicker.helpers.SplitScreenHelper import org.junit.After import org.junit.Assert import org.junit.Before import org.junit.FixMethodOrder import org.junit.Test import org.junit.runner.RunWith Loading @@ -36,27 +40,31 @@ import org.junit.runners.MethodSorters import org.junit.runners.Parameterized /** * Test open non-resizable activity will auto exit split screen mode * To run this test: `atest WMShellFlickerTests:EnterSplitScreenNonResizableNotDock` * Test enter split screen from non-resizable activity. When the device doesn't support * non-resizable in multi window, there should be no button to enter split screen for non-resizable * activity. * * To run this test: `atest WMShellFlickerTests:EnterSplitScreenNotSupportNonResizable` */ @Postsubmit @RequiresDevice @RunWith(Parameterized::class) @FixMethodOrder(MethodSorters.NAME_ASCENDING) @Parameterized.UseParametersRunnerFactory(FlickerParametersRunnerFactory::class) @FlakyTest(bugId = 173875043) class EnterSplitScreenNonResizableNotDock( class EnterSplitScreenNotSupportNonResizable( testSpec: FlickerTestParameter ) : LegacySplitScreenTransition(testSpec) { var prevSupportNonResizableInMultiWindow = 0 override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit get() = { configuration -> super.transition(this, configuration) teardown { cleanSetup(this, configuration) setup { eachRun { nonResizeableApp.exit(wmHelper) nonResizeableApp.launchViaIntent(wmHelper) } } transitions { nonResizeableApp.launchViaIntent(wmHelper) device.openQuickstep(wmHelper) if (device.canSplitScreen(wmHelper)) { Assert.fail("Non-resizeable app should not enter split screen") Loading @@ -71,8 +79,23 @@ class EnterSplitScreenNonResizableNotDock( nonResizeableApp.defaultWindowName, splitScreenApp.defaultWindowName) @Test fun dockedStackDividerIsInvisible() = testSpec.dockedStackDividerIsInvisible() @Before fun setup() { prevSupportNonResizableInMultiWindow = Settings.Global.getInt(context.contentResolver, Settings.Global.DEVELOPMENT_ENABLE_NON_RESIZABLE_MULTI_WINDOW) if (prevSupportNonResizableInMultiWindow == 1) { // Not support non-resizable in multi window Settings.Global.putInt(context.contentResolver, Settings.Global.DEVELOPMENT_ENABLE_NON_RESIZABLE_MULTI_WINDOW, 0) } } @After fun teardown() { Settings.Global.putInt(context.contentResolver, Settings.Global.DEVELOPMENT_ENABLE_NON_RESIZABLE_MULTI_WINDOW, prevSupportNonResizableInMultiWindow) } @FlakyTest(bugId = 178447631) @Test Loading @@ -83,6 +106,9 @@ class EnterSplitScreenNonResizableNotDock( override fun visibleWindowsShownMoreThanOneConsecutiveEntry() = super.visibleWindowsShownMoreThanOneConsecutiveEntry() @Test fun dockedStackDividerIsInvisible() = testSpec.dockedStackDividerIsInvisible() @Test fun appWindowIsVisible() { testSpec.assertWmEnd { Loading
libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/legacysplitscreen/EnterSplitScreenSupportNonResizable.kt 0 → 100644 +123 −0 Original line number Diff line number Diff line /* * Copyright (C) 2021 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.wm.shell.flicker.legacysplitscreen import android.platform.test.annotations.Postsubmit import android.provider.Settings import android.view.Surface import androidx.test.filters.FlakyTest import androidx.test.filters.RequiresDevice import com.android.server.wm.flicker.FlickerParametersRunnerFactory import com.android.server.wm.flicker.FlickerTestParameter import com.android.server.wm.flicker.FlickerTestParameterFactory import com.android.server.wm.flicker.dsl.FlickerBuilder import com.android.server.wm.flicker.helpers.launchSplitScreen import com.android.server.wm.traces.parser.windowmanager.WindowManagerStateHelper import com.android.wm.shell.flicker.dockedStackDividerIsVisible import com.android.wm.shell.flicker.helpers.SplitScreenHelper import org.junit.After import org.junit.Before import org.junit.FixMethodOrder import org.junit.Test import org.junit.runner.RunWith import org.junit.runners.MethodSorters import org.junit.runners.Parameterized /** * Test enter split screen from non-resizable activity. When the device supports * non-resizable in multi window, there should be a button to enter split screen for non-resizable * activity. * * To run this test: `atest WMShellFlickerTests:EnterSplitScreenSupportNonResizable` */ @Postsubmit @RequiresDevice @RunWith(Parameterized::class) @FixMethodOrder(MethodSorters.NAME_ASCENDING) @Parameterized.UseParametersRunnerFactory(FlickerParametersRunnerFactory::class) class EnterSplitScreenSupportNonResizable( testSpec: FlickerTestParameter ) : LegacySplitScreenTransition(testSpec) { var prevSupportNonResizableInMultiWindow = 0 override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit get() = { configuration -> cleanSetup(this, configuration) setup { eachRun { nonResizeableApp.launchViaIntent(wmHelper) } } transitions { device.launchSplitScreen(wmHelper) } } override val ignoredWindows: List<String> get() = listOf(LAUNCHER_PACKAGE_NAME, WindowManagerStateHelper.SPLASH_SCREEN_NAME, WindowManagerStateHelper.SNAPSHOT_WINDOW_NAME, nonResizeableApp.defaultWindowName, splitScreenApp.defaultWindowName) @Before fun setup() { prevSupportNonResizableInMultiWindow = Settings.Global.getInt(context.contentResolver, Settings.Global.DEVELOPMENT_ENABLE_NON_RESIZABLE_MULTI_WINDOW) if (prevSupportNonResizableInMultiWindow != 1) { // Support non-resizable in multi window Settings.Global.putInt(context.contentResolver, Settings.Global.DEVELOPMENT_ENABLE_NON_RESIZABLE_MULTI_WINDOW, 1) } } @After fun teardown() { Settings.Global.putInt(context.contentResolver, Settings.Global.DEVELOPMENT_ENABLE_NON_RESIZABLE_MULTI_WINDOW, prevSupportNonResizableInMultiWindow) } @FlakyTest(bugId = 178447631) @Test override fun visibleLayersShownMoreThanOneConsecutiveEntry() = super.visibleLayersShownMoreThanOneConsecutiveEntry() @Test override fun visibleWindowsShownMoreThanOneConsecutiveEntry() = super.visibleWindowsShownMoreThanOneConsecutiveEntry() @Test fun dockedStackDividerIsVisible() = testSpec.dockedStackDividerIsVisible() @Test fun appWindowIsVisible() { testSpec.assertWmEnd { isVisible(nonResizeableApp.defaultWindowName) } } companion object { @Parameterized.Parameters(name = "{0}") @JvmStatic fun getParams(): Collection<FlickerTestParameter> { return FlickerTestParameterFactory.getInstance().getConfigNonRotationTests( repetitions = SplitScreenHelper.TEST_REPETITIONS, supportedRotations = listOf(Surface.ROTATION_0)) // b/178685668 } } } No newline at end of file
libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/legacysplitscreen/LegacySplitScreenFromIntentNotSupportNonResizable.kt 0 → 100644 +145 −0 Original line number Diff line number Diff line /* * Copyright (C) 2021 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.wm.shell.flicker.legacysplitscreen import android.platform.test.annotations.Postsubmit import android.provider.Settings import android.view.Surface import androidx.test.filters.FlakyTest import androidx.test.filters.RequiresDevice import com.android.server.wm.flicker.FlickerParametersRunnerFactory import com.android.server.wm.flicker.FlickerTestParameter import com.android.server.wm.flicker.FlickerTestParameterFactory import com.android.server.wm.flicker.appWindowBecomesInVisible import com.android.server.wm.flicker.appWindowBecomesVisible import com.android.server.wm.flicker.dsl.FlickerBuilder import com.android.server.wm.flicker.helpers.launchSplitScreen import com.android.server.wm.flicker.layerBecomesInvisible import com.android.server.wm.flicker.layerBecomesVisible import com.android.server.wm.traces.parser.windowmanager.WindowManagerStateHelper import com.android.wm.shell.flicker.DOCKED_STACK_DIVIDER import com.android.wm.shell.flicker.dockedStackDividerIsInvisible import com.android.wm.shell.flicker.helpers.SplitScreenHelper import org.junit.After import org.junit.Before import org.junit.FixMethodOrder import org.junit.Test import org.junit.runner.RunWith import org.junit.runners.MethodSorters import org.junit.runners.Parameterized /** * Test launch non-resizable activity via intent in split screen mode. When the device does not * support non-resizable in multi window, it should trigger exit split screen. * To run this test: `atest WMShellFlickerTests:LegacySplitScreenFromIntentNotSupportNonResizable` */ @Postsubmit @RequiresDevice @RunWith(Parameterized::class) @Parameterized.UseParametersRunnerFactory(FlickerParametersRunnerFactory::class) @FixMethodOrder(MethodSorters.NAME_ASCENDING) class LegacySplitScreenFromIntentNotSupportNonResizable( testSpec: FlickerTestParameter ) : LegacySplitScreenTransition(testSpec) { var prevSupportNonResizableInMultiWindow = 0 override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit get() = { configuration -> cleanSetup(this, configuration) setup { eachRun { splitScreenApp.launchViaIntent(wmHelper) device.launchSplitScreen(wmHelper) } } transitions { nonResizeableApp.launchViaIntent(wmHelper) wmHelper.waitForAppTransitionIdle() } } override val ignoredWindows: List<String> get() = listOf(DOCKED_STACK_DIVIDER, LAUNCHER_PACKAGE_NAME, LETTERBOX_NAME, nonResizeableApp.defaultWindowName, splitScreenApp.defaultWindowName, WindowManagerStateHelper.SPLASH_SCREEN_NAME, WindowManagerStateHelper.SNAPSHOT_WINDOW_NAME) @Before fun setup() { prevSupportNonResizableInMultiWindow = Settings.Global.getInt(context.contentResolver, Settings.Global.DEVELOPMENT_ENABLE_NON_RESIZABLE_MULTI_WINDOW) if (prevSupportNonResizableInMultiWindow == 1) { // Not support non-resizable in multi window Settings.Global.putInt(context.contentResolver, Settings.Global.DEVELOPMENT_ENABLE_NON_RESIZABLE_MULTI_WINDOW, 0) } } @After fun teardown() { Settings.Global.putInt(context.contentResolver, Settings.Global.DEVELOPMENT_ENABLE_NON_RESIZABLE_MULTI_WINDOW, prevSupportNonResizableInMultiWindow) } @FlakyTest(bugId = 178447631) @Test override fun visibleLayersShownMoreThanOneConsecutiveEntry() = super.visibleLayersShownMoreThanOneConsecutiveEntry() @FlakyTest(bugId = 178447631) @Test override fun visibleWindowsShownMoreThanOneConsecutiveEntry() = super.visibleWindowsShownMoreThanOneConsecutiveEntry() @Test fun resizableAppLayerBecomesInvisible() = testSpec.layerBecomesInvisible(splitScreenApp.defaultWindowName) @Test fun nonResizableAppLayerBecomesVisible() = testSpec.layerBecomesVisible(nonResizeableApp.defaultWindowName) @Test fun resizableAppWindowBecomesInvisible() = testSpec.appWindowBecomesInVisible(splitScreenApp.defaultWindowName) @Test fun nonResizableAppWindowBecomesVisible() = testSpec.appWindowBecomesVisible(nonResizeableApp.defaultWindowName) @Test fun dockedStackDividerIsInvisibleAtEnd() = testSpec.dockedStackDividerIsInvisible() @Test fun onlyNonResizableAppWindowIsVisibleAtEnd() { testSpec.assertWmEnd { isInvisible(splitScreenApp.defaultWindowName) isVisible(nonResizeableApp.defaultWindowName) } } companion object { @Parameterized.Parameters(name = "{0}") @JvmStatic fun getParams(): Collection<FlickerTestParameter> { return FlickerTestParameterFactory.getInstance().getConfigNonRotationTests( repetitions = SplitScreenHelper.TEST_REPETITIONS, supportedRotations = listOf(Surface.ROTATION_0)) // b/178685668 } } }
libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/legacysplitscreen/NonResizableLaunchInLegacySplitScreen.kt→libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/legacysplitscreen/LegacySplitScreenFromIntentSupportNonResizable.kt +47 −24 Original line number Diff line number Diff line Loading @@ -16,22 +16,24 @@ package com.android.wm.shell.flicker.legacysplitscreen import android.platform.test.annotations.Presubmit import android.platform.test.annotations.Postsubmit import android.provider.Settings import android.view.Surface import androidx.test.filters.FlakyTest import androidx.test.filters.RequiresDevice import com.android.server.wm.flicker.FlickerParametersRunnerFactory import com.android.server.wm.flicker.FlickerTestParameter import com.android.server.wm.flicker.FlickerTestParameterFactory import com.android.server.wm.flicker.appWindowBecomesInVisible import com.android.server.wm.flicker.appWindowBecomesVisible import com.android.server.wm.flicker.dsl.FlickerBuilder import com.android.server.wm.flicker.helpers.launchSplitScreen import com.android.server.wm.flicker.layerBecomesInvisible import com.android.server.wm.flicker.layerBecomesVisible import com.android.server.wm.traces.parser.windowmanager.WindowManagerStateHelper import com.android.wm.shell.flicker.DOCKED_STACK_DIVIDER import com.android.wm.shell.flicker.dockedStackDividerIsVisible import com.android.wm.shell.flicker.helpers.SplitScreenHelper import org.junit.After import org.junit.Before import org.junit.FixMethodOrder import org.junit.Test import org.junit.runner.RunWith Loading @@ -39,18 +41,20 @@ import org.junit.runners.MethodSorters import org.junit.runners.Parameterized /** * Test launch non resizable activity in split screen mode will trigger exit split screen mode * (Non resizable activity launch via intent) * To run this test: `atest WMShellFlickerTests:NonResizableLaunchInLegacySplitScreen` * Test launch non-resizable activity via intent in split screen mode. When the device supports * non-resizable in multi window, it should show the non-resizable app in split screen. * To run this test: `atest WMShellFlickerTests:LegacySplitScreenFromIntentSupportNonResizable` */ @Presubmit @Postsubmit @RequiresDevice @RunWith(Parameterized::class) @Parameterized.UseParametersRunnerFactory(FlickerParametersRunnerFactory::class) @FixMethodOrder(MethodSorters.NAME_ASCENDING) class NonResizableLaunchInLegacySplitScreen( class LegacySplitScreenFromIntentSupportNonResizable( testSpec: FlickerTestParameter ) : LegacySplitScreenTransition(testSpec) { var prevSupportNonResizableInMultiWindow = 0 override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit get() = { configuration -> cleanSetup(this, configuration) Loading @@ -72,33 +76,52 @@ class NonResizableLaunchInLegacySplitScreen( WindowManagerStateHelper.SPLASH_SCREEN_NAME, WindowManagerStateHelper.SNAPSHOT_WINDOW_NAME) @Presubmit @Test fun layerBecomesVisible() = testSpec.layerBecomesVisible(nonResizeableApp.defaultWindowName) @Before fun setup() { prevSupportNonResizableInMultiWindow = Settings.Global.getInt(context.contentResolver, Settings.Global.DEVELOPMENT_ENABLE_NON_RESIZABLE_MULTI_WINDOW) if (prevSupportNonResizableInMultiWindow == 0) { // Support non-resizable in multi window Settings.Global.putInt(context.contentResolver, Settings.Global.DEVELOPMENT_ENABLE_NON_RESIZABLE_MULTI_WINDOW, 1) } } @Presubmit @Test fun layerBecomesInvisible() = testSpec.layerBecomesInvisible(splitScreenApp.defaultWindowName) @After fun teardown() { Settings.Global.putInt(context.contentResolver, Settings.Global.DEVELOPMENT_ENABLE_NON_RESIZABLE_MULTI_WINDOW, prevSupportNonResizableInMultiWindow) } @FlakyTest(bugId = 178447631) @Test override fun visibleLayersShownMoreThanOneConsecutiveEntry() = super.visibleLayersShownMoreThanOneConsecutiveEntry() @Presubmit @FlakyTest(bugId = 178447631) @Test override fun visibleWindowsShownMoreThanOneConsecutiveEntry() = super.visibleWindowsShownMoreThanOneConsecutiveEntry() @Test fun appWindowBecomesVisible() = fun nonResizableAppLayerBecomesVisible() = testSpec.layerBecomesVisible(nonResizeableApp.defaultWindowName) @Test fun nonResizableAppWindowBecomesVisible() = testSpec.appWindowBecomesVisible(nonResizeableApp.defaultWindowName) @Presubmit @Test fun appWindowBecomesInVisible() = testSpec.appWindowBecomesInVisible(splitScreenApp.defaultWindowName) fun dockedStackDividerIsVisibleAtEnd() = testSpec.dockedStackDividerIsVisible() @FlakyTest(bugId = 178447631) @Test override fun visibleWindowsShownMoreThanOneConsecutiveEntry() = super.visibleWindowsShownMoreThanOneConsecutiveEntry() fun bothAppsWindowsAreVisibleAtEnd() { testSpec.assertWmEnd { isVisible(splitScreenApp.defaultWindowName) isVisible(nonResizeableApp.defaultWindowName) } } companion object { @Parameterized.Parameters(name = "{0}") Loading
libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/legacysplitscreen/LegacySplitScreenFromRecentNotSupportNonResizable.kt 0 → 100644 +146 −0 Original line number Diff line number Diff line /* * Copyright (C) 2021 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.wm.shell.flicker.legacysplitscreen import android.platform.test.annotations.Postsubmit import android.provider.Settings import android.view.Surface import androidx.test.filters.FlakyTest import androidx.test.filters.RequiresDevice import com.android.server.wm.flicker.FlickerParametersRunnerFactory import com.android.server.wm.flicker.FlickerTestParameter import com.android.server.wm.flicker.FlickerTestParameterFactory import com.android.server.wm.flicker.appWindowBecomesInVisible import com.android.server.wm.flicker.appWindowBecomesVisible import com.android.server.wm.flicker.dsl.FlickerBuilder import com.android.server.wm.flicker.helpers.launchSplitScreen import com.android.server.wm.flicker.helpers.reopenAppFromOverview import com.android.server.wm.flicker.layerBecomesInvisible import com.android.server.wm.flicker.layerBecomesVisible import com.android.server.wm.traces.parser.windowmanager.WindowManagerStateHelper import com.android.wm.shell.flicker.DOCKED_STACK_DIVIDER import com.android.wm.shell.flicker.dockedStackDividerIsInvisible import com.android.wm.shell.flicker.helpers.SplitScreenHelper import org.junit.After import org.junit.Before import org.junit.FixMethodOrder import org.junit.Test import org.junit.runner.RunWith import org.junit.runners.MethodSorters import org.junit.runners.Parameterized /** * Test launch non-resizable activity via recent overview in split screen mode. When the device does * not support non-resizable in multi window, it should trigger exit split screen. * To run this test: `atest WMShellFlickerTests:LegacySplitScreenFromRecentNotSupportNonResizable` */ @Postsubmit @RequiresDevice @RunWith(Parameterized::class) @Parameterized.UseParametersRunnerFactory(FlickerParametersRunnerFactory::class) @FixMethodOrder(MethodSorters.NAME_ASCENDING) class LegacySplitScreenFromRecentNotSupportNonResizable( testSpec: FlickerTestParameter ) : LegacySplitScreenTransition(testSpec) { var prevSupportNonResizableInMultiWindow = 0 override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit get() = { configuration -> cleanSetup(this, configuration) setup { eachRun { nonResizeableApp.launchViaIntent(wmHelper) splitScreenApp.launchViaIntent(wmHelper) device.launchSplitScreen(wmHelper) } } transitions { device.reopenAppFromOverview(wmHelper) } } override val ignoredWindows: List<String> get() = listOf(DOCKED_STACK_DIVIDER, LAUNCHER_PACKAGE_NAME, LETTERBOX_NAME, TOAST_NAME, splitScreenApp.defaultWindowName, nonResizeableApp.defaultWindowName, WindowManagerStateHelper.SPLASH_SCREEN_NAME, WindowManagerStateHelper.SNAPSHOT_WINDOW_NAME) @Before fun setup() { prevSupportNonResizableInMultiWindow = Settings.Global.getInt(context.contentResolver, Settings.Global.DEVELOPMENT_ENABLE_NON_RESIZABLE_MULTI_WINDOW) if (prevSupportNonResizableInMultiWindow == 1) { // Not support non-resizable in multi window Settings.Global.putInt(context.contentResolver, Settings.Global.DEVELOPMENT_ENABLE_NON_RESIZABLE_MULTI_WINDOW, 0) } } @After fun teardown() { Settings.Global.putInt(context.contentResolver, Settings.Global.DEVELOPMENT_ENABLE_NON_RESIZABLE_MULTI_WINDOW, prevSupportNonResizableInMultiWindow) } @FlakyTest(bugId = 178447631) @Test override fun visibleLayersShownMoreThanOneConsecutiveEntry() = super.visibleLayersShownMoreThanOneConsecutiveEntry() @FlakyTest(bugId = 178447631) @Test override fun visibleWindowsShownMoreThanOneConsecutiveEntry() = super.visibleWindowsShownMoreThanOneConsecutiveEntry() @Test fun resizableAppLayerBecomesInvisible() = testSpec.layerBecomesInvisible(splitScreenApp.defaultWindowName) @Test fun nonResizableAppLayerBecomesVisible() = testSpec.layerBecomesVisible(nonResizeableApp.defaultWindowName) @Test fun resizableAppWindowBecomesInvisible() = testSpec.appWindowBecomesInVisible(splitScreenApp.defaultWindowName) @Test fun nonResizableAppWindowBecomesVisible() = testSpec.appWindowBecomesVisible(nonResizeableApp.defaultWindowName) @Test fun dockedStackDividerIsInvisibleAtEnd() = testSpec.dockedStackDividerIsInvisible() @Test fun onlyNonResizableAppWindowIsVisibleAtEnd() { testSpec.assertWmEnd { isInvisible(splitScreenApp.defaultWindowName) isVisible(nonResizeableApp.defaultWindowName) } } companion object { @Parameterized.Parameters(name = "{0}") @JvmStatic fun getParams(): Collection<FlickerTestParameter> { return FlickerTestParameterFactory.getInstance().getConfigNonRotationTests( repetitions = SplitScreenHelper.TEST_REPETITIONS, supportedRotations = listOf(Surface.ROTATION_0)) // b/178685668 } } }