OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/views/toolbar/browser_actions_container.h" | 5 #include "chrome/browser/ui/views/toolbar/browser_actions_container.h" |
6 | 6 |
7 #include "chrome/browser/chrome_notification_types.h" | 7 #include "chrome/browser/chrome_notification_types.h" |
8 #include "chrome/browser/extensions/api/extension_action/extension_action_api.h" | 8 #include "chrome/browser/extensions/api/extension_action/extension_action_api.h" |
9 #include "chrome/browser/extensions/browser_action_test_util.h" | 9 #include "chrome/browser/extensions/browser_action_test_util.h" |
10 #include "chrome/browser/extensions/extension_browsertest.h" | 10 #include "chrome/browser/extensions/extension_browsertest.h" |
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
222 // No icons should be visible, but we *should* show the chevron and have a | 222 // No icons should be visible, but we *should* show the chevron and have a |
223 // non-empty size. | 223 // non-empty size. |
224 browser_actions_bar()->SetIconVisibilityCount(0); | 224 browser_actions_bar()->SetIconVisibilityCount(0); |
225 EXPECT_EQ(0, browser_actions_bar()->VisibleBrowserActions()); | 225 EXPECT_EQ(0, browser_actions_bar()->VisibleBrowserActions()); |
226 BrowserActionsContainer* container = | 226 BrowserActionsContainer* container = |
227 BrowserView::GetBrowserViewForBrowser(browser()) | 227 BrowserView::GetBrowserViewForBrowser(browser()) |
228 ->toolbar()->browser_actions(); | 228 ->toolbar()->browser_actions(); |
229 ASSERT_TRUE(container->chevron()); | 229 ASSERT_TRUE(container->chevron()); |
230 EXPECT_TRUE(container->chevron()->visible()); | 230 EXPECT_TRUE(container->chevron()->visible()); |
231 EXPECT_FALSE(container->GetPreferredSize().IsEmpty()); | 231 EXPECT_FALSE(container->GetPreferredSize().IsEmpty()); |
| 232 |
| 233 // Reset visibility count to 2. State should be A, B, [C], and the chevron |
| 234 // should be visible. |
| 235 browser_actions_bar()->SetIconVisibilityCount(2); |
| 236 EXPECT_EQ(2, browser_actions_bar()->VisibleBrowserActions()); |
| 237 EXPECT_EQ(idA, browser_actions_bar()->GetExtensionId(0)); |
| 238 EXPECT_EQ(idB, browser_actions_bar()->GetExtensionId(1)); |
| 239 EXPECT_TRUE(container->chevron()->visible()); |
| 240 |
| 241 // Disable C (the overflowed extension). State should now be A, B, and the |
| 242 // chevron should be hidden. |
| 243 DisableExtension(idC); |
| 244 EXPECT_EQ(2, browser_actions_bar()->VisibleBrowserActions()); |
| 245 EXPECT_EQ(idA, browser_actions_bar()->GetExtensionId(0)); |
| 246 EXPECT_EQ(idB, browser_actions_bar()->GetExtensionId(1)); |
| 247 EXPECT_FALSE(container->chevron()->visible()); |
| 248 |
| 249 // Re-enable C. We should still only have 2 visible icons, and the chevron |
| 250 // should be visible. |
| 251 EnableExtension(idC); |
| 252 EXPECT_EQ(2, browser_actions_bar()->VisibleBrowserActions()); |
| 253 EXPECT_EQ(idA, browser_actions_bar()->GetExtensionId(0)); |
| 254 EXPECT_EQ(idB, browser_actions_bar()->GetExtensionId(1)); |
| 255 EXPECT_TRUE(container->chevron()->visible()); |
232 } | 256 } |
233 | 257 |
234 IN_PROC_BROWSER_TEST_F(BrowserActionsContainerTest, ForceHide) { | 258 IN_PROC_BROWSER_TEST_F(BrowserActionsContainerTest, ForceHide) { |
235 // Load extension A (contains browser action). | 259 // Load extension A (contains browser action). |
236 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("api_test") | 260 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("api_test") |
237 .AppendASCII("browser_action") | 261 .AppendASCII("browser_action") |
238 .AppendASCII("basics"))); | 262 .AppendASCII("basics"))); |
239 EXPECT_EQ(1, browser_actions_bar()->NumberOfBrowserActions()); | 263 EXPECT_EQ(1, browser_actions_bar()->NumberOfBrowserActions()); |
240 EXPECT_TRUE(browser_actions_bar()->HasIcon(0)); | 264 EXPECT_TRUE(browser_actions_bar()->HasIcon(0)); |
241 EXPECT_EQ(1, browser_actions_bar()->VisibleBrowserActions()); | 265 EXPECT_EQ(1, browser_actions_bar()->VisibleBrowserActions()); |
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
465 extensions::ExtensionActionAPI::SetBrowserActionVisibility( | 489 extensions::ExtensionActionAPI::SetBrowserActionVisibility( |
466 extensions::ExtensionPrefs::Get(profile()), | 490 extensions::ExtensionPrefs::Get(profile()), |
467 extension_a->id(), | 491 extension_a->id(), |
468 false); | 492 false); |
469 overflow_bar()->Layout(); // Kick. | 493 overflow_bar()->Layout(); // Kick. |
470 EXPECT_EQ(extension_c, main_bar()->GetBrowserActionViewAt(0)->extension()); | 494 EXPECT_EQ(extension_c, main_bar()->GetBrowserActionViewAt(0)->extension()); |
471 EXPECT_EQ(extension_a, main_bar()->GetBrowserActionViewAt(1)->extension()); | 495 EXPECT_EQ(extension_a, main_bar()->GetBrowserActionViewAt(1)->extension()); |
472 EXPECT_EQ(extension_b, main_bar()->GetBrowserActionViewAt(2)->extension()); | 496 EXPECT_EQ(extension_b, main_bar()->GetBrowserActionViewAt(2)->extension()); |
473 EXPECT_TRUE(VerifyVisibleCount(1u)); | 497 EXPECT_TRUE(VerifyVisibleCount(1u)); |
474 } | 498 } |
OLD | NEW |