Commit 42858b2f authored by James Cook's avatar James Cook Committed by Commit Bot

lacros: Remove "Unpin" item from app list context menu

Lacros should always be pinned when the flag is enabled.

Bug: 1127153
Test: added to unit_tests
Change-Id: I351e0e1861ce892ad34e4582c662911133d50f39
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2406493Reviewed-by: default avatarNancy Wang <nancylingwang@chromium.org>
Commit-Queue: James Cook <jamescook@chromium.org>
Cr-Commit-Position: refs/heads/master@{#806471}
parent 38df5104
...@@ -11,7 +11,6 @@ ...@@ -11,7 +11,6 @@
#include "ash/public/cpp/app_menu_constants.h" #include "ash/public/cpp/app_menu_constants.h"
#include "base/bind.h" #include "base/bind.h"
#include "base/json/json_file_value_serializer.h" #include "base/json/json_file_value_serializer.h"
#include "base/macros.h"
#include "base/path_service.h" #include "base/path_service.h"
#include "base/run_loop.h" #include "base/run_loop.h"
#include "base/strings/stringprintf.h" #include "base/strings/stringprintf.h"
...@@ -40,6 +39,7 @@ ...@@ -40,6 +39,7 @@
#include "chrome/common/chrome_features.h" #include "chrome/common/chrome_features.h"
#include "chrome/common/chrome_paths.h" #include "chrome/common/chrome_paths.h"
#include "chrome/test/base/testing_profile.h" #include "chrome/test/base/testing_profile.h"
#include "chromeos/constants/chromeos_features.h"
#include "components/arc/test/fake_app_instance.h" #include "components/arc/test/fake_app_instance.h"
#include "components/keyed_service/core/keyed_service.h" #include "components/keyed_service/core/keyed_service.h"
#include "components/services/app_service/public/cpp/app_update.h" #include "components/services/app_service/public/cpp/app_update.h"
...@@ -56,19 +56,22 @@ namespace { ...@@ -56,19 +56,22 @@ namespace {
class FakeAppContextMenuDelegate : public app_list::AppContextMenuDelegate { class FakeAppContextMenuDelegate : public app_list::AppContextMenuDelegate {
public: public:
FakeAppContextMenuDelegate() = default; FakeAppContextMenuDelegate() = default;
FakeAppContextMenuDelegate(const FakeAppContextMenuDelegate&) = delete;
FakeAppContextMenuDelegate& operator=(const FakeAppContextMenuDelegate&) =
delete;
~FakeAppContextMenuDelegate() override = default; ~FakeAppContextMenuDelegate() override = default;
// app_list::AppContextMenuDelegate overrides: // app_list::AppContextMenuDelegate overrides:
void ExecuteLaunchCommand(int event_flags) override {} void ExecuteLaunchCommand(int event_flags) override {}
private:
DISALLOW_COPY_AND_ASSIGN(FakeAppContextMenuDelegate);
}; };
class FakeAppListControllerDelegate class FakeAppListControllerDelegate
: public test::TestAppListControllerDelegate { : public test::TestAppListControllerDelegate {
public: public:
FakeAppListControllerDelegate() = default; FakeAppListControllerDelegate() = default;
FakeAppListControllerDelegate(const FakeAppListControllerDelegate&) = delete;
FakeAppListControllerDelegate& operator=(
const FakeAppListControllerDelegate&) = delete;
~FakeAppListControllerDelegate() override = default; ~FakeAppListControllerDelegate() override = default;
void SetAppPinnable(const std::string& app_id, Pinnable type) { void SetAppPinnable(const std::string& app_id, Pinnable type) {
...@@ -98,8 +101,6 @@ class FakeAppListControllerDelegate ...@@ -98,8 +101,6 @@ class FakeAppListControllerDelegate
private: private:
std::map<std::string, Pinnable> pinnable_apps_; std::map<std::string, Pinnable> pinnable_apps_;
std::unordered_set<std::string> open_apps_; std::unordered_set<std::string> open_apps_;
DISALLOW_COPY_AND_ASSIGN(FakeAppListControllerDelegate);
}; };
std::unique_ptr<KeyedService> MenuManagerFactory( std::unique_ptr<KeyedService> MenuManagerFactory(
...@@ -161,7 +162,8 @@ class AppContextMenuTest : public AppListTestBase, ...@@ -161,7 +162,8 @@ class AppContextMenuTest : public AppListTestBase,
features::kDesktopPWAsWithoutExtensions); features::kDesktopPWAsWithoutExtensions);
} }
} }
AppContextMenuTest(const AppContextMenuTest&) = delete;
AppContextMenuTest& operator=(const AppContextMenuTest&) = delete;
~AppContextMenuTest() override = default; ~AppContextMenuTest() override = default;
void SetUp() override { void SetUp() override {
...@@ -346,8 +348,6 @@ class AppContextMenuTest : public AppListTestBase, ...@@ -346,8 +348,6 @@ class AppContextMenuTest : public AppListTestBase,
std::unique_ptr<FakeAppContextMenuDelegate> menu_delegate_; std::unique_ptr<FakeAppContextMenuDelegate> menu_delegate_;
std::unique_ptr<FakeAppListModelUpdater> model_updater_; std::unique_ptr<FakeAppListModelUpdater> model_updater_;
apps::AppServiceTest app_service_test_; apps::AppServiceTest app_service_test_;
DISALLOW_COPY_AND_ASSIGN(AppContextMenuTest);
}; };
TEST_P(AppContextMenuTest, ExtensionApp) { TEST_P(AppContextMenuTest, ExtensionApp) {
...@@ -673,8 +673,46 @@ TEST_P(AppContextMenuTest, InternalAppMenu) { ...@@ -673,8 +673,46 @@ TEST_P(AppContextMenuTest, InternalAppMenu) {
} }
} }
// Lacros has its own test suite because the feature needs to be enabled before
// SetUp().
class AppContextMenuLacrosTest : public AppContextMenuTest {
public:
AppContextMenuLacrosTest() {
feature_list_.InitAndEnableFeature(chromeos::features::kLacrosSupport);
}
AppContextMenuLacrosTest(const AppContextMenuLacrosTest&) = delete;
AppContextMenuLacrosTest& operator=(const AppContextMenuLacrosTest&) = delete;
~AppContextMenuLacrosTest() override = default;
private:
base::test::ScopedFeatureList feature_list_;
};
TEST_P(AppContextMenuLacrosTest, LacrosApp) {
app_service_test().SetUp(profile());
app_service_test().FlushMojoCalls();
// Create the context menu.
AppServiceContextMenu menu(menu_delegate(), profile(),
extension_misc::kLacrosAppId, controller());
std::unique_ptr<ui::MenuModel> menu_model = GetMenuModel(&menu);
ASSERT_NE(menu_model, nullptr);
// Verify expected menu items.
EXPECT_EQ(menu_model->GetItemCount(), 1);
std::vector<MenuState> states;
AddToStates(menu, MenuState(ash::APP_CONTEXT_MENU_NEW_WINDOW), &states);
ValidateMenuState(menu_model.get(), states);
}
INSTANTIATE_TEST_SUITE_P(All, INSTANTIATE_TEST_SUITE_P(All,
AppContextMenuTest, AppContextMenuTest,
::testing::Values(ProviderType::kBookmarkApps, ::testing::Values(ProviderType::kBookmarkApps,
ProviderType::kWebApps), ProviderType::kWebApps),
web_app::ProviderTypeParamToString); web_app::ProviderTypeParamToString);
INSTANTIATE_TEST_SUITE_P(All,
AppContextMenuLacrosTest,
::testing::Values(ProviderType::kBookmarkApps,
ProviderType::kWebApps),
web_app::ProviderTypeParamToString);
...@@ -258,6 +258,7 @@ void AppServiceContextMenu::OnGetMenuModel( ...@@ -258,6 +258,7 @@ void AppServiceContextMenu::OnGetMenuModel(
// Create default items for non-Remote apps. // Create default items for non-Remote apps.
if (app_id() != extension_misc::kChromeAppId && if (app_id() != extension_misc::kChromeAppId &&
app_id() != extension_misc::kLacrosAppId &&
app_type_ != apps::mojom::AppType::kUnknown && app_type_ != apps::mojom::AppType::kUnknown &&
app_type_ != apps::mojom::AppType::kRemote) { app_type_ != apps::mojom::AppType::kRemote) {
app_list::AppContextMenu::BuildMenu(menu_model.get()); app_list::AppContextMenu::BuildMenu(menu_model.get());
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment