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

Unified Diff: chrome/browser/ui/toolbar/component_toolbar_actions_browsertest.cc

Issue 884473006: [Toolbar] Move the component toolbar actions test to be cross-platform. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/browser/ui/views/toolbar/component_toolbar_actions_browsertest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/toolbar/component_toolbar_actions_browsertest.cc
diff --git a/chrome/browser/ui/views/toolbar/component_toolbar_actions_browsertest.cc b/chrome/browser/ui/toolbar/component_toolbar_actions_browsertest.cc
similarity index 79%
rename from chrome/browser/ui/views/toolbar/component_toolbar_actions_browsertest.cc
rename to chrome/browser/ui/toolbar/component_toolbar_actions_browsertest.cc
index 5f66e60ec4b824d97775db81e6380bb4010313e5..4979ecf9d43af4b9fae9368f42ff20749bfac1a7 100644
--- a/chrome/browser/ui/views/toolbar/component_toolbar_actions_browsertest.cc
+++ b/chrome/browser/ui/toolbar/component_toolbar_actions_browsertest.cc
@@ -5,17 +5,16 @@
#include "base/macros.h"
#include "base/memory/scoped_ptr.h"
#include "base/strings/utf_string_conversions.h"
+#include "chrome/browser/extensions/browser_action_test_util.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/toolbar/component_toolbar_actions_factory.h"
#include "chrome/browser/ui/toolbar/toolbar_action_view_controller.h"
-#include "chrome/browser/ui/views/frame/browser_view.h"
-#include "chrome/browser/ui/views/toolbar/browser_actions_container.h"
-#include "chrome/browser/ui/views/toolbar/toolbar_action_view.h"
-#include "chrome/browser/ui/views/toolbar/toolbar_view.h"
#include "chrome/test/base/in_process_browser_test.h"
#include "extensions/common/feature_switch.h"
#include "grit/theme_resources.h"
#include "ui/base/resource/resource_bundle.h"
+#include "ui/gfx/image/image.h"
+#include "ui/gfx/image/image_skia.h"
Finnur 2015/01/29 09:42:54 nit: Is this required?
Devlin 2015/01/29 18:18:37 Yeah. I think before it was transitively included,
namespace {
@@ -86,7 +85,14 @@ class MockComponentToolbarActionsFactory
ScopedVector<ToolbarActionViewController> GetComponentToolbarActions()
override;
+ const std::vector<MockComponentAction*>& weak_actions() const {
+ return weak_actions_;
+ }
+
private:
+ // A (weak) set of all created actions.
+ std::vector<MockComponentAction*> weak_actions_;
+
DISALLOW_COPY_AND_ASSIGN(MockComponentToolbarActionsFactory);
};
@@ -101,7 +107,9 @@ MockComponentToolbarActionsFactory::~MockComponentToolbarActionsFactory() {
ScopedVector<ToolbarActionViewController>
MockComponentToolbarActionsFactory::GetComponentToolbarActions() {
ScopedVector<ToolbarActionViewController> component_actions;
- component_actions.push_back(new MockComponentAction());
+ MockComponentAction* action = new MockComponentAction();
+ component_actions.push_back(action);
+ weak_actions_.push_back(action);
return component_actions.Pass();
}
@@ -119,6 +127,10 @@ class ComponentToolbarActionsBrowserTest : public InProcessBrowserTest {
mock_actions_factory_.reset(new MockComponentToolbarActionsFactory());
}
+ MockComponentToolbarActionsFactory* mock_factory() {
+ return mock_actions_factory_.get();
+ }
+
private:
scoped_ptr<extensions::FeatureSwitch::ScopedOverride> enable_redesign_;
scoped_ptr<MockComponentToolbarActionsFactory> mock_actions_factory_;
@@ -130,21 +142,24 @@ class ComponentToolbarActionsBrowserTest : public InProcessBrowserTest {
// and can receive click events properly.
IN_PROC_BROWSER_TEST_F(ComponentToolbarActionsBrowserTest,
ComponentToolbarActionsShowUpAndRespondToClicks) {
- BrowserActionsContainer* browser_actions_container =
- BrowserView::GetBrowserViewForBrowser(browser())
- ->toolbar()->browser_actions();
+ BrowserActionTestUtil browser_actions_bar(browser());
// There should be only one component action view.
- ASSERT_EQ(1u, browser_actions_container->num_toolbar_actions());
+ ASSERT_EQ(1, browser_actions_bar.NumberOfBrowserActions());
+
+ // Even though the method says "ExtensionId", this actually refers to any id
+ // for the action.
+ EXPECT_EQ(kMockId, browser_actions_bar.GetExtensionId(0));
- ToolbarActionView* view =
- browser_actions_container->GetToolbarActionViewAt(0u);
- ASSERT_EQ(kMockId, view->view_controller()->GetId());
- MockComponentAction* mock_component_action =
- static_cast<MockComponentAction*>(view->view_controller());
+ // There should only have been one created component action.
+ const std::vector<MockComponentAction*> weak_actions =
+ mock_factory()->weak_actions();
+ ASSERT_EQ(1u, weak_actions.size());
+ MockComponentAction* mock_component_action = weak_actions[0];
+ ASSERT_TRUE(mock_component_action);
// Test that clicking on the component action works.
EXPECT_EQ(0u, mock_component_action->click_count());
- view->Activate();
+ browser_actions_bar.Press(0);
EXPECT_EQ(1u, mock_component_action->click_count());
}
« no previous file with comments | « no previous file | chrome/browser/ui/views/toolbar/component_toolbar_actions_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698