| 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 |