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

Unified Diff: chrome/browser/ui/views/toolbar/browser_action_test_util_views.cc

Issue 1104813005: [Extensions Toolbar] Refactor a few test classes (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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/views/toolbar/browser_action_test_util_views.cc
diff --git a/chrome/browser/ui/views/toolbar/browser_action_test_util_views.cc b/chrome/browser/ui/views/toolbar/browser_action_test_util_views.cc
index 8b3b3e8a09167c3910c65f1e962f4e55e1732fc9..48edbf0d7d1fcc8cdfb2bb7383221fa9c52d6fd4 100644
--- a/chrome/browser/ui/views/toolbar/browser_action_test_util_views.cc
+++ b/chrome/browser/ui/views/toolbar/browser_action_test_util_views.cc
@@ -22,26 +22,80 @@
namespace {
+// The views-specific implementation of the TestToolbarActionsBarHelper, which
+// creates and owns a BrowserActionsContainer.
+class TestToolbarActionsBarHelperViews : public TestToolbarActionsBarHelper {
+ public:
+ TestToolbarActionsBarHelperViews(Browser* browser,
+ BrowserActionsContainer* main_bar);
+ ~TestToolbarActionsBarHelperViews() override;
+
+ BrowserActionsContainer* browser_actions_container() {
+ return browser_actions_container_;
+ }
+
+ private:
+ // The parent of the BrowserActionsContainer, which directly owns the
+ // container as part of the views hierarchy.
+ views::View container_parent_;
+
+ // The created BrowserActionsContainer. Owned by |container_parent_|.
+ BrowserActionsContainer* browser_actions_container_;
+
+ DISALLOW_COPY_AND_ASSIGN(TestToolbarActionsBarHelperViews);
+};
+
+TestToolbarActionsBarHelperViews::TestToolbarActionsBarHelperViews(
+ Browser* browser,
+ BrowserActionsContainer* main_bar)
+ : browser_actions_container_(
+ new BrowserActionsContainer(browser, main_bar)) {
+ // The BrowserActionsContainer expects to have a parent (and be added to the
+ // view hierarchy), so wrap it in a shell view.
+ container_parent_.set_owned_by_client();
+ container_parent_.AddChildView(browser_actions_container_);
+}
+
+TestToolbarActionsBarHelperViews::~TestToolbarActionsBarHelperViews() {
+}
+
BrowserActionsContainer* GetContainer(Browser* browser,
- ToolbarActionsBarDelegate* bar_delegate) {
- if (bar_delegate)
- return static_cast<BrowserActionsContainer*>(bar_delegate);
+ TestToolbarActionsBarHelper* helper) {
+ if (helper) {
+ return static_cast<TestToolbarActionsBarHelperViews*>(helper)
+ ->browser_actions_container();
+ }
return BrowserView::GetBrowserViewForBrowser(browser)->toolbar()->
browser_actions();
}
} // namespace
+BrowserActionTestUtil::BrowserActionTestUtil(Browser* browser)
+ : BrowserActionTestUtil(browser, true) {
+}
+
+BrowserActionTestUtil::BrowserActionTestUtil(Browser* browser,
+ bool is_real_window)
+ : browser_(browser) {
+ if (!is_real_window)
+ test_helper_.reset(new TestToolbarActionsBarHelperViews(browser, nullptr));
+}
+
+BrowserActionTestUtil::~BrowserActionTestUtil() {
+}
+
int BrowserActionTestUtil::NumberOfBrowserActions() {
- return GetContainer(browser_, bar_delegate_)->num_toolbar_actions();
+ return GetContainer(browser_, test_helper_.get())->num_toolbar_actions();
}
int BrowserActionTestUtil::VisibleBrowserActions() {
- return GetContainer(browser_, bar_delegate_)->VisibleBrowserActions();
+ return GetContainer(browser_, test_helper_.get())->VisibleBrowserActions();
}
bool BrowserActionTestUtil::IsChevronShowing() {
- BrowserActionsContainer* container = GetContainer(browser_, bar_delegate_);
+ BrowserActionsContainer* container =
+ GetContainer(browser_, test_helper_.get());
gfx::Size visible_size = container->GetVisibleBounds().size();
return container->chevron() &&
container->chevron()->visible() &&
@@ -52,37 +106,44 @@ bool BrowserActionTestUtil::IsChevronShowing() {
void BrowserActionTestUtil::InspectPopup(int index) {
ToolbarActionView* view =
- GetContainer(browser_, bar_delegate_)->GetToolbarActionViewAt(index);
+ GetContainer(browser_, test_helper_.get())->GetToolbarActionViewAt(index);
static_cast<ExtensionActionViewController*>(view->view_controller())->
InspectPopup();
}
bool BrowserActionTestUtil::HasIcon(int index) {
- return !GetContainer(browser_, bar_delegate_)->GetToolbarActionViewAt(index)->
- GetImage(views::Button::STATE_NORMAL).isNull();
+ return !GetContainer(browser_, test_helper_.get())
+ ->GetToolbarActionViewAt(index)
+ ->GetImage(views::Button::STATE_NORMAL)
+ .isNull();
}
gfx::Image BrowserActionTestUtil::GetIcon(int index) {
- gfx::ImageSkia icon =
- GetContainer(browser_, bar_delegate_)->GetToolbarActionViewAt(index)->
- GetIconForTest();
+ gfx::ImageSkia icon = GetContainer(browser_, test_helper_.get())
+ ->GetToolbarActionViewAt(index)
+ ->GetIconForTest();
return gfx::Image(icon);
}
void BrowserActionTestUtil::Press(int index) {
- GetContainer(browser_, bar_delegate_)->GetToolbarActionViewAt(index)->
- view_controller()->ExecuteAction(true);
+ GetContainer(browser_, test_helper_.get())
+ ->GetToolbarActionViewAt(index)
+ ->view_controller()
+ ->ExecuteAction(true);
}
std::string BrowserActionTestUtil::GetExtensionId(int index) {
- return GetContainer(browser_, bar_delegate_)->GetToolbarActionViewAt(index)->
- view_controller()->GetId();
+ return GetContainer(browser_, test_helper_.get())
+ ->GetToolbarActionViewAt(index)
+ ->view_controller()
+ ->GetId();
}
std::string BrowserActionTestUtil::GetTooltip(int index) {
base::string16 text;
- GetContainer(browser_, bar_delegate_)->GetToolbarActionViewAt(index)->
- GetTooltipText(gfx::Point(), &text);
+ GetContainer(browser_, test_helper_.get())
+ ->GetToolbarActionViewAt(index)
+ ->GetTooltipText(gfx::Point(), &text);
return base::UTF16ToUTF8(text);
}
@@ -108,8 +169,9 @@ bool BrowserActionTestUtil::HidePopup() {
}
bool BrowserActionTestUtil::ActionButtonWantsToRun(size_t index) {
- return GetContainer(browser_, bar_delegate_)->GetToolbarActionViewAt(index)->
- wants_to_run_for_testing();
+ return GetContainer(browser_, test_helper_.get())
+ ->GetToolbarActionViewAt(index)
+ ->wants_to_run_for_testing();
}
bool BrowserActionTestUtil::OverflowedActionButtonWantsToRun() {
@@ -118,7 +180,13 @@ bool BrowserActionTestUtil::OverflowedActionButtonWantsToRun() {
}
ToolbarActionsBar* BrowserActionTestUtil::GetToolbarActionsBar() {
- return GetContainer(browser_, bar_delegate_)->toolbar_actions_bar();
+ return GetContainer(browser_, test_helper_.get())->toolbar_actions_bar();
+}
+
+scoped_ptr<BrowserActionTestUtil> BrowserActionTestUtil::CreateOverflowBar() {
+ CHECK(!GetToolbarActionsBar()->in_overflow_mode())
+ << "Only a main bar can create an overflow bar!";
+ return make_scoped_ptr(new BrowserActionTestUtil(browser_, this));
}
// static
@@ -130,3 +198,11 @@ gfx::Size BrowserActionTestUtil::GetMinPopupSize() {
gfx::Size BrowserActionTestUtil::GetMaxPopupSize() {
return gfx::Size(ExtensionPopup::kMaxWidth, ExtensionPopup::kMaxHeight);
}
+
+BrowserActionTestUtil::BrowserActionTestUtil(Browser* browser,
+ BrowserActionTestUtil* main_bar)
+ : browser_(browser),
+ test_helper_(new TestToolbarActionsBarHelperViews(
+ browser_,
+ GetContainer(browser_, main_bar->test_helper_.get()))) {
+}

Powered by Google App Engine
This is Rietveld 408576698