| 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 "base/run_loop.h" | 7 #include "base/run_loop.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_action.h" | 10 #include "chrome/browser/extensions/extension_action.h" |
| (...skipping 336 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 347 | 347 |
| 348 // Verify state: two actions, in the order of [first, second]. | 348 // Verify state: two actions, in the order of [first, second]. |
| 349 EXPECT_EQ(2, browser_actions_bar()->VisibleBrowserActions()); | 349 EXPECT_EQ(2, browser_actions_bar()->VisibleBrowserActions()); |
| 350 EXPECT_EQ(first_extension->id(), browser_actions_bar()->GetExtensionId(0)); | 350 EXPECT_EQ(first_extension->id(), browser_actions_bar()->GetExtensionId(0)); |
| 351 EXPECT_EQ(second_extension->id(), browser_actions_bar()->GetExtensionId(1)); | 351 EXPECT_EQ(second_extension->id(), browser_actions_bar()->GetExtensionId(1)); |
| 352 | 352 |
| 353 // Do a little piping to get at the underlying ExtensionActionViewControllers. | 353 // Do a little piping to get at the underlying ExtensionActionViewControllers. |
| 354 ToolbarActionsBar* toolbar_actions_bar = | 354 ToolbarActionsBar* toolbar_actions_bar = |
| 355 browser_actions_bar()->GetToolbarActionsBar(); | 355 browser_actions_bar()->GetToolbarActionsBar(); |
| 356 const std::vector<ToolbarActionViewController*>& toolbar_actions = | 356 const std::vector<ToolbarActionViewController*>& toolbar_actions = |
| 357 toolbar_actions_bar->toolbar_actions(); | 357 toolbar_actions_bar->GetActions(); |
| 358 ASSERT_EQ(2u, toolbar_actions.size()); | 358 ASSERT_EQ(2u, toolbar_actions.size()); |
| 359 EXPECT_EQ(first_extension->id(), toolbar_actions[0]->GetId()); | 359 EXPECT_EQ(first_extension->id(), toolbar_actions[0]->GetId()); |
| 360 EXPECT_EQ(second_extension->id(), toolbar_actions[1]->GetId()); | 360 EXPECT_EQ(second_extension->id(), toolbar_actions[1]->GetId()); |
| 361 ExtensionActionViewController* first_controller = | 361 ExtensionActionViewController* first_controller = |
| 362 static_cast<ExtensionActionViewController*>(toolbar_actions[0]); | 362 static_cast<ExtensionActionViewController*>(toolbar_actions[0]); |
| 363 ExtensionActionViewController* second_controller = | 363 ExtensionActionViewController* second_controller = |
| 364 static_cast<ExtensionActionViewController*>(toolbar_actions[1]); | 364 static_cast<ExtensionActionViewController*>(toolbar_actions[1]); |
| 365 | 365 |
| 366 // Neither should yet be showing a popup. | 366 // Neither should yet be showing a popup. |
| 367 EXPECT_FALSE(browser_actions_bar()->HasPopup()); | 367 EXPECT_FALSE(browser_actions_bar()->HasPopup()); |
| (...skipping 28 matching lines...) Expand all Loading... |
| 396 content::WindowedNotificationObserver observer( | 396 content::WindowedNotificationObserver observer( |
| 397 extensions::NOTIFICATION_EXTENSION_HOST_DESTROYED, | 397 extensions::NOTIFICATION_EXTENSION_HOST_DESTROYED, |
| 398 content::NotificationService::AllSources()); | 398 content::NotificationService::AllSources()); |
| 399 browser_actions_bar()->Press(1); | 399 browser_actions_bar()->Press(1); |
| 400 observer.Wait(); | 400 observer.Wait(); |
| 401 EXPECT_FALSE(browser_actions_bar()->HasPopup()); | 401 EXPECT_FALSE(browser_actions_bar()->HasPopup()); |
| 402 EXPECT_FALSE(first_controller->is_showing_popup()); | 402 EXPECT_FALSE(first_controller->is_showing_popup()); |
| 403 EXPECT_FALSE(second_controller->is_showing_popup()); | 403 EXPECT_FALSE(second_controller->is_showing_popup()); |
| 404 } | 404 } |
| 405 } | 405 } |
| 406 |
| 407 IN_PROC_BROWSER_TEST_F(BrowserActionsBarRedesignBrowserTest, |
| 408 OverflowedBrowserActionPopupTest) { |
| 409 scoped_ptr<BrowserActionTestUtil> overflow_bar = |
| 410 browser_actions_bar()->CreateOverflowBar(); |
| 411 |
| 412 // Load up two extensions that have browser action popups. |
| 413 base::FilePath data_dir = |
| 414 test_data_dir_.AppendASCII("api_test").AppendASCII("browser_action"); |
| 415 const extensions::Extension* first_extension = |
| 416 LoadExtension(data_dir.AppendASCII("open_popup")); |
| 417 ASSERT_TRUE(first_extension); |
| 418 const extensions::Extension* second_extension = |
| 419 LoadExtension(data_dir.AppendASCII("remove_popup")); |
| 420 ASSERT_TRUE(second_extension); |
| 421 |
| 422 // Verify state: two actions, in the order of [first, second]. |
| 423 EXPECT_EQ(2, browser_actions_bar()->VisibleBrowserActions()); |
| 424 EXPECT_EQ(first_extension->id(), browser_actions_bar()->GetExtensionId(0)); |
| 425 EXPECT_EQ(second_extension->id(), browser_actions_bar()->GetExtensionId(1)); |
| 426 |
| 427 // Do a little piping to get at the underlying ExtensionActionViewControllers. |
| 428 ToolbarActionsBar* main_tab = browser_actions_bar()->GetToolbarActionsBar(); |
| 429 std::vector<ToolbarActionViewController*> toolbar_actions = |
| 430 main_tab->GetActions(); |
| 431 ASSERT_EQ(2u, toolbar_actions.size()); |
| 432 EXPECT_EQ(first_extension->id(), toolbar_actions[0]->GetId()); |
| 433 EXPECT_EQ(second_extension->id(), toolbar_actions[1]->GetId()); |
| 434 ExtensionActionViewController* first_controller_main = |
| 435 static_cast<ExtensionActionViewController*>(toolbar_actions[0]); |
| 436 ExtensionActionViewController* second_controller_main = |
| 437 static_cast<ExtensionActionViewController*>(toolbar_actions[1]); |
| 438 |
| 439 ToolbarActionsBar* overflow_tab = overflow_bar->GetToolbarActionsBar(); |
| 440 toolbar_actions = overflow_tab->GetActions(); |
| 441 ExtensionActionViewController* second_controller_overflow = |
| 442 static_cast<ExtensionActionViewController*>(toolbar_actions[1]); |
| 443 |
| 444 toolbar_model()->SetVisibleIconCount(0); |
| 445 |
| 446 EXPECT_EQ(0, browser_actions_bar()->VisibleBrowserActions()); |
| 447 EXPECT_EQ(2, overflow_bar->VisibleBrowserActions()); |
| 448 |
| 449 // Neither should yet be showing a popup. |
| 450 EXPECT_FALSE(browser_actions_bar()->HasPopup()); |
| 451 EXPECT_FALSE(second_controller_main->is_showing_popup()); |
| 452 EXPECT_FALSE(second_controller_overflow->is_showing_popup()); |
| 453 |
| 454 // Click on the first extension's browser action. This should open a popup. |
| 455 overflow_bar->Press(1); |
| 456 base::RunLoop().RunUntilIdle(); |
| 457 EXPECT_TRUE(browser_actions_bar()->HasPopup()); |
| 458 EXPECT_FALSE(overflow_bar->HasPopup()); |
| 459 EXPECT_TRUE(second_controller_main->is_showing_popup()); |
| 460 EXPECT_FALSE(second_controller_overflow->is_showing_popup()); |
| 461 |
| 462 EXPECT_EQ(1, browser_actions_bar()->VisibleBrowserActions()); |
| 463 EXPECT_EQ(1u, main_tab->GetIconCount()); |
| 464 EXPECT_EQ(second_controller_main->GetId(), |
| 465 browser_actions_bar()->GetExtensionId(0)); |
| 466 EXPECT_EQ(2, overflow_bar->VisibleBrowserActions()); |
| 467 EXPECT_EQ(2u, overflow_tab->GetIconCount()); |
| 468 EXPECT_EQ(first_controller_main->GetId(), |
| 469 overflow_bar->GetExtensionId(0)); |
| 470 |
| 471 { |
| 472 content::WindowedNotificationObserver observer( |
| 473 extensions::NOTIFICATION_EXTENSION_HOST_DESTROYED, |
| 474 content::NotificationService::AllSources()); |
| 475 second_controller_main->HidePopup(); |
| 476 observer.Wait(); |
| 477 } |
| 478 |
| 479 EXPECT_FALSE(browser_actions_bar()->HasPopup()); |
| 480 EXPECT_FALSE(overflow_bar->HasPopup()); |
| 481 EXPECT_FALSE(second_controller_main->is_showing_popup()); |
| 482 EXPECT_FALSE(second_controller_overflow->is_showing_popup()); |
| 483 EXPECT_EQ(0, browser_actions_bar()->VisibleBrowserActions()); |
| 484 EXPECT_EQ(2, overflow_bar->VisibleBrowserActions()); |
| 485 base::RunLoop().RunUntilIdle(); |
| 486 EXPECT_EQ(first_controller_main->GetId(), |
| 487 browser_actions_bar()->GetExtensionId(0)); |
| 488 EXPECT_EQ(second_controller_main->GetId(), |
| 489 browser_actions_bar()->GetExtensionId(1)); |
| 490 } |
| OLD | NEW |