Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(442)

Side by Side Diff: chrome/browser/ui/toolbar/browser_actions_bar_browsertest.cc

Issue 1105713002: [Extension Toolbar] Slide out overflowed actions for popups (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698