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

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

Issue 1881773002: [Extensions UI] Convert ExtensionMessageBubbles to ToolbarActionsBarBubbles (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 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
« no previous file with comments | « chrome/browser/ui/views/toolbar/toolbar_actions_bar_bubble_views.cc ('k') | chrome/chrome_browser_ui.gypi » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/views/toolbar/toolbar_actions_bar_bubble_views_unittest.cc
diff --git a/chrome/browser/ui/views/toolbar/toolbar_actions_bar_bubble_views_unittest.cc b/chrome/browser/ui/views/toolbar/toolbar_actions_bar_bubble_views_unittest.cc
index 16f59b24fa91fd7cef37b231a289b8257c4b186a..39754c7aa3c29898ee78746db3494c000a25c3dd 100644
--- a/chrome/browser/ui/views/toolbar/toolbar_actions_bar_bubble_views_unittest.cc
+++ b/chrome/browser/ui/views/toolbar/toolbar_actions_bar_bubble_views_unittest.cc
@@ -11,6 +11,7 @@
#include "ui/events/test/event_generator.h"
#include "ui/views/bubble/bubble_delegate.h"
#include "ui/views/controls/button/label_button.h"
+#include "ui/views/controls/link.h"
#include "ui/views/test/test_widget_observer.h"
#include "ui/views/test/views_test_base.h"
#include "ui/views/widget/widget.h"
@@ -27,6 +28,14 @@ gfx::Point GetCenterInScreenCoordinates(const views::View* view) {
class ToolbarActionsBarBubbleViewsTest : public views::ViewsTestBase {
protected:
+ ToolbarActionsBarBubbleViewsTest() {}
+ ~ToolbarActionsBarBubbleViewsTest() override {}
+
+ void TearDown() override {
+ anchor_widget_.reset();
+ views::ViewsTestBase::TearDown();
+ }
+
std::unique_ptr<views::Widget> CreateAnchorWidget() {
std::unique_ptr<views::Widget> anchor_widget(new views::Widget());
views::Widget::InitParams params =
@@ -36,55 +45,136 @@ class ToolbarActionsBarBubbleViewsTest : public views::ViewsTestBase {
return anchor_widget;
}
+ void ShowBubble(TestToolbarActionsBarBubbleDelegate* delegate) {
+ ASSERT_TRUE(delegate);
+ ASSERT_FALSE(bubble_widget_);
+ ASSERT_FALSE(bubble_);
+ anchor_widget_ = CreateAnchorWidget();
+ bubble_ = new ToolbarActionsBarBubbleViews(
+ anchor_widget_->GetContentsView(), delegate->GetDelegate());
+ bubble_widget_ =
+ views::BubbleDelegateView::CreateBubble(bubble_);
+ bubble_->Show();
+ }
+
+ void CloseBubble() {
+ ASSERT_TRUE(bubble_);
+ bubble_->GetWidget()->Close();
+ base::RunLoop().RunUntilIdle();
+ bubble_ = nullptr;
+ bubble_widget_ = nullptr;
+ }
+
+ void ClickView(const views::View* view) {
+ ASSERT_TRUE(view);
+ ui::test::EventGenerator generator(GetContext(),
+ anchor_widget_->GetNativeWindow());
+ generator.MoveMouseTo(GetCenterInScreenCoordinates(view));
+ generator.ClickLeftButton();
+ base::RunLoop().RunUntilIdle();
+ }
+
base::string16 HeadingString() { return base::ASCIIToUTF16("Heading"); }
base::string16 BodyString() { return base::ASCIIToUTF16("Body"); }
base::string16 ActionString() { return base::ASCIIToUTF16("Action"); }
base::string16 DismissString() { return base::ASCIIToUTF16("Dismiss"); }
+ base::string16 LearnMoreString() { return base::ASCIIToUTF16("Learn"); }
+ base::string16 ItemListString() {
+ return base::ASCIIToUTF16("Item 1\nItem2");
+ }
+
+ views::Widget* anchor_widget() { return anchor_widget_.get(); }
+ views::Widget* bubble_widget() { return bubble_widget_; }
+ ToolbarActionsBarBubbleViews* bubble() { return bubble_; }
+
+ private:
+ std::unique_ptr<views::Widget> anchor_widget_;
+ views::Widget* bubble_widget_ = nullptr;
+ ToolbarActionsBarBubbleViews* bubble_ = nullptr;
+
+ DISALLOW_COPY_AND_ASSIGN(ToolbarActionsBarBubbleViewsTest);
};
TEST_F(ToolbarActionsBarBubbleViewsTest, TestBubbleLayoutActionButton) {
- std::unique_ptr<views::Widget> anchor_widget = CreateAnchorWidget();
TestToolbarActionsBarBubbleDelegate delegate(HeadingString(), BodyString(),
ActionString());
- ToolbarActionsBarBubbleViews* bubble = new ToolbarActionsBarBubbleViews(
- anchor_widget->GetContentsView(), delegate.GetDelegate());
- views::BubbleDelegateView::CreateBubble(bubble);
- bubble->Show();
+ ShowBubble(&delegate);
- EXPECT_TRUE(bubble->heading_label());
- EXPECT_EQ(HeadingString(), bubble->heading_label()->text());
- EXPECT_TRUE(bubble->content_label());
- EXPECT_EQ(BodyString(), bubble->content_label()->text());
- EXPECT_TRUE(bubble->action_button());
- EXPECT_EQ(ActionString(), bubble->action_button()->GetText());
- EXPECT_FALSE(bubble->dismiss_button());
+ EXPECT_TRUE(bubble()->heading_label());
+ EXPECT_EQ(HeadingString(), bubble()->heading_label()->text());
+ EXPECT_TRUE(bubble()->content_label());
+ EXPECT_EQ(BodyString(), bubble()->content_label()->text());
+ EXPECT_TRUE(bubble()->action_button());
+ EXPECT_EQ(ActionString(), bubble()->action_button()->GetText());
+ EXPECT_FALSE(bubble()->dismiss_button());
+ EXPECT_FALSE(bubble()->learn_more_button());
+ EXPECT_FALSE(bubble()->item_list());
- bubble->GetWidget()->Close();
- base::RunLoop().RunUntilIdle();
+ CloseBubble();
}
TEST_F(ToolbarActionsBarBubbleViewsTest,
TestBubbleLayoutActionAndDismissButton) {
- std::unique_ptr<views::Widget> anchor_widget = CreateAnchorWidget();
TestToolbarActionsBarBubbleDelegate delegate(HeadingString(), BodyString(),
ActionString());
delegate.set_dismiss_button_text(DismissString());
- ToolbarActionsBarBubbleViews* bubble = new ToolbarActionsBarBubbleViews(
- anchor_widget->GetContentsView(), delegate.GetDelegate());
- views::BubbleDelegateView::CreateBubble(bubble);
- bubble->Show();
+ ShowBubble(&delegate);
- EXPECT_TRUE(bubble->heading_label());
- EXPECT_EQ(HeadingString(), bubble->heading_label()->text());
- EXPECT_TRUE(bubble->content_label());
- EXPECT_EQ(BodyString(), bubble->content_label()->text());
- EXPECT_TRUE(bubble->action_button());
- EXPECT_EQ(ActionString(), bubble->action_button()->GetText());
- EXPECT_TRUE(bubble->dismiss_button());
- EXPECT_EQ(DismissString(), bubble->dismiss_button()->GetText());
+ EXPECT_TRUE(bubble()->heading_label());
+ EXPECT_EQ(HeadingString(), bubble()->heading_label()->text());
+ EXPECT_TRUE(bubble()->content_label());
+ EXPECT_EQ(BodyString(), bubble()->content_label()->text());
+ EXPECT_TRUE(bubble()->action_button());
+ EXPECT_EQ(ActionString(), bubble()->action_button()->GetText());
+ EXPECT_TRUE(bubble()->dismiss_button());
+ EXPECT_EQ(DismissString(), bubble()->dismiss_button()->GetText());
+ EXPECT_FALSE(bubble()->learn_more_button());
+ EXPECT_FALSE(bubble()->item_list());
- bubble->GetWidget()->Close();
- base::RunLoop().RunUntilIdle();
+ CloseBubble();
+}
+
+TEST_F(ToolbarActionsBarBubbleViewsTest,
+ TestBubbleLayoutActionDismissAndLearnMoreButton) {
+ TestToolbarActionsBarBubbleDelegate delegate(HeadingString(), BodyString(),
+ ActionString());
+ delegate.set_dismiss_button_text(DismissString());
+ delegate.set_learn_more_button_text(LearnMoreString());
+ ShowBubble(&delegate);
+
+ EXPECT_TRUE(bubble()->heading_label());
+ EXPECT_EQ(HeadingString(), bubble()->heading_label()->text());
+ EXPECT_TRUE(bubble()->content_label());
+ EXPECT_EQ(BodyString(), bubble()->content_label()->text());
+ EXPECT_TRUE(bubble()->action_button());
+ EXPECT_EQ(ActionString(), bubble()->action_button()->GetText());
+ EXPECT_TRUE(bubble()->dismiss_button());
+ EXPECT_EQ(DismissString(), bubble()->dismiss_button()->GetText());
+ EXPECT_TRUE(bubble()->learn_more_button());
+ EXPECT_EQ(LearnMoreString(), bubble()->learn_more_button()->text());
+ EXPECT_FALSE(bubble()->item_list());
+
+ CloseBubble();
+}
+
+TEST_F(ToolbarActionsBarBubbleViewsTest, TestBubbleLayoutListView) {
+ TestToolbarActionsBarBubbleDelegate delegate(HeadingString(), BodyString(),
+ ActionString());
+ delegate.set_item_list_text(ItemListString());
+ ShowBubble(&delegate);
+
+ EXPECT_TRUE(bubble()->heading_label());
+ EXPECT_EQ(HeadingString(), bubble()->heading_label()->text());
+ EXPECT_TRUE(bubble()->content_label());
+ EXPECT_EQ(BodyString(), bubble()->content_label()->text());
+ EXPECT_TRUE(bubble()->action_button());
+ EXPECT_EQ(ActionString(), bubble()->action_button()->GetText());
+ EXPECT_FALSE(bubble()->dismiss_button());
+ EXPECT_FALSE(bubble()->learn_more_button());
+ EXPECT_TRUE(bubble()->item_list());
+ EXPECT_EQ(ItemListString(), bubble()->item_list()->text());
+
+ CloseBubble();
}
TEST_F(ToolbarActionsBarBubbleViewsTest, TestShowAndCloseBubble) {
@@ -113,45 +203,61 @@ TEST_F(ToolbarActionsBarBubbleViewsTest, TestShowAndCloseBubble) {
}
TEST_F(ToolbarActionsBarBubbleViewsTest, TestClickActionButton) {
- std::unique_ptr<views::Widget> anchor_widget = CreateAnchorWidget();
TestToolbarActionsBarBubbleDelegate delegate(HeadingString(), BodyString(),
ActionString());
delegate.set_dismiss_button_text(DismissString());
- ToolbarActionsBarBubbleViews* bubble = new ToolbarActionsBarBubbleViews(
- anchor_widget->GetContentsView(), delegate.GetDelegate());
- views::Widget* bubble_widget =
- views::BubbleDelegateView::CreateBubble(bubble);
- views::test::TestWidgetObserver bubble_observer(bubble_widget);
- bubble->Show();
+ delegate.set_learn_more_button_text(LearnMoreString());
+ ShowBubble(&delegate);
+ views::test::TestWidgetObserver bubble_observer(bubble_widget());
EXPECT_FALSE(delegate.close_action());
- ui::test::EventGenerator generator(GetContext(),
- anchor_widget->GetNativeWindow());
- generator.MoveMouseTo(GetCenterInScreenCoordinates(bubble->action_button()));
- generator.ClickLeftButton();
- base::RunLoop().RunUntilIdle();
+ ClickView(bubble()->action_button());
ASSERT_TRUE(delegate.close_action());
EXPECT_EQ(ToolbarActionsBarBubbleDelegate::CLOSE_EXECUTE,
*delegate.close_action());
EXPECT_TRUE(bubble_observer.widget_closed());
}
-TEST_F(ToolbarActionsBarBubbleViewsTest, TestCloseOnDeactivation) {
- std::unique_ptr<views::Widget> anchor_widget = CreateAnchorWidget();
+TEST_F(ToolbarActionsBarBubbleViewsTest, TestClickDismissButton) {
TestToolbarActionsBarBubbleDelegate delegate(HeadingString(), BodyString(),
ActionString());
delegate.set_dismiss_button_text(DismissString());
- ToolbarActionsBarBubbleViews* bubble = new ToolbarActionsBarBubbleViews(
- anchor_widget->GetContentsView(), delegate.GetDelegate());
- views::Widget* bubble_widget =
- views::BubbleDelegateView::CreateBubble(bubble);
- views::test::TestWidgetObserver bubble_observer(bubble_widget);
- bubble->Show();
+ delegate.set_learn_more_button_text(LearnMoreString());
+ ShowBubble(&delegate);
+ views::test::TestWidgetObserver bubble_observer(bubble_widget());
+
+ EXPECT_FALSE(delegate.close_action());
+ ClickView(bubble()->dismiss_button());
+ ASSERT_TRUE(delegate.close_action());
+ EXPECT_EQ(ToolbarActionsBarBubbleDelegate::CLOSE_DISMISS_USER_ACTION,
+ *delegate.close_action());
+}
+
+TEST_F(ToolbarActionsBarBubbleViewsTest, TestClickLearnMoreLink) {
+ TestToolbarActionsBarBubbleDelegate delegate(HeadingString(), BodyString(),
+ ActionString());
+ delegate.set_dismiss_button_text(DismissString());
+ delegate.set_learn_more_button_text(LearnMoreString());
+ ShowBubble(&delegate);
+ views::test::TestWidgetObserver bubble_observer(bubble_widget());
+
+ EXPECT_FALSE(delegate.close_action());
+ ClickView(bubble()->learn_more_button());
+ ASSERT_TRUE(delegate.close_action());
+ EXPECT_EQ(ToolbarActionsBarBubbleDelegate::CLOSE_LEARN_MORE,
+ *delegate.close_action());
+}
+
+TEST_F(ToolbarActionsBarBubbleViewsTest, TestCloseOnDeactivation) {
+ TestToolbarActionsBarBubbleDelegate delegate(HeadingString(), BodyString(),
+ ActionString());
+ ShowBubble(&delegate);
+ views::test::TestWidgetObserver bubble_observer(bubble_widget());
EXPECT_FALSE(delegate.close_action());
// Close the bubble by activating another widget. The delegate should be
// told it was dismissed.
- anchor_widget->Activate();
+ anchor_widget()->Activate();
base::RunLoop().RunUntilIdle();
ASSERT_TRUE(delegate.close_action());
EXPECT_EQ(ToolbarActionsBarBubbleDelegate::CLOSE_DISMISS_DEACTIVATION,
@@ -160,23 +266,16 @@ TEST_F(ToolbarActionsBarBubbleViewsTest, TestCloseOnDeactivation) {
}
TEST_F(ToolbarActionsBarBubbleViewsTest, TestDontCloseOnDeactivation) {
- scoped_ptr<views::Widget> anchor_widget = CreateAnchorWidget();
TestToolbarActionsBarBubbleDelegate delegate(HeadingString(), BodyString(),
ActionString());
- delegate.set_dismiss_button_text(DismissString());
delegate.set_close_on_deactivate(false);
- ToolbarActionsBarBubbleViews* bubble = new ToolbarActionsBarBubbleViews(
- anchor_widget->GetContentsView(), delegate.GetDelegate());
- views::Widget* bubble_widget =
- views::BubbleDelegateView::CreateBubble(bubble);
- views::test::TestWidgetObserver bubble_observer(bubble_widget);
- bubble->Show();
+ ShowBubble(&delegate);
+ views::test::TestWidgetObserver bubble_observer(bubble_widget());
EXPECT_FALSE(delegate.close_action());
// Activate another widget. The bubble shouldn't close.
- anchor_widget->Activate();
+ anchor_widget()->Activate();
base::RunLoop().RunUntilIdle();
EXPECT_FALSE(delegate.close_action());
- bubble_widget->Close();
- base::RunLoop().RunUntilIdle();
+ CloseBubble();
}
« no previous file with comments | « chrome/browser/ui/views/toolbar/toolbar_actions_bar_bubble_views.cc ('k') | chrome/chrome_browser_ui.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698