Index: chrome/browser/ui/views/toolbar/browser_actions_container_browsertest.cc |
diff --git a/chrome/browser/ui/views/toolbar/browser_actions_container_browsertest.cc b/chrome/browser/ui/views/toolbar/browser_actions_container_browsertest.cc |
index ff8e2292d5451b0c5a34119166f6a61cd71ac32f..6aba481c4e9ee91c5aa20fb583e52d7c7ebab4a4 100644 |
--- a/chrome/browser/ui/views/toolbar/browser_actions_container_browsertest.cc |
+++ b/chrome/browser/ui/views/toolbar/browser_actions_container_browsertest.cc |
@@ -4,140 +4,31 @@ |
#include "chrome/browser/ui/views/toolbar/browser_actions_container.h" |
-#include "chrome/browser/chrome_notification_types.h" |
#include "chrome/browser/extensions/api/extension_action/extension_action_api.h" |
#include "chrome/browser/extensions/browser_action_test_util.h" |
-#include "chrome/browser/extensions/extension_browsertest.h" |
#include "chrome/browser/extensions/extension_service.h" |
#include "chrome/browser/extensions/extension_toolbar_model.h" |
#include "chrome/browser/ui/browser_window.h" |
#include "chrome/browser/ui/browser_window_testing_views.h" |
+#include "chrome/browser/ui/toolbar/browser_actions_bar_browsertest.h" |
#include "chrome/browser/ui/views/extensions/browser_action_drag_data.h" |
#include "chrome/browser/ui/views/frame/browser_view.h" |
#include "chrome/browser/ui/views/toolbar/browser_action_view.h" |
#include "chrome/browser/ui/views/toolbar/toolbar_view.h" |
-#include "components/crx_file/id_util.h" |
-#include "content/public/test/test_utils.h" |
#include "extensions/browser/extension_prefs.h" |
-#include "extensions/browser/extension_registry.h" |
#include "extensions/common/extension.h" |
-#include "extensions/common/extension_builder.h" |
-#include "extensions/common/value_builder.h" |
#include "ui/base/dragdrop/drop_target_event.h" |
#include "ui/base/dragdrop/os_exchange_data.h" |
#include "ui/gfx/geometry/point.h" |
#include "ui/views/view.h" |
-using extensions::Extension; |
- |
-namespace { |
- |
-scoped_refptr<const Extension> CreateExtension(const std::string& name, |
- bool has_browser_action) { |
- extensions::DictionaryBuilder manifest; |
- manifest.Set("name", name). |
- Set("description", "an extension"). |
- Set("manifest_version", 2). |
- Set("version", "1.0"); |
- if (has_browser_action) |
- manifest.Set("browser_action", extensions::DictionaryBuilder().Pass()); |
- return extensions::ExtensionBuilder(). |
- SetManifest(manifest.Pass()). |
- SetID(crx_file::id_util::GenerateId(name)). |
- Build(); |
-} |
- |
-} // namespace |
- |
-class BrowserActionsContainerTest : public ExtensionBrowserTest { |
- public: |
- BrowserActionsContainerTest() { |
- } |
- virtual ~BrowserActionsContainerTest() {} |
- |
- protected: |
- virtual void SetUpCommandLine(base::CommandLine* command_line) override { |
- BrowserActionsContainer::disable_animations_during_testing_ = true; |
- ExtensionBrowserTest::SetUpCommandLine(command_line); |
- } |
- |
- virtual void SetUpOnMainThread() override { |
- ExtensionBrowserTest::SetUpOnMainThread(); |
- browser_actions_bar_.reset(new BrowserActionTestUtil(browser())); |
- } |
- |
- virtual void TearDownOnMainThread() override { |
- BrowserActionsContainer::disable_animations_during_testing_ = false; |
- ExtensionBrowserTest::TearDownOnMainThread(); |
- } |
- |
- BrowserActionTestUtil* browser_actions_bar() { |
- return browser_actions_bar_.get(); |
- } |
- |
- // Creates three different extensions, each with a browser action, and adds |
- // them to associated ExtensionService. These can then be accessed via |
- // extension_[a|b|c](). |
- void LoadExtensions(); |
- |
- const Extension* extension_a() const { return extension_a_.get(); } |
- const Extension* extension_b() const { return extension_b_.get(); } |
- const Extension* extension_c() const { return extension_c_.get(); } |
- |
- private: |
- scoped_ptr<BrowserActionTestUtil> browser_actions_bar_; |
- |
- // Extensions with browser actions used for testing. |
- scoped_refptr<const Extension> extension_a_; |
- scoped_refptr<const Extension> extension_b_; |
- scoped_refptr<const Extension> extension_c_; |
-}; |
- |
-void BrowserActionsContainerTest::LoadExtensions() { |
- // Create three extensions with browser actions. |
- extension_a_ = CreateExtension("alpha", true); |
- extension_b_ = CreateExtension("beta", true); |
- extension_c_ = CreateExtension("gamma", true); |
- |
- const Extension* extensions[] = |
- { extension_a(), extension_b(), extension_c() }; |
- extensions::ExtensionRegistry* registry = |
- extensions::ExtensionRegistry::Get(profile()); |
- // Add each, and verify that it is both correctly added to the extension |
- // registry and to the browser actions container. |
- for (size_t i = 0; i < arraysize(extensions); ++i) { |
- extension_service()->AddExtension(extensions[i]); |
- EXPECT_TRUE(registry->enabled_extensions().GetByID(extensions[i]->id())) << |
- extensions[i]->name(); |
- EXPECT_EQ(static_cast<int>(i + 1), |
- browser_actions_bar_->NumberOfBrowserActions()); |
- EXPECT_TRUE(browser_actions_bar_->HasIcon(i)); |
- EXPECT_EQ(static_cast<int>(i + 1), |
- browser_actions_bar()->VisibleBrowserActions()); |
- } |
-} |
- |
-// Test the basic functionality. |
-IN_PROC_BROWSER_TEST_F(BrowserActionsContainerTest, Basic) { |
- // Load an extension with no browser action. |
- extension_service()->AddExtension(CreateExtension("alpha", false).get()); |
- // This extension should not be in the model (has no browser action). |
- EXPECT_EQ(0, browser_actions_bar()->NumberOfBrowserActions()); |
- |
- // Load an extension with a browser action. |
- extension_service()->AddExtension(CreateExtension("beta", true).get()); |
- EXPECT_EQ(1, browser_actions_bar()->NumberOfBrowserActions()); |
- EXPECT_TRUE(browser_actions_bar()->HasIcon(0)); |
- |
- // Unload the extension. |
- std::string id = browser_actions_bar()->GetExtensionId(0); |
- UnloadExtension(id); |
- EXPECT_EQ(0, browser_actions_bar()->NumberOfBrowserActions()); |
-} |
+// TODO(devlin): Continue moving any tests that should be platform independent |
+// from this file to the crossplatform tests in |
+// chrome/browser/ui/toolbar/browser_actions_bar_browsertest.cc. |
// Test moving various browser actions. This is not to check the logic of the |
// move (that's in the toolbar model tests), but just to check our ui. |
-IN_PROC_BROWSER_TEST_F(BrowserActionsContainerTest, MoveBrowserActions) { |
+IN_PROC_BROWSER_TEST_F(BrowserActionsBarBrowserTest, MoveBrowserActions) { |
LoadExtensions(); |
EXPECT_EQ(3, browser_actions_bar()->VisibleBrowserActions()); |
@@ -174,7 +65,7 @@ IN_PROC_BROWSER_TEST_F(BrowserActionsContainerTest, MoveBrowserActions) { |
// Test that dragging browser actions works, and that dragging a browser action |
// from the overflow menu results in it "popping" out (growing the container |
// size by 1), rather than just reordering the extensions. |
-IN_PROC_BROWSER_TEST_F(BrowserActionsContainerTest, DragBrowserActions) { |
+IN_PROC_BROWSER_TEST_F(BrowserActionsBarBrowserTest, DragBrowserActions) { |
LoadExtensions(); |
// Sanity check: All extensions showing; order is A B C. |
@@ -270,7 +161,7 @@ IN_PROC_BROWSER_TEST_F(BrowserActionsContainerTest, DragBrowserActions) { |
// mock up the BrowserActionOverflowMenuController. |
} |
-IN_PROC_BROWSER_TEST_F(BrowserActionsContainerTest, Visibility) { |
+IN_PROC_BROWSER_TEST_F(BrowserActionsBarBrowserTest, Visibility) { |
LoadExtensions(); |
// Change container to show only one action, rest in overflow: A, [B, C]. |
@@ -370,7 +261,7 @@ IN_PROC_BROWSER_TEST_F(BrowserActionsContainerTest, Visibility) { |
// Test that changes performed in one container affect containers in other |
// windows so that it is consistent. |
-IN_PROC_BROWSER_TEST_F(BrowserActionsContainerTest, MultipleWindows) { |
+IN_PROC_BROWSER_TEST_F(BrowserActionsBarBrowserTest, MultipleWindows) { |
LoadExtensions(); |
BrowserActionsContainer* first = |
BrowserView::GetBrowserViewForBrowser(browser())->toolbar()-> |
@@ -425,25 +316,26 @@ IN_PROC_BROWSER_TEST_F(BrowserActionsContainerTest, MultipleWindows) { |
EXPECT_EQ(2u, second->VisibleBrowserActions()); |
} |
-IN_PROC_BROWSER_TEST_F(BrowserActionsContainerTest, ForceHide) { |
- // Load extension A (with a browser action). |
- extension_service()->AddExtension(CreateExtension("alpha", true).get()); |
- EXPECT_EQ(1, browser_actions_bar()->NumberOfBrowserActions()); |
- EXPECT_TRUE(browser_actions_bar()->HasIcon(0)); |
- EXPECT_EQ(1, browser_actions_bar()->VisibleBrowserActions()); |
- std::string idA = browser_actions_bar()->GetExtensionId(0); |
+IN_PROC_BROWSER_TEST_F(BrowserActionsBarBrowserTest, ForceHide) { |
+ LoadExtensions(); |
- // Force hide this browser action. |
+ EXPECT_EQ(3, browser_actions_bar()->VisibleBrowserActions()); |
+ EXPECT_EQ(extension_a()->id(), browser_actions_bar()->GetExtensionId(0)); |
+ // Force hide one of the extensions' browser action. |
extensions::ExtensionActionAPI::SetBrowserActionVisibility( |
- extensions::ExtensionPrefs::Get(browser()->profile()), idA, false); |
- EXPECT_EQ(0, browser_actions_bar()->VisibleBrowserActions()); |
+ extensions::ExtensionPrefs::Get(browser()->profile()), |
+ extension_a()->id(), |
+ false); |
+ // The browser action for Extension A should be removed. |
+ EXPECT_EQ(2, browser_actions_bar()->VisibleBrowserActions()); |
+ EXPECT_EQ(extension_b()->id(), browser_actions_bar()->GetExtensionId(0)); |
} |
// Test that the BrowserActionsContainer responds correctly when the underlying |
// model enters highlight mode, and that browser actions are undraggable in |
// highlight mode. (Highlight mode itself it tested more thoroughly in the |
// ExtensionToolbarModel browsertests). |
-IN_PROC_BROWSER_TEST_F(BrowserActionsContainerTest, HighlightMode) { |
+IN_PROC_BROWSER_TEST_F(BrowserActionsBarBrowserTest, HighlightMode) { |
LoadExtensions(); |
EXPECT_EQ(3, browser_actions_bar()->VisibleBrowserActions()); |
@@ -486,7 +378,8 @@ IN_PROC_BROWSER_TEST_F(BrowserActionsContainerTest, HighlightMode) { |
} |
// Test the behavior of the overflow container for Extension Actions. |
-class BrowserActionsContainerOverflowTest : public BrowserActionsContainerTest { |
+class BrowserActionsContainerOverflowTest |
+ : public BrowserActionsBarBrowserTest { |
public: |
BrowserActionsContainerOverflowTest() : main_bar_(NULL), model_(NULL) { |
} |
@@ -532,14 +425,14 @@ class BrowserActionsContainerOverflowTest : public BrowserActionsContainerTest { |
void BrowserActionsContainerOverflowTest::SetUpCommandLine( |
base::CommandLine* command_line) { |
- BrowserActionsContainerTest::SetUpCommandLine(command_line); |
+ BrowserActionsBarBrowserTest::SetUpCommandLine(command_line); |
enable_redesign_.reset(new extensions::FeatureSwitch::ScopedOverride( |
extensions::FeatureSwitch::extension_action_redesign(), |
true)); |
} |
void BrowserActionsContainerOverflowTest::SetUpOnMainThread() { |
- BrowserActionsContainerTest::SetUpOnMainThread(); |
+ BrowserActionsBarBrowserTest::SetUpOnMainThread(); |
main_bar_ = BrowserView::GetBrowserViewForBrowser(browser()) |
->toolbar()->browser_actions(); |
overflow_bar_.reset(new BrowserActionsContainer(browser(), NULL, main_bar_)); |
@@ -550,7 +443,7 @@ void BrowserActionsContainerOverflowTest::SetUpOnMainThread() { |
void BrowserActionsContainerOverflowTest::TearDownOnMainThread() { |
overflow_bar_.reset(); |
enable_redesign_.reset(); |
- BrowserActionsContainerTest::TearDownOnMainThread(); |
+ BrowserActionsBarBrowserTest::TearDownOnMainThread(); |
} |
bool BrowserActionsContainerOverflowTest::ViewOrdersMatch() { |