OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "chrome/browser/ui/toolbar/browser_actions_bar_browsertest.h" | 5 #include "chrome/browser/ui/toolbar/browser_actions_bar_browsertest.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
64 : toolbar_model_(nullptr) { | 64 : toolbar_model_(nullptr) { |
65 } | 65 } |
66 | 66 |
67 BrowserActionsBarBrowserTest::~BrowserActionsBarBrowserTest() { | 67 BrowserActionsBarBrowserTest::~BrowserActionsBarBrowserTest() { |
68 } | 68 } |
69 | 69 |
70 void BrowserActionsBarBrowserTest::SetUpCommandLine( | 70 void BrowserActionsBarBrowserTest::SetUpCommandLine( |
71 base::CommandLine* command_line) { | 71 base::CommandLine* command_line) { |
72 ExtensionBrowserTest::SetUpCommandLine(command_line); | 72 ExtensionBrowserTest::SetUpCommandLine(command_line); |
73 ToolbarActionsBar::disable_animations_for_testing_ = true; | 73 ToolbarActionsBar::disable_animations_for_testing_ = true; |
74 // These tests are deliberately testing behavior without the redesign. | |
75 // Forcefully disable it. | |
76 override_redesign_.reset(new extensions::FeatureSwitch::ScopedOverride( | |
77 extensions::FeatureSwitch::extension_action_redesign(), true)); | |
78 } | 74 } |
79 | 75 |
80 void BrowserActionsBarBrowserTest::SetUpOnMainThread() { | 76 void BrowserActionsBarBrowserTest::SetUpOnMainThread() { |
81 ExtensionBrowserTest::SetUpOnMainThread(); | 77 ExtensionBrowserTest::SetUpOnMainThread(); |
82 browser_actions_bar_.reset(new BrowserActionTestUtil(browser())); | 78 browser_actions_bar_.reset(new BrowserActionTestUtil(browser())); |
83 toolbar_model_ = ToolbarActionsModel::Get(profile()); | 79 toolbar_model_ = ToolbarActionsModel::Get(profile()); |
84 } | 80 } |
85 | 81 |
86 void BrowserActionsBarBrowserTest::TearDownOnMainThread() { | 82 void BrowserActionsBarBrowserTest::TearDownOnMainThread() { |
87 ToolbarActionsBar::disable_animations_for_testing_ = false; | 83 ToolbarActionsBar::disable_animations_for_testing_ = false; |
(...skipping 17 matching lines...) Expand all Loading... |
105 EXPECT_TRUE(registry->enabled_extensions().GetByID(extensions[i]->id())) << | 101 EXPECT_TRUE(registry->enabled_extensions().GetByID(extensions[i]->id())) << |
106 extensions[i]->name(); | 102 extensions[i]->name(); |
107 EXPECT_EQ(static_cast<int>(i + 1), | 103 EXPECT_EQ(static_cast<int>(i + 1), |
108 browser_actions_bar_->NumberOfBrowserActions()); | 104 browser_actions_bar_->NumberOfBrowserActions()); |
109 EXPECT_TRUE(browser_actions_bar_->HasIcon(i)); | 105 EXPECT_TRUE(browser_actions_bar_->HasIcon(i)); |
110 EXPECT_EQ(static_cast<int>(i + 1), | 106 EXPECT_EQ(static_cast<int>(i + 1), |
111 browser_actions_bar()->VisibleBrowserActions()); | 107 browser_actions_bar()->VisibleBrowserActions()); |
112 } | 108 } |
113 } | 109 } |
114 | 110 |
115 // BrowserActionsBarLegacyBrowserTest: | |
116 | |
117 BrowserActionsBarLegacyBrowserTest::BrowserActionsBarLegacyBrowserTest() { | |
118 } | |
119 | |
120 BrowserActionsBarLegacyBrowserTest::~BrowserActionsBarLegacyBrowserTest() { | |
121 } | |
122 | |
123 void BrowserActionsBarLegacyBrowserTest::SetUpCommandLine( | |
124 base::CommandLine* command_line) { | |
125 BrowserActionsBarBrowserTest::SetUpCommandLine(command_line); | |
126 // Override to force the redesign. Completely clear the previous override | |
127 // first, since doing so resets the value of the switch. | |
128 override_redesign_.reset(); | |
129 override_redesign_.reset(new extensions::FeatureSwitch::ScopedOverride( | |
130 extensions::FeatureSwitch::extension_action_redesign(), false)); | |
131 } | |
132 | |
133 // Test the basic functionality. | 111 // Test the basic functionality. |
134 IN_PROC_BROWSER_TEST_F(BrowserActionsBarLegacyBrowserTest, Basic) { | 112 IN_PROC_BROWSER_TEST_F(BrowserActionsBarBrowserTest, Basic) { |
135 // Load an extension with no browser action. | 113 // Load an extension with no browser action. |
136 extension_service()->AddExtension(CreateExtension("alpha", false).get()); | 114 extension_service()->AddExtension(CreateExtension("alpha", false).get()); |
137 // This extension should not be in the model (has no browser action). | 115 // This extension should be present in the model (it will receive a |
138 EXPECT_EQ(0, browser_actions_bar()->NumberOfBrowserActions()); | 116 // synthesized action). |
139 | |
140 // Load an extension with a browser action. | |
141 extension_service()->AddExtension(CreateExtension("beta", true).get()); | |
142 EXPECT_EQ(1, browser_actions_bar()->NumberOfBrowserActions()); | 117 EXPECT_EQ(1, browser_actions_bar()->NumberOfBrowserActions()); |
143 EXPECT_TRUE(browser_actions_bar()->HasIcon(0)); | 118 EXPECT_TRUE(browser_actions_bar()->HasIcon(0)); |
144 | 119 |
145 // Unload the extension. | 120 // Load an extension with a browser action; it will also be in the toolbar. |
146 std::string id = browser_actions_bar()->GetExtensionId(0); | 121 extension_service()->AddExtension(CreateExtension("beta", true).get()); |
| 122 EXPECT_EQ(2, browser_actions_bar()->NumberOfBrowserActions()); |
| 123 EXPECT_TRUE(browser_actions_bar()->HasIcon(1)); |
| 124 |
| 125 // Unload the extension; the icon should be removed. |
| 126 std::string id = browser_actions_bar()->GetExtensionId(1); |
147 UnloadExtension(id); | 127 UnloadExtension(id); |
148 EXPECT_EQ(0, browser_actions_bar()->NumberOfBrowserActions()); | 128 EXPECT_EQ(1, browser_actions_bar()->NumberOfBrowserActions()); |
149 } | 129 } |
150 | 130 |
151 // Test moving various browser actions. This is not to check the logic of the | 131 // Test moving various browser actions. This is not to check the logic of the |
152 // move (that's in the toolbar model tests), but just to check our ui. | 132 // move (that's in the toolbar model tests), but just to check our ui. |
153 IN_PROC_BROWSER_TEST_F(BrowserActionsBarBrowserTest, MoveBrowserActions) { | 133 IN_PROC_BROWSER_TEST_F(BrowserActionsBarBrowserTest, MoveBrowserActions) { |
154 LoadExtensions(); | 134 LoadExtensions(); |
155 | 135 |
156 EXPECT_EQ(3, browser_actions_bar()->VisibleBrowserActions()); | 136 EXPECT_EQ(3, browser_actions_bar()->VisibleBrowserActions()); |
157 EXPECT_EQ(3, browser_actions_bar()->NumberOfBrowserActions()); | 137 EXPECT_EQ(3, browser_actions_bar()->NumberOfBrowserActions()); |
158 | 138 |
(...skipping 14 matching lines...) Expand all Loading... |
173 EXPECT_EQ(extension_a()->id(), browser_actions_bar()->GetExtensionId(1)); | 153 EXPECT_EQ(extension_a()->id(), browser_actions_bar()->GetExtensionId(1)); |
174 EXPECT_EQ(extension_b()->id(), browser_actions_bar()->GetExtensionId(2)); | 154 EXPECT_EQ(extension_b()->id(), browser_actions_bar()->GetExtensionId(2)); |
175 | 155 |
176 // Move B to middle position. Order is C B A. | 156 // Move B to middle position. Order is C B A. |
177 toolbar_model()->MoveActionIcon(extension_b()->id(), 1); | 157 toolbar_model()->MoveActionIcon(extension_b()->id(), 1); |
178 EXPECT_EQ(extension_c()->id(), browser_actions_bar()->GetExtensionId(0)); | 158 EXPECT_EQ(extension_c()->id(), browser_actions_bar()->GetExtensionId(0)); |
179 EXPECT_EQ(extension_b()->id(), browser_actions_bar()->GetExtensionId(1)); | 159 EXPECT_EQ(extension_b()->id(), browser_actions_bar()->GetExtensionId(1)); |
180 EXPECT_EQ(extension_a()->id(), browser_actions_bar()->GetExtensionId(2)); | 160 EXPECT_EQ(extension_a()->id(), browser_actions_bar()->GetExtensionId(2)); |
181 } | 161 } |
182 | 162 |
183 // Test that explicitly hiding an extension action results in it disappearing | |
184 // from the browser actions bar. | |
185 IN_PROC_BROWSER_TEST_F(BrowserActionsBarLegacyBrowserTest, ForceHide) { | |
186 LoadExtensions(); | |
187 | |
188 EXPECT_EQ(3, browser_actions_bar()->VisibleBrowserActions()); | |
189 EXPECT_EQ(extension_a()->id(), browser_actions_bar()->GetExtensionId(0)); | |
190 // Force hide one of the extensions' browser action. | |
191 extensions::ExtensionActionAPI::Get(browser()->profile())-> | |
192 SetBrowserActionVisibility(extension_a()->id(), false); | |
193 // The browser action for Extension A should be removed. | |
194 EXPECT_EQ(2, browser_actions_bar()->VisibleBrowserActions()); | |
195 EXPECT_EQ(extension_b()->id(), browser_actions_bar()->GetExtensionId(0)); | |
196 } | |
197 | |
198 IN_PROC_BROWSER_TEST_F(BrowserActionsBarBrowserTest, Visibility) { | 163 IN_PROC_BROWSER_TEST_F(BrowserActionsBarBrowserTest, Visibility) { |
199 LoadExtensions(); | 164 LoadExtensions(); |
200 | 165 |
201 // Change container to show only one action, rest in overflow: A, [B, C]. | 166 // Change container to show only one action, rest in overflow: A, [B, C]. |
202 toolbar_model()->SetVisibleIconCount(1); | 167 toolbar_model()->SetVisibleIconCount(1); |
203 EXPECT_EQ(1, browser_actions_bar()->VisibleBrowserActions()); | 168 EXPECT_EQ(1, browser_actions_bar()->VisibleBrowserActions()); |
204 | 169 |
205 // Disable extension A (should disappear). State becomes: B [C]. | 170 // Disable extension A (should disappear). State becomes: B [C]. |
206 DisableExtension(extension_a()->id()); | 171 DisableExtension(extension_a()->id()); |
207 EXPECT_EQ(2, browser_actions_bar()->NumberOfBrowserActions()); | 172 EXPECT_EQ(2, browser_actions_bar()->NumberOfBrowserActions()); |
(...skipping 462 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
670 ASSERT_EQ(1u, actions.size()); | 635 ASSERT_EQ(1u, actions.size()); |
671 gfx::Image icon = actions[0]->GetIcon( | 636 gfx::Image icon = actions[0]->GetIcon( |
672 second_browser->tab_strip_model()->GetActiveWebContents(), | 637 second_browser->tab_strip_model()->GetActiveWebContents(), |
673 gfx::Size(ToolbarActionsBar::IconWidth(false), | 638 gfx::Size(ToolbarActionsBar::IconWidth(false), |
674 ToolbarActionsBar::IconHeight())); | 639 ToolbarActionsBar::IconHeight())); |
675 const gfx::ImageSkia* skia = icon.ToImageSkia(); | 640 const gfx::ImageSkia* skia = icon.ToImageSkia(); |
676 ASSERT_TRUE(skia); | 641 ASSERT_TRUE(skia); |
677 // Force the image to try and load a representation. | 642 // Force the image to try and load a representation. |
678 skia->GetRepresentation(2.0); | 643 skia->GetRepresentation(2.0); |
679 } | 644 } |
OLD | NEW |