Index: chrome/browser/extensions/component_migration_helper_unittest.cc |
diff --git a/chrome/browser/extensions/component_migration_helper_unittest.cc b/chrome/browser/extensions/component_migration_helper_unittest.cc |
index 8168c7748b19fcf49eabf07957459a3ce742e6cf..1a869cd5816a5b13864b5077d8a539bcbbfcba7b 100644 |
--- a/chrome/browser/extensions/component_migration_helper_unittest.cc |
+++ b/chrome/browser/extensions/component_migration_helper_unittest.cc |
@@ -12,6 +12,7 @@ |
#include "chrome/browser/extensions/extension_service.h" |
#include "chrome/browser/extensions/extension_service_test_base.h" |
#include "chrome/browser/profiles/profile.h" |
+#include "chrome/browser/ui/toolbar/component_toolbar_actions_factory.h" |
#include "chrome/common/pref_names.h" |
#include "components/prefs/pref_registry_simple.h" |
#include "extensions/browser/extension_registry.h" |
@@ -47,6 +48,11 @@ class MockComponentMigrationHelper : public ComponentMigrationHelper { |
SetComponentActionPref(kTestActionId, enabled); |
} |
+ void SetMediaRouterActionPref(bool enabled) { |
+ SetComponentActionPref( |
+ ComponentToolbarActionsFactory::kMediaRouterActionId, enabled); |
+ } |
+ |
void EnableTestFeature() { enabled_actions_.insert(kTestActionId); } |
void DisableTestFeature() { enabled_actions_.erase(kTestActionId); } |
@@ -95,6 +101,11 @@ class ComponentMigrationHelperTest : public ExtensionServiceTestBase { |
return enable_value; |
} |
+ bool IsMediaRouterActionAlwaysShown() { |
+ return profile()->GetPrefs()-> |
+ GetBoolean(prefs::kMediaRouterAlwaysShowActionIcon); |
+ } |
+ |
StrictMock<MockComponentActionDelegate> mock_delegate_; |
std::unique_ptr<StrictMock<MockComponentMigrationHelper>> mock_helper_; |
std::unique_ptr<FeatureSwitch::ScopedOverride> extension_action_redesign_; |
@@ -209,4 +220,32 @@ TEST_F(ComponentMigrationHelperTest, RemoveComponentAction) { |
EXPECT_FALSE(IsTestComponentActionEnabled()); |
} |
+TEST_F(ComponentMigrationHelperTest, EnableAndDisableMediaRouterAction) { |
+ mock_helper_->SetMediaRouterActionPref(true); |
+ mock_helper_->Register( |
+ ComponentToolbarActionsFactory::kMediaRouterActionId, |
+ "test_cast_extension"); |
+ EXPECT_FALSE(IsMediaRouterActionAlwaysShown()); |
+ |
+ EXPECT_CALL(mock_delegate_, HasComponentAction( |
+ ComponentToolbarActionsFactory::kMediaRouterActionId)) |
+ .WillOnce(Return(false)); |
+ EXPECT_CALL(mock_delegate_, AddComponentAction( |
+ ComponentToolbarActionsFactory::kMediaRouterActionId)); |
+ |
+ mock_helper_->OnFeatureEnabled( |
+ ComponentToolbarActionsFactory::kMediaRouterActionId); |
+ EXPECT_TRUE(IsMediaRouterActionAlwaysShown()); |
+ |
+ EXPECT_CALL(mock_delegate_, HasComponentAction( |
+ ComponentToolbarActionsFactory::kMediaRouterActionId)) |
+ .WillOnce(Return(true)); |
+ EXPECT_CALL(mock_delegate_, RemoveComponentAction( |
+ ComponentToolbarActionsFactory::kMediaRouterActionId)); |
+ |
+ mock_helper_->OnFeatureDisabled( |
+ ComponentToolbarActionsFactory::kMediaRouterActionId); |
+ EXPECT_FALSE(IsMediaRouterActionAlwaysShown()); |
+} |
+ |
} // namespace extensions |