| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/bind.h" | 5 #include "base/bind.h" |
| 6 #include "base/bind_helpers.h" | 6 #include "base/bind_helpers.h" |
| 7 #include "base/run_loop.h" | 7 #include "base/run_loop.h" |
| 8 #include "chrome/browser/extensions/extension_action_runner.h" | 8 #include "chrome/browser/extensions/extension_action_runner.h" |
| 9 #include "chrome/browser/ui/extensions/extension_action_view_controller.h" | 9 #include "chrome/browser/ui/extensions/extension_action_view_controller.h" |
| 10 #include "chrome/browser/ui/extensions/icon_with_badge_image_source.h" | 10 #include "chrome/browser/ui/extensions/icon_with_badge_image_source.h" |
| 11 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 11 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
| 12 #include "chrome/browser/ui/toolbar/toolbar_actions_bar.h" | 12 #include "chrome/browser/ui/toolbar/toolbar_actions_bar.h" |
| 13 #include "chrome/browser/ui/toolbar/toolbar_actions_bar_unittest.h" | 13 #include "chrome/browser/ui/toolbar/toolbar_actions_bar_unittest.h" |
| 14 #include "chrome/grit/chromium_strings.h" | 14 #include "chrome/grit/chromium_strings.h" |
| 15 #include "chrome/grit/generated_resources.h" | 15 #include "chrome/grit/generated_resources.h" |
| 16 #include "extensions/common/feature_switch.h" |
| 16 #include "extensions/common/user_script.h" | 17 #include "extensions/common/user_script.h" |
| 17 #include "ui/base/l10n/l10n_util.h" | 18 #include "ui/base/l10n/l10n_util.h" |
| 18 | 19 |
| 20 class ToolbarActionsBarLegacyUnitTest : public ToolbarActionsBarUnitTest { |
| 21 public: |
| 22 ToolbarActionsBarLegacyUnitTest() |
| 23 : extension_action_redesign_override_( |
| 24 extensions::FeatureSwitch::extension_action_redesign(), true) {} |
| 25 ~ToolbarActionsBarLegacyUnitTest() override {} |
| 26 |
| 27 private: |
| 28 extensions::FeatureSwitch::ScopedOverride extension_action_redesign_override_; |
| 29 |
| 30 DISALLOW_COPY_AND_ASSIGN(ToolbarActionsBarLegacyUnitTest); |
| 31 }; |
| 32 |
| 19 // Tests the icon appearance of extension actions without the toolbar redesign. | 33 // Tests the icon appearance of extension actions without the toolbar redesign. |
| 20 // In this case, the action should never be grayscaled or decorated to indicate | 34 // In this case, the action should never be grayscaled or decorated to indicate |
| 21 // whether or not it wants to run. | 35 // whether or not it wants to run. |
| 22 TEST_P(ToolbarActionsBarUnitTest, ExtensionActionNormalAppearance) { | 36 TEST_P(ToolbarActionsBarLegacyUnitTest, ExtensionActionNormalAppearance) { |
| 23 CreateAndAddExtension("extension", | 37 CreateAndAddExtension("extension", |
| 24 extensions::extension_action_test_util::BROWSER_ACTION); | 38 extensions::extension_action_test_util::BROWSER_ACTION); |
| 25 EXPECT_EQ(1u, toolbar_actions_bar()->GetIconCount()); | 39 EXPECT_EQ(1u, toolbar_actions_bar()->GetIconCount()); |
| 26 | 40 |
| 27 AddTab(browser(), GURL("chrome://newtab")); | 41 AddTab(browser(), GURL("chrome://newtab")); |
| 28 | 42 |
| 29 gfx::Size size(ToolbarActionsBar::IconWidth(false), | 43 gfx::Size size(ToolbarActionsBar::IconWidth(false), |
| 30 ToolbarActionsBar::IconHeight()); | 44 ToolbarActionsBar::IconHeight()); |
| 31 content::WebContents* web_contents = | 45 content::WebContents* web_contents = |
| 32 browser()->tab_strip_model()->GetActiveWebContents(); | 46 browser()->tab_strip_model()->GetActiveWebContents(); |
| (...skipping 20 matching lines...) Expand all Loading... |
| 53 SetActionWantsToRunOnTab(action->extension_action(), web_contents, true); | 67 SetActionWantsToRunOnTab(action->extension_action(), web_contents, true); |
| 54 image_source = action->GetIconImageSourceForTesting(web_contents, size); | 68 image_source = action->GetIconImageSourceForTesting(web_contents, size); |
| 55 EXPECT_FALSE(image_source->grayscale()); | 69 EXPECT_FALSE(image_source->grayscale()); |
| 56 EXPECT_FALSE(image_source->paint_page_action_decoration()); | 70 EXPECT_FALSE(image_source->paint_page_action_decoration()); |
| 57 EXPECT_FALSE(image_source->paint_blocked_actions_decoration()); | 71 EXPECT_FALSE(image_source->paint_blocked_actions_decoration()); |
| 58 } | 72 } |
| 59 | 73 |
| 60 // Tests the icon appearance of extension actions with the toolbar redesign. | 74 // Tests the icon appearance of extension actions with the toolbar redesign. |
| 61 // Extensions that don't want to run should have their icons grayscaled. | 75 // Extensions that don't want to run should have their icons grayscaled. |
| 62 // Overflowed extensions that want to run should have an additional decoration. | 76 // Overflowed extensions that want to run should have an additional decoration. |
| 63 TEST_P(ToolbarActionsBarRedesignUnitTest, ExtensionActionWantsToRunAppearance) { | 77 TEST_P(ToolbarActionsBarUnitTest, ExtensionActionWantsToRunAppearance) { |
| 64 CreateAndAddExtension("extension", | 78 CreateAndAddExtension("extension", |
| 65 extensions::extension_action_test_util::PAGE_ACTION); | 79 extensions::extension_action_test_util::PAGE_ACTION); |
| 66 EXPECT_EQ(1u, toolbar_actions_bar()->GetIconCount()); | 80 EXPECT_EQ(1u, toolbar_actions_bar()->GetIconCount()); |
| 67 EXPECT_EQ(0u, overflow_bar()->GetIconCount()); | 81 EXPECT_EQ(0u, overflow_bar()->GetIconCount()); |
| 68 | 82 |
| 69 AddTab(browser(), GURL("chrome://newtab")); | 83 AddTab(browser(), GURL("chrome://newtab")); |
| 70 | 84 |
| 71 gfx::Size size(ToolbarActionsBar::IconWidth(false), | 85 gfx::Size size(ToolbarActionsBar::IconWidth(false), |
| 72 ToolbarActionsBar::IconHeight()); | 86 ToolbarActionsBar::IconHeight()); |
| 73 content::WebContents* web_contents = | 87 content::WebContents* web_contents = |
| (...skipping 24 matching lines...) Expand all Loading... |
| 98 EXPECT_TRUE(image_source->paint_page_action_decoration()); | 112 EXPECT_TRUE(image_source->paint_page_action_decoration()); |
| 99 EXPECT_FALSE(image_source->paint_blocked_actions_decoration()); | 113 EXPECT_FALSE(image_source->paint_blocked_actions_decoration()); |
| 100 | 114 |
| 101 SetActionWantsToRunOnTab(action->extension_action(), web_contents, false); | 115 SetActionWantsToRunOnTab(action->extension_action(), web_contents, false); |
| 102 image_source = action->GetIconImageSourceForTesting(web_contents, size); | 116 image_source = action->GetIconImageSourceForTesting(web_contents, size); |
| 103 EXPECT_TRUE(image_source->grayscale()); | 117 EXPECT_TRUE(image_source->grayscale()); |
| 104 EXPECT_FALSE(image_source->paint_page_action_decoration()); | 118 EXPECT_FALSE(image_source->paint_page_action_decoration()); |
| 105 EXPECT_FALSE(image_source->paint_blocked_actions_decoration()); | 119 EXPECT_FALSE(image_source->paint_blocked_actions_decoration()); |
| 106 } | 120 } |
| 107 | 121 |
| 108 TEST_P(ToolbarActionsBarRedesignUnitTest, ExtensionActionBlockedActions) { | 122 TEST_P(ToolbarActionsBarUnitTest, ExtensionActionBlockedActions) { |
| 109 scoped_refptr<const extensions::Extension> browser_action_ext = | 123 scoped_refptr<const extensions::Extension> browser_action_ext = |
| 110 CreateAndAddExtension( | 124 CreateAndAddExtension( |
| 111 "browser action", | 125 "browser action", |
| 112 extensions::extension_action_test_util::BROWSER_ACTION); | 126 extensions::extension_action_test_util::BROWSER_ACTION); |
| 113 ASSERT_EQ(1u, toolbar_actions_bar()->GetIconCount()); | 127 ASSERT_EQ(1u, toolbar_actions_bar()->GetIconCount()); |
| 114 AddTab(browser(), GURL("https://www.google.com/")); | 128 AddTab(browser(), GURL("https://www.google.com/")); |
| 115 | 129 |
| 116 ExtensionActionViewController* browser_action = | 130 ExtensionActionViewController* browser_action = |
| 117 static_cast<ExtensionActionViewController*>( | 131 static_cast<ExtensionActionViewController*>( |
| 118 toolbar_actions_bar()->GetActions()[0]); | 132 toolbar_actions_bar()->GetActions()[0]); |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 191 web_contents, false); | 205 web_contents, false); |
| 192 toolbar_model()->SetVisibleIconCount(2u); | 206 toolbar_model()->SetVisibleIconCount(2u); |
| 193 | 207 |
| 194 action_runner->RunBlockedActions(page_action_ext.get()); | 208 action_runner->RunBlockedActions(page_action_ext.get()); |
| 195 image_source = page_action->GetIconImageSourceForTesting(web_contents, kSize); | 209 image_source = page_action->GetIconImageSourceForTesting(web_contents, kSize); |
| 196 EXPECT_TRUE(image_source->grayscale()); | 210 EXPECT_TRUE(image_source->grayscale()); |
| 197 EXPECT_FALSE(image_source->paint_page_action_decoration()); | 211 EXPECT_FALSE(image_source->paint_page_action_decoration()); |
| 198 EXPECT_FALSE(image_source->paint_blocked_actions_decoration()); | 212 EXPECT_FALSE(image_source->paint_blocked_actions_decoration()); |
| 199 } | 213 } |
| 200 | 214 |
| 201 TEST_P(ToolbarActionsBarRedesignUnitTest, ExtensionActionContextMenu) { | 215 TEST_P(ToolbarActionsBarUnitTest, ExtensionActionContextMenu) { |
| 202 CreateAndAddExtension("extension", | 216 CreateAndAddExtension("extension", |
| 203 extensions::extension_action_test_util::BROWSER_ACTION); | 217 extensions::extension_action_test_util::BROWSER_ACTION); |
| 204 EXPECT_EQ(1u, toolbar_actions_bar()->GetIconCount()); | 218 EXPECT_EQ(1u, toolbar_actions_bar()->GetIconCount()); |
| 205 | 219 |
| 206 // Check that the context menu has the proper string for the action's position | 220 // Check that the context menu has the proper string for the action's position |
| 207 // (in the main toolbar, in the overflow container, or temporarily popped | 221 // (in the main toolbar, in the overflow container, or temporarily popped |
| 208 // out). | 222 // out). |
| 209 auto check_visibility_string = [](ToolbarActionViewController* action, | 223 auto check_visibility_string = [](ToolbarActionViewController* action, |
| 210 int expected_visibility_string) { | 224 int expected_visibility_string) { |
| 211 ui::SimpleMenuModel* context_menu = | 225 ui::SimpleMenuModel* context_menu = |
| (...skipping 13 matching lines...) Expand all Loading... |
| 225 check_visibility_string(overflow_bar()->GetActions()[0], | 239 check_visibility_string(overflow_bar()->GetActions()[0], |
| 226 IDS_EXTENSIONS_SHOW_BUTTON_IN_TOOLBAR); | 240 IDS_EXTENSIONS_SHOW_BUTTON_IN_TOOLBAR); |
| 227 base::RunLoop run_loop; | 241 base::RunLoop run_loop; |
| 228 toolbar_actions_bar()->PopOutAction(toolbar_actions_bar()->GetActions()[0], | 242 toolbar_actions_bar()->PopOutAction(toolbar_actions_bar()->GetActions()[0], |
| 229 false, | 243 false, |
| 230 run_loop.QuitClosure()); | 244 run_loop.QuitClosure()); |
| 231 run_loop.Run(); | 245 run_loop.Run(); |
| 232 check_visibility_string(toolbar_actions_bar()->GetActions()[0], | 246 check_visibility_string(toolbar_actions_bar()->GetActions()[0], |
| 233 IDS_EXTENSIONS_KEEP_BUTTON_IN_TOOLBAR); | 247 IDS_EXTENSIONS_KEEP_BUTTON_IN_TOOLBAR); |
| 234 } | 248 } |
| OLD | NEW |