Chromium Code Reviews| 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" | |
| 8 #include "chrome/browser/extensions/api/extension_action/extension_action_api.h" | 7 #include "chrome/browser/extensions/api/extension_action/extension_action_api.h" |
| 9 #include "chrome/browser/extensions/browser_action_test_util.h" | 8 #include "chrome/browser/extensions/browser_action_test_util.h" |
| 10 #include "chrome/browser/extensions/extension_browsertest.h" | |
| 11 #include "chrome/browser/extensions/extension_service.h" | 9 #include "chrome/browser/extensions/extension_service.h" |
| 12 #include "chrome/browser/extensions/extension_toolbar_model.h" | 10 #include "chrome/browser/extensions/extension_toolbar_model.h" |
| 13 #include "chrome/browser/ui/browser_window.h" | 11 #include "chrome/browser/ui/browser_window.h" |
| 14 #include "chrome/browser/ui/browser_window_testing_views.h" | 12 #include "chrome/browser/ui/browser_window_testing_views.h" |
| 13 #include "chrome/browser/ui/toolbar/browser_actions_bar_browsertest.h" | |
| 15 #include "chrome/browser/ui/views/extensions/browser_action_drag_data.h" | 14 #include "chrome/browser/ui/views/extensions/browser_action_drag_data.h" |
| 16 #include "chrome/browser/ui/views/frame/browser_view.h" | 15 #include "chrome/browser/ui/views/frame/browser_view.h" |
| 17 #include "chrome/browser/ui/views/toolbar/browser_action_view.h" | 16 #include "chrome/browser/ui/views/toolbar/browser_action_view.h" |
| 18 #include "chrome/browser/ui/views/toolbar/toolbar_view.h" | 17 #include "chrome/browser/ui/views/toolbar/toolbar_view.h" |
| 19 #include "components/crx_file/id_util.h" | |
| 20 #include "content/public/test/test_utils.h" | |
| 21 #include "extensions/browser/extension_prefs.h" | 18 #include "extensions/browser/extension_prefs.h" |
| 22 #include "extensions/browser/extension_registry.h" | |
| 23 #include "extensions/common/extension.h" | 19 #include "extensions/common/extension.h" |
| 24 #include "extensions/common/extension_builder.h" | |
| 25 #include "extensions/common/value_builder.h" | |
| 26 #include "ui/base/dragdrop/drop_target_event.h" | 20 #include "ui/base/dragdrop/drop_target_event.h" |
| 27 #include "ui/base/dragdrop/os_exchange_data.h" | 21 #include "ui/base/dragdrop/os_exchange_data.h" |
| 28 #include "ui/gfx/geometry/point.h" | 22 #include "ui/gfx/geometry/point.h" |
| 29 #include "ui/views/view.h" | 23 #include "ui/views/view.h" |
| 30 | 24 |
| 31 using extensions::Extension; | 25 using extensions::Extension; |
| 32 | 26 |
| 33 namespace { | 27 // TODO(devlin): Continue moving any tests that should be platform independent |
| 34 | 28 // from this file to the crossplatform tests in |
| 35 scoped_refptr<const Extension> CreateExtension(const std::string& name, | 29 // chrome/browser/ui/toolbar/browser_actions_bar_browsertest.cc. |
| 36 bool has_browser_action) { | |
| 37 extensions::DictionaryBuilder manifest; | |
| 38 manifest.Set("name", name). | |
| 39 Set("description", "an extension"). | |
| 40 Set("manifest_version", 2). | |
| 41 Set("version", "1.0"); | |
| 42 if (has_browser_action) | |
| 43 manifest.Set("browser_action", extensions::DictionaryBuilder().Pass()); | |
| 44 return extensions::ExtensionBuilder(). | |
| 45 SetManifest(manifest.Pass()). | |
| 46 SetID(crx_file::id_util::GenerateId(name)). | |
| 47 Build(); | |
| 48 } | |
| 49 | |
| 50 } // namespace | |
| 51 | |
| 52 class BrowserActionsContainerTest : public ExtensionBrowserTest { | |
| 53 public: | |
| 54 BrowserActionsContainerTest() { | |
| 55 } | |
| 56 virtual ~BrowserActionsContainerTest() {} | |
| 57 | |
| 58 protected: | |
| 59 virtual void SetUpCommandLine(base::CommandLine* command_line) override { | |
| 60 BrowserActionsContainer::disable_animations_during_testing_ = true; | |
| 61 ExtensionBrowserTest::SetUpCommandLine(command_line); | |
| 62 } | |
| 63 | |
| 64 virtual void SetUpOnMainThread() override { | |
| 65 ExtensionBrowserTest::SetUpOnMainThread(); | |
| 66 browser_actions_bar_.reset(new BrowserActionTestUtil(browser())); | |
| 67 } | |
| 68 | |
| 69 virtual void TearDownOnMainThread() override { | |
| 70 BrowserActionsContainer::disable_animations_during_testing_ = false; | |
| 71 ExtensionBrowserTest::TearDownOnMainThread(); | |
| 72 } | |
| 73 | |
| 74 BrowserActionTestUtil* browser_actions_bar() { | |
| 75 return browser_actions_bar_.get(); | |
| 76 } | |
| 77 | |
| 78 // Creates three different extensions, each with a browser action, and adds | |
| 79 // them to associated ExtensionService. These can then be accessed via | |
| 80 // extension_[a|b|c](). | |
| 81 void LoadExtensions(); | |
| 82 | |
| 83 const Extension* extension_a() const { return extension_a_.get(); } | |
| 84 const Extension* extension_b() const { return extension_b_.get(); } | |
| 85 const Extension* extension_c() const { return extension_c_.get(); } | |
| 86 | |
| 87 private: | |
| 88 scoped_ptr<BrowserActionTestUtil> browser_actions_bar_; | |
| 89 | |
| 90 // Extensions with browser actions used for testing. | |
| 91 scoped_refptr<const Extension> extension_a_; | |
| 92 scoped_refptr<const Extension> extension_b_; | |
| 93 scoped_refptr<const Extension> extension_c_; | |
| 94 }; | |
| 95 | |
| 96 void BrowserActionsContainerTest::LoadExtensions() { | |
| 97 // Create three extensions with browser actions. | |
| 98 extension_a_ = CreateExtension("alpha", true); | |
| 99 extension_b_ = CreateExtension("beta", true); | |
| 100 extension_c_ = CreateExtension("gamma", true); | |
| 101 | |
| 102 const Extension* extensions[] = | |
| 103 { extension_a(), extension_b(), extension_c() }; | |
| 104 extensions::ExtensionRegistry* registry = | |
| 105 extensions::ExtensionRegistry::Get(profile()); | |
| 106 // Add each, and verify that it is both correctly added to the extension | |
| 107 // registry and to the browser actions container. | |
| 108 for (size_t i = 0; i < arraysize(extensions); ++i) { | |
| 109 extension_service()->AddExtension(extensions[i]); | |
| 110 EXPECT_TRUE(registry->enabled_extensions().GetByID(extensions[i]->id())) << | |
| 111 extensions[i]->name(); | |
| 112 EXPECT_EQ(static_cast<int>(i + 1), | |
| 113 browser_actions_bar_->NumberOfBrowserActions()); | |
| 114 EXPECT_TRUE(browser_actions_bar_->HasIcon(i)); | |
| 115 EXPECT_EQ(static_cast<int>(i + 1), | |
| 116 browser_actions_bar()->VisibleBrowserActions()); | |
| 117 } | |
| 118 } | |
| 119 | |
| 120 // Test the basic functionality. | |
| 121 IN_PROC_BROWSER_TEST_F(BrowserActionsContainerTest, Basic) { | |
| 122 // Load an extension with no browser action. | |
| 123 extension_service()->AddExtension(CreateExtension("alpha", false).get()); | |
| 124 // This extension should not be in the model (has no browser action). | |
| 125 EXPECT_EQ(0, browser_actions_bar()->NumberOfBrowserActions()); | |
| 126 | |
| 127 // Load an extension with a browser action. | |
| 128 extension_service()->AddExtension(CreateExtension("beta", true).get()); | |
| 129 EXPECT_EQ(1, browser_actions_bar()->NumberOfBrowserActions()); | |
| 130 EXPECT_TRUE(browser_actions_bar()->HasIcon(0)); | |
| 131 | |
| 132 // Unload the extension. | |
| 133 std::string id = browser_actions_bar()->GetExtensionId(0); | |
| 134 UnloadExtension(id); | |
| 135 EXPECT_EQ(0, browser_actions_bar()->NumberOfBrowserActions()); | |
| 136 } | |
| 137 | 30 |
| 138 // Test moving various browser actions. This is not to check the logic of the | 31 // Test moving various browser actions. This is not to check the logic of the |
| 139 // move (that's in the toolbar model tests), but just to check our ui. | 32 // move (that's in the toolbar model tests), but just to check our ui. |
| 140 IN_PROC_BROWSER_TEST_F(BrowserActionsContainerTest, MoveBrowserActions) { | 33 IN_PROC_BROWSER_TEST_F(BrowserActionsBarBrowserTest, MoveBrowserActions) { |
| 141 LoadExtensions(); | 34 LoadExtensions(); |
| 142 | 35 |
| 143 EXPECT_EQ(3, browser_actions_bar()->VisibleBrowserActions()); | 36 EXPECT_EQ(3, browser_actions_bar()->VisibleBrowserActions()); |
| 144 EXPECT_EQ(3, browser_actions_bar()->NumberOfBrowserActions()); | 37 EXPECT_EQ(3, browser_actions_bar()->NumberOfBrowserActions()); |
| 145 | 38 |
| 146 extensions::ExtensionToolbarModel* model = | 39 extensions::ExtensionToolbarModel* model = |
| 147 extensions::ExtensionToolbarModel::Get(profile()); | 40 extensions::ExtensionToolbarModel::Get(profile()); |
| 148 ASSERT_TRUE(model); | 41 ASSERT_TRUE(model); |
| 149 | 42 |
| 150 // Order is now A B C. | 43 // Order is now A B C. |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 167 // Move B to middle position. Order is C B A. | 60 // Move B to middle position. Order is C B A. |
| 168 model->MoveExtensionIcon(extension_b(), 1); | 61 model->MoveExtensionIcon(extension_b(), 1); |
| 169 EXPECT_EQ(extension_c()->id(), browser_actions_bar()->GetExtensionId(0)); | 62 EXPECT_EQ(extension_c()->id(), browser_actions_bar()->GetExtensionId(0)); |
| 170 EXPECT_EQ(extension_b()->id(), browser_actions_bar()->GetExtensionId(1)); | 63 EXPECT_EQ(extension_b()->id(), browser_actions_bar()->GetExtensionId(1)); |
| 171 EXPECT_EQ(extension_a()->id(), browser_actions_bar()->GetExtensionId(2)); | 64 EXPECT_EQ(extension_a()->id(), browser_actions_bar()->GetExtensionId(2)); |
| 172 } | 65 } |
| 173 | 66 |
| 174 // Test that dragging browser actions works, and that dragging a browser action | 67 // Test that dragging browser actions works, and that dragging a browser action |
| 175 // from the overflow menu results in it "popping" out (growing the container | 68 // from the overflow menu results in it "popping" out (growing the container |
| 176 // size by 1), rather than just reordering the extensions. | 69 // size by 1), rather than just reordering the extensions. |
| 177 IN_PROC_BROWSER_TEST_F(BrowserActionsContainerTest, DragBrowserActions) { | 70 IN_PROC_BROWSER_TEST_F(BrowserActionsBarBrowserTest, DragBrowserActions) { |
| 178 LoadExtensions(); | 71 LoadExtensions(); |
| 179 | 72 |
| 180 // Sanity check: All extensions showing; order is A B C. | 73 // Sanity check: All extensions showing; order is A B C. |
| 181 EXPECT_EQ(3, browser_actions_bar()->VisibleBrowserActions()); | 74 EXPECT_EQ(3, browser_actions_bar()->VisibleBrowserActions()); |
| 182 EXPECT_EQ(3, browser_actions_bar()->NumberOfBrowserActions()); | 75 EXPECT_EQ(3, browser_actions_bar()->NumberOfBrowserActions()); |
| 183 EXPECT_EQ(extension_a()->id(), browser_actions_bar()->GetExtensionId(0)); | 76 EXPECT_EQ(extension_a()->id(), browser_actions_bar()->GetExtensionId(0)); |
| 184 EXPECT_EQ(extension_b()->id(), browser_actions_bar()->GetExtensionId(1)); | 77 EXPECT_EQ(extension_b()->id(), browser_actions_bar()->GetExtensionId(1)); |
| 185 EXPECT_EQ(extension_c()->id(), browser_actions_bar()->GetExtensionId(2)); | 78 EXPECT_EQ(extension_c()->id(), browser_actions_bar()->GetExtensionId(2)); |
| 186 | 79 |
| 187 BrowserActionsContainer* container = | 80 BrowserActionsContainer* container = |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 263 EXPECT_EQ(3u, container->VisibleBrowserActions()); | 156 EXPECT_EQ(3u, container->VisibleBrowserActions()); |
| 264 EXPECT_FALSE(container->chevron()->visible()); | 157 EXPECT_FALSE(container->chevron()->visible()); |
| 265 EXPECT_EQ(-1, model->GetVisibleIconCount()); | 158 EXPECT_EQ(-1, model->GetVisibleIconCount()); |
| 266 | 159 |
| 267 // TODO(devlin): Ideally, we'd also have tests for dragging from the legacy | 160 // TODO(devlin): Ideally, we'd also have tests for dragging from the legacy |
| 268 // overflow menu (i.e., chevron) to the main bar, but this requires either | 161 // overflow menu (i.e., chevron) to the main bar, but this requires either |
| 269 // having a fairly complicated interactive UI test or finding a good way to | 162 // having a fairly complicated interactive UI test or finding a good way to |
| 270 // mock up the BrowserActionOverflowMenuController. | 163 // mock up the BrowserActionOverflowMenuController. |
| 271 } | 164 } |
| 272 | 165 |
| 273 IN_PROC_BROWSER_TEST_F(BrowserActionsContainerTest, Visibility) { | 166 IN_PROC_BROWSER_TEST_F(BrowserActionsBarBrowserTest, Visibility) { |
| 274 LoadExtensions(); | 167 LoadExtensions(); |
| 275 | 168 |
| 276 // Change container to show only one action, rest in overflow: A, [B, C]. | 169 // Change container to show only one action, rest in overflow: A, [B, C]. |
| 277 browser_actions_bar()->SetIconVisibilityCount(1); | 170 browser_actions_bar()->SetIconVisibilityCount(1); |
| 278 EXPECT_EQ(1, browser_actions_bar()->VisibleBrowserActions()); | 171 EXPECT_EQ(1, browser_actions_bar()->VisibleBrowserActions()); |
| 279 | 172 |
| 280 // Disable extension A (should disappear). State becomes: B [C]. | 173 // Disable extension A (should disappear). State becomes: B [C]. |
| 281 DisableExtension(extension_a()->id()); | 174 DisableExtension(extension_a()->id()); |
| 282 EXPECT_EQ(2, browser_actions_bar()->NumberOfBrowserActions()); | 175 EXPECT_EQ(2, browser_actions_bar()->NumberOfBrowserActions()); |
| 283 EXPECT_EQ(1, browser_actions_bar()->VisibleBrowserActions()); | 176 EXPECT_EQ(1, browser_actions_bar()->VisibleBrowserActions()); |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 363 // should be visible. | 256 // should be visible. |
| 364 EnableExtension(extension_c()->id()); | 257 EnableExtension(extension_c()->id()); |
| 365 EXPECT_EQ(2, browser_actions_bar()->VisibleBrowserActions()); | 258 EXPECT_EQ(2, browser_actions_bar()->VisibleBrowserActions()); |
| 366 EXPECT_EQ(extension_a()->id(), browser_actions_bar()->GetExtensionId(0)); | 259 EXPECT_EQ(extension_a()->id(), browser_actions_bar()->GetExtensionId(0)); |
| 367 EXPECT_EQ(extension_b()->id(), browser_actions_bar()->GetExtensionId(1)); | 260 EXPECT_EQ(extension_b()->id(), browser_actions_bar()->GetExtensionId(1)); |
| 368 EXPECT_TRUE(container->chevron()->visible()); | 261 EXPECT_TRUE(container->chevron()->visible()); |
| 369 } | 262 } |
| 370 | 263 |
| 371 // Test that changes performed in one container affect containers in other | 264 // Test that changes performed in one container affect containers in other |
| 372 // windows so that it is consistent. | 265 // windows so that it is consistent. |
| 373 IN_PROC_BROWSER_TEST_F(BrowserActionsContainerTest, MultipleWindows) { | 266 IN_PROC_BROWSER_TEST_F(BrowserActionsBarBrowserTest, MultipleWindows) { |
| 374 LoadExtensions(); | 267 LoadExtensions(); |
| 375 BrowserActionsContainer* first = | 268 BrowserActionsContainer* first = |
| 376 BrowserView::GetBrowserViewForBrowser(browser())->toolbar()-> | 269 BrowserView::GetBrowserViewForBrowser(browser())->toolbar()-> |
| 377 browser_actions(); | 270 browser_actions(); |
| 378 | 271 |
| 379 // Create a second browser. | 272 // Create a second browser. |
| 380 Browser* second_browser = new Browser( | 273 Browser* second_browser = new Browser( |
| 381 Browser::CreateParams(profile(), browser()->host_desktop_type())); | 274 Browser::CreateParams(profile(), browser()->host_desktop_type())); |
| 382 BrowserActionsContainer* second = | 275 BrowserActionsContainer* second = |
| 383 BrowserView::GetBrowserViewForBrowser(second_browser)->toolbar()-> | 276 BrowserView::GetBrowserViewForBrowser(second_browser)->toolbar()-> |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 418 EXPECT_EQ(extension_c(), first->GetBrowserActionViewAt(2u)->extension()); | 311 EXPECT_EQ(extension_c(), first->GetBrowserActionViewAt(2u)->extension()); |
| 419 EXPECT_EQ(extension_c(), second->GetBrowserActionViewAt(2u)->extension()); | 312 EXPECT_EQ(extension_c(), second->GetBrowserActionViewAt(2u)->extension()); |
| 420 | 313 |
| 421 // Next, simulate a resize by shrinking the container. | 314 // Next, simulate a resize by shrinking the container. |
| 422 first->OnResize(1, true); | 315 first->OnResize(1, true); |
| 423 // The first and second container should each have resized. | 316 // The first and second container should each have resized. |
| 424 EXPECT_EQ(2u, first->VisibleBrowserActions()); | 317 EXPECT_EQ(2u, first->VisibleBrowserActions()); |
| 425 EXPECT_EQ(2u, second->VisibleBrowserActions()); | 318 EXPECT_EQ(2u, second->VisibleBrowserActions()); |
| 426 } | 319 } |
| 427 | 320 |
| 428 IN_PROC_BROWSER_TEST_F(BrowserActionsContainerTest, ForceHide) { | 321 IN_PROC_BROWSER_TEST_F(BrowserActionsBarBrowserTest, ForceHide) { |
| 429 // Load extension A (with a browser action). | 322 LoadExtensions(); |
| 430 extension_service()->AddExtension(CreateExtension("alpha", true).get()); | |
| 431 EXPECT_EQ(1, browser_actions_bar()->NumberOfBrowserActions()); | |
| 432 EXPECT_TRUE(browser_actions_bar()->HasIcon(0)); | |
| 433 EXPECT_EQ(1, browser_actions_bar()->VisibleBrowserActions()); | |
| 434 std::string idA = browser_actions_bar()->GetExtensionId(0); | |
| 435 | 323 |
| 436 // Force hide this browser action. | 324 EXPECT_EQ(3, browser_actions_bar()->VisibleBrowserActions()); |
| 325 EXPECT_EQ(extension_a()->id(), browser_actions_bar()->GetExtensionId(0)); | |
| 326 // Force hide one of the extension's browser action. | |
|
Peter Kasting
2014/10/10 20:32:51
Nit: extensions'
Devlin
2014/10/10 20:40:23
Done.
| |
| 437 extensions::ExtensionActionAPI::SetBrowserActionVisibility( | 327 extensions::ExtensionActionAPI::SetBrowserActionVisibility( |
| 438 extensions::ExtensionPrefs::Get(browser()->profile()), idA, false); | 328 extensions::ExtensionPrefs::Get(browser()->profile()), |
| 439 EXPECT_EQ(0, browser_actions_bar()->VisibleBrowserActions()); | 329 extension_a()->id(), |
| 330 false); | |
| 331 // The browser action for Extension A should be removed. | |
| 332 EXPECT_EQ(2, browser_actions_bar()->VisibleBrowserActions()); | |
| 333 EXPECT_EQ(extension_b()->id(), browser_actions_bar()->GetExtensionId(0)); | |
| 440 } | 334 } |
| 441 | 335 |
| 442 // Test that the BrowserActionsContainer responds correctly when the underlying | 336 // Test that the BrowserActionsContainer responds correctly when the underlying |
| 443 // model enters highlight mode, and that browser actions are undraggable in | 337 // model enters highlight mode, and that browser actions are undraggable in |
| 444 // highlight mode. (Highlight mode itself it tested more thoroughly in the | 338 // highlight mode. (Highlight mode itself it tested more thoroughly in the |
| 445 // ExtensionToolbarModel browsertests). | 339 // ExtensionToolbarModel browsertests). |
| 446 IN_PROC_BROWSER_TEST_F(BrowserActionsContainerTest, HighlightMode) { | 340 IN_PROC_BROWSER_TEST_F(BrowserActionsBarBrowserTest, HighlightMode) { |
| 447 LoadExtensions(); | 341 LoadExtensions(); |
| 448 | 342 |
| 449 EXPECT_EQ(3, browser_actions_bar()->VisibleBrowserActions()); | 343 EXPECT_EQ(3, browser_actions_bar()->VisibleBrowserActions()); |
| 450 EXPECT_EQ(3, browser_actions_bar()->NumberOfBrowserActions()); | 344 EXPECT_EQ(3, browser_actions_bar()->NumberOfBrowserActions()); |
| 451 | 345 |
| 452 BrowserActionsContainer* container = browser() | 346 BrowserActionsContainer* container = browser() |
| 453 ->window() | 347 ->window() |
| 454 ->GetBrowserWindowTesting() | 348 ->GetBrowserWindowTesting() |
| 455 ->GetToolbarView() | 349 ->GetToolbarView() |
| 456 ->browser_actions(); | 350 ->browser_actions(); |
| (...skipping 22 matching lines...) Expand all Loading... | |
| 479 | 373 |
| 480 // We should go back to normal after leaving highlight mode. | 374 // We should go back to normal after leaving highlight mode. |
| 481 model->StopHighlighting(); | 375 model->StopHighlighting(); |
| 482 EXPECT_EQ(3, browser_actions_bar()->VisibleBrowserActions()); | 376 EXPECT_EQ(3, browser_actions_bar()->VisibleBrowserActions()); |
| 483 EXPECT_EQ(3, browser_actions_bar()->NumberOfBrowserActions()); | 377 EXPECT_EQ(3, browser_actions_bar()->NumberOfBrowserActions()); |
| 484 action_view = container->GetBrowserActionViewAt(0); | 378 action_view = container->GetBrowserActionViewAt(0); |
| 485 EXPECT_TRUE(container->CanStartDragForView(action_view, point, point)); | 379 EXPECT_TRUE(container->CanStartDragForView(action_view, point, point)); |
| 486 } | 380 } |
| 487 | 381 |
| 488 // Test the behavior of the overflow container for Extension Actions. | 382 // Test the behavior of the overflow container for Extension Actions. |
| 489 class BrowserActionsContainerOverflowTest : public BrowserActionsContainerTest { | 383 class BrowserActionsContainerOverflowTest |
| 384 : public BrowserActionsBarBrowserTest { | |
| 490 public: | 385 public: |
| 491 BrowserActionsContainerOverflowTest() : main_bar_(NULL), model_(NULL) { | 386 BrowserActionsContainerOverflowTest() : main_bar_(NULL), model_(NULL) { |
| 492 } | 387 } |
| 493 virtual ~BrowserActionsContainerOverflowTest() { | 388 virtual ~BrowserActionsContainerOverflowTest() { |
| 494 } | 389 } |
| 495 | 390 |
| 496 protected: | 391 protected: |
| 497 // Returns true if the order of the BrowserActionViews in |main_bar_| | 392 // Returns true if the order of the BrowserActionViews in |main_bar_| |
| 498 // and |overflow_bar_| match. | 393 // and |overflow_bar_| match. |
| 499 bool ViewOrdersMatch(); | 394 bool ViewOrdersMatch(); |
| (...skipping 25 matching lines...) Expand all Loading... | |
| 525 extensions::ExtensionToolbarModel* model_; | 420 extensions::ExtensionToolbarModel* model_; |
| 526 | 421 |
| 527 // Enable the feature redesign switch. | 422 // Enable the feature redesign switch. |
| 528 scoped_ptr<extensions::FeatureSwitch::ScopedOverride> enable_redesign_; | 423 scoped_ptr<extensions::FeatureSwitch::ScopedOverride> enable_redesign_; |
| 529 | 424 |
| 530 DISALLOW_COPY_AND_ASSIGN(BrowserActionsContainerOverflowTest); | 425 DISALLOW_COPY_AND_ASSIGN(BrowserActionsContainerOverflowTest); |
| 531 }; | 426 }; |
| 532 | 427 |
| 533 void BrowserActionsContainerOverflowTest::SetUpCommandLine( | 428 void BrowserActionsContainerOverflowTest::SetUpCommandLine( |
| 534 base::CommandLine* command_line) { | 429 base::CommandLine* command_line) { |
| 535 BrowserActionsContainerTest::SetUpCommandLine(command_line); | 430 BrowserActionsBarBrowserTest::SetUpCommandLine(command_line); |
| 536 enable_redesign_.reset(new extensions::FeatureSwitch::ScopedOverride( | 431 enable_redesign_.reset(new extensions::FeatureSwitch::ScopedOverride( |
| 537 extensions::FeatureSwitch::extension_action_redesign(), | 432 extensions::FeatureSwitch::extension_action_redesign(), |
| 538 true)); | 433 true)); |
| 539 } | 434 } |
| 540 | 435 |
| 541 void BrowserActionsContainerOverflowTest::SetUpOnMainThread() { | 436 void BrowserActionsContainerOverflowTest::SetUpOnMainThread() { |
| 542 BrowserActionsContainerTest::SetUpOnMainThread(); | 437 BrowserActionsBarBrowserTest::SetUpOnMainThread(); |
| 543 main_bar_ = BrowserView::GetBrowserViewForBrowser(browser()) | 438 main_bar_ = BrowserView::GetBrowserViewForBrowser(browser()) |
| 544 ->toolbar()->browser_actions(); | 439 ->toolbar()->browser_actions(); |
| 545 overflow_bar_.reset(new BrowserActionsContainer(browser(), NULL, main_bar_)); | 440 overflow_bar_.reset(new BrowserActionsContainer(browser(), NULL, main_bar_)); |
| 546 overflow_bar_->set_owned_by_client(); | 441 overflow_bar_->set_owned_by_client(); |
| 547 model_ = extensions::ExtensionToolbarModel::Get(profile()); | 442 model_ = extensions::ExtensionToolbarModel::Get(profile()); |
| 548 } | 443 } |
| 549 | 444 |
| 550 void BrowserActionsContainerOverflowTest::TearDownOnMainThread() { | 445 void BrowserActionsContainerOverflowTest::TearDownOnMainThread() { |
| 551 overflow_bar_.reset(); | 446 overflow_bar_.reset(); |
| 552 enable_redesign_.reset(); | 447 enable_redesign_.reset(); |
| 553 BrowserActionsContainerTest::TearDownOnMainThread(); | 448 BrowserActionsBarBrowserTest::TearDownOnMainThread(); |
| 554 } | 449 } |
| 555 | 450 |
| 556 bool BrowserActionsContainerOverflowTest::ViewOrdersMatch() { | 451 bool BrowserActionsContainerOverflowTest::ViewOrdersMatch() { |
| 557 if (main_bar_->num_browser_actions() != | 452 if (main_bar_->num_browser_actions() != |
| 558 overflow_bar_->num_browser_actions()) | 453 overflow_bar_->num_browser_actions()) |
| 559 return false; | 454 return false; |
| 560 for (size_t i = 0; i < main_bar_->num_browser_actions(); ++i) { | 455 for (size_t i = 0; i < main_bar_->num_browser_actions(); ++i) { |
| 561 if (main_bar_->GetBrowserActionViewAt(i)->extension() != | 456 if (main_bar_->GetBrowserActionViewAt(i)->extension() != |
| 562 overflow_bar_->GetBrowserActionViewAt(i)->extension()) | 457 overflow_bar_->GetBrowserActionViewAt(i)->extension()) |
| 563 return false; | 458 return false; |
| (...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 702 | 597 |
| 703 main_bar()->OnDragUpdated(target_event3); | 598 main_bar()->OnDragUpdated(target_event3); |
| 704 main_bar()->OnPerformDrop(target_event3); | 599 main_bar()->OnPerformDrop(target_event3); |
| 705 | 600 |
| 706 // Order should be A C B, and there should be no extensions in overflow. | 601 // Order should be A C B, and there should be no extensions in overflow. |
| 707 EXPECT_EQ(extension_a(), main_bar()->GetBrowserActionViewAt(0)->extension()); | 602 EXPECT_EQ(extension_a(), main_bar()->GetBrowserActionViewAt(0)->extension()); |
| 708 EXPECT_EQ(extension_c(), main_bar()->GetBrowserActionViewAt(1)->extension()); | 603 EXPECT_EQ(extension_c(), main_bar()->GetBrowserActionViewAt(1)->extension()); |
| 709 EXPECT_EQ(extension_b(), main_bar()->GetBrowserActionViewAt(2)->extension()); | 604 EXPECT_EQ(extension_b(), main_bar()->GetBrowserActionViewAt(2)->extension()); |
| 710 VerifyVisibleCount(3u); | 605 VerifyVisibleCount(3u); |
| 711 } | 606 } |
| OLD | NEW |