Chromium Code Reviews| 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 d5d1f6cbcb1c9d8f41441d5ba5764e3c12df8406..8797ebe5ea393bce00cd2cdffaf34875c2ae0d79 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 |
| @@ -9,8 +9,18 @@ |
| #include "base/run_loop.h" |
| #include "base/strings/utf_string_conversions.h" |
| #include "chrome/browser/ui/toolbar/test_toolbar_actions_bar_bubble_delegate.h" |
| +#include "chrome/browser/ui/toolbar/toolbar_actions_bar_bubble_delegate.h" |
| +#include "chrome/grit/generated_resources.h" |
| +#include "components/grit/components_scaled_resources.h" |
| +#include "ui/base/l10n/l10n_util.h" |
| +#include "ui/base/resource/resource_bundle.h" |
| #include "ui/events/event_utils.h" |
| #include "ui/events/test/event_generator.h" |
| +#include "ui/gfx/color_palette.h" |
| +#include "ui/gfx/image/image.h" |
| +#include "ui/gfx/image/image_unittest_util.h" |
| +#include "ui/gfx/paint_vector_icon.h" |
| +#include "ui/gfx/vector_icons_public.h" |
| #include "ui/views/controls/button/label_button.h" |
| #include "ui/views/controls/link.h" |
| #include "ui/views/test/test_widget_observer.h" |
| @@ -19,6 +29,12 @@ |
| #include "ui/views/window/dialog_client_view.h" |
| class ToolbarActionsBarBubbleViewsTest : public views::ViewsTestBase { |
| + public: |
| + views::View* TestCreateExtraView() { |
| + DCHECK(bubble_); |
| + return bubble_->CreateExtraView(); |
| + } |
| + |
| protected: |
| ToolbarActionsBarBubbleViewsTest() {} |
| ~ToolbarActionsBarBubbleViewsTest() override {} |
| @@ -99,12 +115,28 @@ TEST_F(ToolbarActionsBarBubbleViewsTest, TestBubbleLayoutActionButton) { |
| CloseBubble(); |
| } |
| +TEST_F(ToolbarActionsBarBubbleViewsTest, TestBubbleLayoutNoButtons) { |
| + TestToolbarActionsBarBubbleDelegate delegate(HeadingString(), BodyString(), |
| + ActionString()); |
| + ToolbarActionsBarBubbleDelegate::ExtraViewInfo extra_view_info; |
| + delegate.set_extra_view_info(extra_view_info); |
| + delegate.set_dismiss_button_text(base::string16()); |
| + delegate.set_action_button_text(base::string16()); |
| + ShowBubble(&delegate); |
| + |
| + std::unique_ptr<views::View> extra_view(TestCreateExtraView()); |
| + EXPECT_FALSE(bubble()->GetDialogClientView()->ok_button()); |
| + EXPECT_FALSE(bubble()->GetDialogClientView()->cancel_button()); |
| + EXPECT_FALSE(bubble()->learn_more_button()); |
| + |
| + CloseBubble(); |
| +} |
| + |
| TEST_F(ToolbarActionsBarBubbleViewsTest, |
| TestBubbleLayoutActionAndDismissButton) { |
| TestToolbarActionsBarBubbleDelegate delegate(HeadingString(), BodyString(), |
| ActionString()); |
| delegate.set_dismiss_button_text(DismissString()); |
| - |
| ShowBubble(&delegate); |
| EXPECT_TRUE(bubble()->GetDialogClientView()->ok_button()); |
| @@ -125,7 +157,13 @@ TEST_F(ToolbarActionsBarBubbleViewsTest, |
| TestToolbarActionsBarBubbleDelegate delegate(HeadingString(), BodyString(), |
| ActionString()); |
| delegate.set_dismiss_button_text(DismissString()); |
| - delegate.set_learn_more_button_text(LearnMoreString()); |
| + |
| + ToolbarActionsBarBubbleDelegate::ExtraViewInfo extra_view_info_linked_text; |
| + |
| + extra_view_info_linked_text.text = LearnMoreString(); |
| + extra_view_info_linked_text.is_text_linked = true; |
| + delegate.set_extra_view_info(extra_view_info_linked_text); |
| + |
| ShowBubble(&delegate); |
| EXPECT_TRUE(bubble()->GetDialogClientView()->ok_button()); |
| @@ -260,3 +298,96 @@ TEST_F(ToolbarActionsBarBubbleViewsTest, TestDontCloseOnDeactivation) { |
| EXPECT_FALSE(delegate.close_action()); |
| CloseBubble(); |
| } |
| + |
| +TEST_F(ToolbarActionsBarBubbleViewsTest, TestCreateExtraViewIconOnly) { |
| + TestToolbarActionsBarBubbleDelegate delegate(HeadingString(), BodyString(), |
| + ActionString()); |
| + ToolbarActionsBarBubbleDelegate::ExtraViewInfo extra_view_info; |
| + |
| + extra_view_info.resource_id = gfx::VectorIconId::BUSINESS; |
| + delegate.set_extra_view_info(extra_view_info); |
| + ShowBubble(&delegate); |
| + std::unique_ptr<views::View> extra_view(TestCreateExtraView()); |
| + EXPECT_TRUE(extra_view); |
|
Devlin
2016/11/01 00:21:22
nit: This should be an ASSERT_TRUE, since the test
|
| + ASSERT_EQ("ImageView", std::string(extra_view->GetClassName())); |
| + EXPECT_TRUE(gfx::test::AreImagesEqual( |
| + gfx::Image(static_cast<views::ImageView*>(extra_view.get())->GetImage()), |
| + gfx::Image(gfx::CreateVectorIcon(gfx::VectorIconId::BUSINESS, 16, |
| + gfx::kChromeIconGrey)))); |
| + CloseBubble(); |
| +} |
| + |
| +TEST_F(ToolbarActionsBarBubbleViewsTest, TestCreateExtraViewLinkedTextOnly) { |
| + TestToolbarActionsBarBubbleDelegate delegate(HeadingString(), BodyString(), |
| + ActionString()); |
| + ToolbarActionsBarBubbleDelegate::ExtraViewInfo extra_view_info_linked_text; |
| + |
| + extra_view_info_linked_text.text = |
| + l10n_util::GetStringUTF16(IDS_EXTENSIONS_INSTALLED_BY_ADMIN); |
| + extra_view_info_linked_text.is_text_linked = true; |
| + delegate.set_extra_view_info(extra_view_info_linked_text); |
| + |
| + ShowBubble(&delegate); |
| + |
| + std::unique_ptr<views::View> extra_view(TestCreateExtraView()); |
| + EXPECT_TRUE(extra_view); |
| + ASSERT_EQ("Link", std::string(extra_view->GetClassName())); |
| + EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSIONS_INSTALLED_BY_ADMIN), |
| + static_cast<views::Label*>(extra_view.get())->text()); |
| + CloseBubble(); |
| +} |
| + |
| +TEST_F(ToolbarActionsBarBubbleViewsTest, TestCreateExtraViewLabelTextOnly) { |
| + TestToolbarActionsBarBubbleDelegate delegate(HeadingString(), BodyString(), |
| + ActionString()); |
| + ToolbarActionsBarBubbleDelegate::ExtraViewInfo extra_view_info; |
| + |
| + extra_view_info.text = |
| + l10n_util::GetStringUTF16(IDS_EXTENSIONS_INSTALLED_BY_ADMIN); |
| + extra_view_info.is_text_linked = false; |
| + delegate.set_extra_view_info(extra_view_info); |
| + |
| + ShowBubble(&delegate); |
| + |
| + std::unique_ptr<views::View> extra_view(TestCreateExtraView()); |
| + EXPECT_TRUE(extra_view); |
| + EXPECT_EQ("Label", std::string(extra_view->GetClassName())); |
| + EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSIONS_INSTALLED_BY_ADMIN), |
| + static_cast<views::Label*>(extra_view.get())->text()); |
| + CloseBubble(); |
| +} |
| + |
| +TEST_F(ToolbarActionsBarBubbleViewsTest, TestCreateExtraViewImageAndText) { |
| + TestToolbarActionsBarBubbleDelegate delegate(HeadingString(), BodyString(), |
| + ActionString()); |
| + ToolbarActionsBarBubbleDelegate::ExtraViewInfo extra_view_info; |
| + extra_view_info.resource_id = gfx::VectorIconId::BUSINESS; |
| + extra_view_info.text = |
| + l10n_util::GetStringUTF16(IDS_EXTENSIONS_INSTALLED_BY_ADMIN); |
| + extra_view_info.is_text_linked = false; |
| + delegate.set_extra_view_info(extra_view_info); |
| + |
| + ShowBubble(&delegate); |
| + |
| + std::unique_ptr<views::View> extra_view(TestCreateExtraView()); |
| + EXPECT_TRUE(extra_view); |
| + EXPECT_EQ("View", std::string(extra_view->GetClassName())); |
| + EXPECT_EQ(2, extra_view->child_count()); |
| + |
| + for (int i = 0; i < 2; i++) { |
| + const views::View* v = extra_view->child_at(i); |
| + std::string class_name = v->GetClassName(); |
| + EXPECT_TRUE(class_name == "Label" || class_name == "ImageView"); |
| + if (class_name == "Label") { |
| + EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSIONS_INSTALLED_BY_ADMIN), |
| + static_cast<const views::Label*>(v)->text()); |
| + } else { |
| + EXPECT_TRUE(gfx::test::AreImagesEqual( |
| + gfx::Image(static_cast<const views::ImageView*>(v)->GetImage()), |
| + gfx::Image(gfx::CreateVectorIcon(gfx::VectorIconId::BUSINESS, 16, |
| + gfx::kChromeIconGrey)))); |
| + } |
| + } |
| + |
| + CloseBubble(); |
| +} |