diff --git a/quickstep/tests/src/com/android/quickstep/TaplTestsQuickstep.java b/quickstep/tests/src/com/android/quickstep/TaplTestsQuickstep.java index d9c111805d..e8f0447602 100644 --- a/quickstep/tests/src/com/android/quickstep/TaplTestsQuickstep.java +++ b/quickstep/tests/src/com/android/quickstep/TaplTestsQuickstep.java @@ -17,6 +17,7 @@ package com.android.quickstep; import static com.android.launcher3.config.FeatureFlags.ENABLE_CURSOR_HOVER_STATES; +import static com.android.launcher3.config.FeatureFlags.ENABLE_OVERVIEW_ICON_MENU; import static com.android.quickstep.TaskbarModeSwitchRule.Mode.PERSISTENT; import static com.android.quickstep.TaskbarModeSwitchRule.Mode.TRANSIENT; @@ -43,6 +44,7 @@ import com.android.launcher3.tapl.LauncherInstrumentation.NavigationModel; import com.android.launcher3.tapl.Overview; import com.android.launcher3.tapl.OverviewActions; import com.android.launcher3.tapl.OverviewTask; +import com.android.launcher3.tapl.OverviewTaskMenu; import com.android.launcher3.ui.PortraitLandscapeRunner.PortraitLandscape; import com.android.launcher3.ui.TaplTestsLauncher3; import com.android.launcher3.util.TestUtil; @@ -194,6 +196,38 @@ public class TaplTestsQuickstep extends AbstractQuickStepTest { actionsView.clickAndDismissScreenshot(); } + + @PlatinumTest(focusArea = "launcher") + @Test + public void testOverviewActionsMenu() throws Exception { + startTestAppsWithCheck(); + + OverviewTaskMenu menu = mLauncher.goHome().switchToOverview().getCurrentTask().tapMenu(); + + assertNotNull("Tapping App info menu item returned null", menu.tapAppInfoMenuItem()); + executeOnLauncher(launcher -> assertTrue( + "Launcher activity is the top activity; expecting another activity to be the top", + isInLaunchedApp(launcher))); + } + + + @Test + @ScreenRecord // b/303329286 + public void testOverviewActionsMenu_iconAppChipMenu() throws Exception { + try (AutoCloseable c = TestUtil.overrideFlag(ENABLE_OVERVIEW_ICON_MENU, true)) { + startTestAppsWithCheck(); + + OverviewTaskMenu menu = + mLauncher.goHome().switchToOverview().getCurrentTask().tapMenu(); + + assertNotNull("Tapping App info menu item returned null", menu.tapAppInfoMenuItem()); + executeOnLauncher(launcher -> assertTrue( + "Launcher activity is the top activity; expecting another activity to be the " + + "top", + isInLaunchedApp(launcher))); + } + } + private int getCurrentOverviewPage(Launcher launcher) { return launcher.getOverviewPanel().getCurrentPage(); } diff --git a/quickstep/tests/src/com/android/quickstep/TaplTestsSplitscreen.java b/quickstep/tests/src/com/android/quickstep/TaplTestsSplitscreen.java index cc56fafffc..ed152f269c 100644 --- a/quickstep/tests/src/com/android/quickstep/TaplTestsSplitscreen.java +++ b/quickstep/tests/src/com/android/quickstep/TaplTestsSplitscreen.java @@ -16,6 +16,7 @@ package com.android.quickstep; +import static com.android.launcher3.config.FeatureFlags.ENABLE_OVERVIEW_ICON_MENU; import static com.android.launcher3.util.rule.TestStabilityRule.LOCAL; import static com.android.launcher3.util.rule.TestStabilityRule.PLATFORM_POSTSUBMIT; @@ -30,8 +31,10 @@ import androidx.test.filters.LargeTest; import androidx.test.platform.app.InstrumentationRegistry; import com.android.launcher3.config.FeatureFlags; +import com.android.launcher3.tapl.OverviewTaskMenu; import com.android.launcher3.ui.PortraitLandscapeRunner.PortraitLandscape; import com.android.launcher3.ui.TaplTestsLauncher3; +import com.android.launcher3.util.TestUtil; import com.android.launcher3.util.rule.TestStabilityRule; import com.android.quickstep.TaskbarModeSwitchRule.TaskbarModeSwitch; @@ -139,6 +142,42 @@ public class TaplTestsSplitscreen extends AbstractQuickStepTest { .hasMenuItem("Save app pair")); } + @Test + public void testTapBothIconMenus() { + createAndLaunchASplitPair(); + + OverviewTaskMenu taskMenu = + mLauncher.goHome().switchToOverview().getCurrentTask().tapMenu(); + assertTrue("App info item not appearing in expanded task menu.", + taskMenu.hasMenuItem("App info")); + taskMenu.touchOutsideTaskMenuToDismiss(); + + OverviewTaskMenu splitMenu = + mLauncher.getOverview().getCurrentTask().tapSplitTaskMenu(); + assertTrue("App info item not appearing in expanded split task's menu.", + splitMenu.hasMenuItem("App info")); + splitMenu.touchOutsideTaskMenuToDismiss(); + } + + @Test + public void testTapBothIconMenus_iconAppChipMenu() throws Exception { + try (AutoCloseable c = TestUtil.overrideFlag(ENABLE_OVERVIEW_ICON_MENU, true)) { + createAndLaunchASplitPair(); + + OverviewTaskMenu taskMenu = + mLauncher.goHome().switchToOverview().getCurrentTask().tapMenu(); + assertTrue("App info item not appearing in expanded task menu.", + taskMenu.hasMenuItem("App info")); + taskMenu.touchOutsideTaskMenuToDismiss(); + + OverviewTaskMenu splitMenu = + mLauncher.getOverview().getCurrentTask().tapSplitTaskMenu(); + assertTrue("App info item not appearing in expanded split task's menu.", + splitMenu.hasMenuItem("App info")); + splitMenu.touchOutsideTaskMenuToDismiss(); + } + } + private void createAndLaunchASplitPair() { startTestActivity(2); startTestActivity(3); diff --git a/src/com/android/launcher3/InvariantDeviceProfile.java b/src/com/android/launcher3/InvariantDeviceProfile.java index 75f4bb2d11..04e8da1f3b 100644 --- a/src/com/android/launcher3/InvariantDeviceProfile.java +++ b/src/com/android/launcher3/InvariantDeviceProfile.java @@ -486,9 +486,7 @@ public class InvariantDeviceProfile { iconBitmapSize, fillResIconDpi, numDatabaseAllAppsColumns, dbFile}; } - /** Updates IDP using the provided context. Notifies listeners of change. */ - @VisibleForTesting - public void onConfigChanged(Context context) { + private void onConfigChanged(Context context) { Object[] oldState = toModelState(); // Re-init grid diff --git a/tests/Android.bp b/tests/Android.bp index 6b8cecb1db..0f2a2f8b4d 100644 --- a/tests/Android.bp +++ b/tests/Android.bp @@ -45,7 +45,6 @@ filegroup { "src/com/android/launcher3/allapps/TaplOpenCloseAllApps.java", "src/com/android/launcher3/allapps/TaplTestsAllAppsIconsWorking.java", "src/com/android/launcher3/appiconmenu/TaplAppIconMenuTest.java", - "src/com/android/launcher3/appiconmenu/TaplOverviewIconTest.java", "src/com/android/launcher3/dragging/TaplDragTest.java", "src/com/android/launcher3/dragging/TaplUninstallRemove.java", "src/com/android/launcher3/ui/AbstractLauncherUiTest.java", diff --git a/tests/src/com/android/launcher3/appiconmenu/TaplOverviewIconAppChipMenuTest.java b/tests/src/com/android/launcher3/appiconmenu/TaplOverviewIconAppChipMenuTest.java deleted file mode 100644 index 4070c03688..0000000000 --- a/tests/src/com/android/launcher3/appiconmenu/TaplOverviewIconAppChipMenuTest.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (C) 2023 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.launcher3.appiconmenu; - -import com.android.launcher3.Flags; -import com.android.launcher3.InvariantDeviceProfile; - -import org.junit.Before; - -/** - * Tests the Icon App Chip Menu in overview. - * - *

Same tests as TaplOverviewIconTest with the Flag FLAG_ENABLE_OVERVIEW_ICON_MENU enabled. - * This class can be removed once FLAG_ENABLE_OVERVIEW_ICON_MENU is enabled by default. - */ -public class TaplOverviewIconAppChipMenuTest extends TaplOverviewIconTest { - - @Before - public void setUp() throws Exception { - mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_OVERVIEW_ICON_MENU); // Call before super.setUp - super.setUp(); - executeOnLauncher(launcher -> InvariantDeviceProfile.INSTANCE.get(launcher).onConfigChanged( - launcher)); - } -} diff --git a/tests/src/com/android/launcher3/appiconmenu/TaplOverviewIconTest.java b/tests/src/com/android/launcher3/appiconmenu/TaplOverviewIconTest.java deleted file mode 100644 index 7340264282..0000000000 --- a/tests/src/com/android/launcher3/appiconmenu/TaplOverviewIconTest.java +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright (C) 2023 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.launcher3.appiconmenu; - -import static com.android.launcher3.ui.TaplTestsLauncher3.initialize; - -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; - -import android.content.Intent; -import android.platform.test.annotations.PlatinumTest; - -import com.android.launcher3.tapl.OverviewTaskMenu; -import com.android.launcher3.ui.AbstractLauncherUiTest; - -import org.junit.Before; -import org.junit.Test; - -/** - * This test run in both Out of process (Oop) and in-process (Ipc). - * Tests the app Icon in overview. - */ -public class TaplOverviewIconTest extends AbstractLauncherUiTest { - - private static final String CALCULATOR_APP_PACKAGE = - resolveSystemApp(Intent.CATEGORY_APP_CALCULATOR); - - @Before - public void setUp() throws Exception { - super.setUp(); - initialize(this); - } - - @PlatinumTest(focusArea = "launcher") - @Test - public void testOverviewActionsMenu() { - startTestAppsWithCheck(); - - OverviewTaskMenu menu = mLauncher.goHome().switchToOverview().getCurrentTask().tapMenu(); - - assertNotNull("Tapping App info menu item returned null", menu.tapAppInfoMenuItem()); - executeOnLauncher(launcher -> assertTrue( - "Launcher activity is the top activity; expecting another activity to be the top", - isInLaunchedApp(launcher))); - } - - private void startTestAppsWithCheck() { - startTestApps(); - executeOnLauncher(launcher -> assertTrue( - "Launcher activity is the top activity; expecting another activity to be the top " - + "one", - isInLaunchedApp(launcher))); - } - - private void startTestApps() { - startAppFast(getAppPackageName()); - startAppFast(CALCULATOR_APP_PACKAGE); - startTestActivity(2); - } - - @Test - public void testSplitTaskTapBothIconMenus() { - createAndLaunchASplitPair(); - - OverviewTaskMenu taskMenu = - mLauncher.goHome().switchToOverview().getCurrentTask().tapMenu(); - assertTrue("App info item not appearing in expanded task menu.", - taskMenu.hasMenuItem("App info")); - taskMenu.touchOutsideTaskMenuToDismiss(); - - OverviewTaskMenu splitMenu = - mLauncher.getOverview().getCurrentTask().tapSplitTaskMenu(); - assertTrue("App info item not appearing in expanded split task's menu.", - splitMenu.hasMenuItem("App info")); - splitMenu.touchOutsideTaskMenuToDismiss(); - } - - private void createAndLaunchASplitPair() { - startTestActivity(2); - startTestActivity(3); - - if (mLauncher.isTablet()) { - mLauncher.goHome().switchToOverview().getOverviewActions() - .clickSplit() - .getTestActivityTask(2) - .open(); - } else { - mLauncher.goHome().switchToOverview().getCurrentTask() - .tapMenu() - .tapSplitMenuItem() - .getCurrentTask() - .open(); - } - } -} diff --git a/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java b/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java index f4a00e81fe..34ebe11cc0 100644 --- a/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java +++ b/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java @@ -39,7 +39,6 @@ import android.os.Process; import android.os.RemoteException; import android.os.UserHandle; import android.os.UserManager; -import android.platform.test.flag.junit.SetFlagsRule; import android.system.OsConstants; import android.util.Log; @@ -49,7 +48,6 @@ import androidx.test.uiautomator.BySelector; import androidx.test.uiautomator.UiDevice; import androidx.test.uiautomator.Until; -import com.android.launcher3.Flags; import com.android.launcher3.Launcher; import com.android.launcher3.LauncherState; import com.android.launcher3.Utilities; @@ -204,22 +202,6 @@ public abstract class AbstractLauncherUiTest { @Rule public ScreenRecordRule mScreenRecordRule = new ScreenRecordRule(); - @Rule - public SetFlagsRule mSetFlagsRule = getFlagsRule(); - - // TODO(b/301555714): Remove when SetFlagsRule initializes flags to their default values. - private SetFlagsRule getFlagsRule() { - SetFlagsRule flagsRule = new SetFlagsRule(); - flagsRule.disableFlags( - Flags.FLAG_ENABLE_GRID_ONLY_OVERVIEW, - Flags.FLAG_ENABLE_OVERVIEW_ICON_MENU, - Flags.FLAG_ENABLE_RESPONSIVE_WORKSPACE, - Flags.FLAG_ENABLE_CURSOR_HOVER_STATES, - Flags.FLAG_ENABLE_TWOLINE_ALLAPPS, - Flags.FLAG_ENABLE_EXPANDING_PAUSE_WORK_BUTTON); - return flagsRule; - } - protected void clearPackageData(String pkg) throws IOException, InterruptedException { final CountDownLatch count = new CountDownLatch(2); final SimpleBroadcastReceiver broadcastReceiver =