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 |