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..6737773995e2f0a946877d483f841a86caee26d6 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,15 @@ |
| #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/image/image.h" |
| +#include "ui/gfx/image/image_unittest_util.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 +26,11 @@ |
| #include "ui/views/window/dialog_client_view.h" |
| class ToolbarActionsBarBubbleViewsTest : public views::ViewsTestBase { |
| + public: |
| + views::View* TestCreateExtraView() { |
| + return (bubble_) ? bubble_->CreateExtraView() : nullptr; |
|
Devlin
2016/10/12 20:16:54
no need for parens, but maybe just DCHECK(bubble_)
catmullings
2016/10/14 23:16:46
Added the DCHECK(bubble_). Lmk if this is sufficie
|
| + } |
| + |
| protected: |
| ToolbarActionsBarBubbleViewsTest() {} |
| ~ToolbarActionsBarBubbleViewsTest() override {} |
| @@ -99,12 +111,24 @@ TEST_F(ToolbarActionsBarBubbleViewsTest, TestBubbleLayoutActionButton) { |
| CloseBubble(); |
| } |
| +TEST_F(ToolbarActionsBarBubbleViewsTest, TestBubbleLayoutNoButtons) { |
| + TestToolbarActionsBarBubbleDelegate delegate(HeadingString(), BodyString(), |
| + ActionString()); |
| + delegate.set_dismiss_button_text(base::string16()); |
| + delegate.set_action_button_text(base::string16()); |
| + ShowBubble(&delegate); |
| + |
| + EXPECT_FALSE(bubble()->GetDialogClientView()->ok_button()); |
| + EXPECT_FALSE(bubble()->GetDialogClientView()->cancel_button()); |
|
Devlin
2016/10/12 20:16:54
EXPECT_FALSE(link), too?
catmullings
2016/10/14 23:16:46
Done.
|
| + |
| + 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 +149,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()); |
| @@ -225,7 +255,7 @@ TEST_F(ToolbarActionsBarBubbleViewsTest, TestClickLearnMoreLink) { |
| EXPECT_FALSE(delegate.close_action()); |
| ClickView(bubble()->learn_more_button()); |
| ASSERT_TRUE(delegate.close_action()); |
| - EXPECT_EQ(ToolbarActionsBarBubbleDelegate::CLOSE_LEARN_MORE, |
| + EXPECT_EQ(ToolbarActionsBarBubbleDelegate::CLOSE_LINK, |
| *delegate.close_action()); |
| } |
| @@ -260,3 +290,108 @@ TEST_F(ToolbarActionsBarBubbleViewsTest, TestDontCloseOnDeactivation) { |
| EXPECT_FALSE(delegate.close_action()); |
| CloseBubble(); |
| } |
| + |
| +TEST_F(ToolbarActionsBarBubbleViewsTest, TestCreateExtraViewEmpty) { |
|
Devlin
2016/10/12 20:16:54
This could just be lumped into the NoButtons test
catmullings
2016/10/14 23:16:46
Done.
|
| + TestToolbarActionsBarBubbleDelegate delegate(HeadingString(), BodyString(), |
| + ActionString()); |
| + ToolbarActionsBarBubbleDelegate::ExtraViewInfo extra_view_info; |
| + delegate.set_extra_view_info(extra_view_info); |
| + ShowBubble(&delegate); |
| + |
| + std::unique_ptr<views::View> extra_view(TestCreateExtraView()); |
| + EXPECT_FALSE(extra_view); |
| + CloseBubble(); |
| +} |
| + |
| +TEST_F(ToolbarActionsBarBubbleViewsTest, TestCreateExtraViewIconOnly) { |
| + TestToolbarActionsBarBubbleDelegate delegate(HeadingString(), BodyString(), |
| + ActionString()); |
| + ToolbarActionsBarBubbleDelegate::ExtraViewInfo extra_view_info; |
| + |
| + extra_view_info.resource_id = IDR_OMNIBOX_HTTPS_POLICY_WARNING; |
| + delegate.set_extra_view_info(extra_view_info); |
| + ShowBubble(&delegate); |
| + std::unique_ptr<views::View> extra_view(TestCreateExtraView()); |
| + EXPECT_TRUE(extra_view); |
| + EXPECT_EQ("ImageView", std::string(extra_view->GetClassName())); |
|
Devlin
2016/10/12 20:16:54
Overall, it might be easiest to just store the vie
catmullings
2016/10/14 23:16:46
I think I will leave this as it is.
|
| + EXPECT_TRUE(gfx::test::AreImagesEqual( |
| + gfx::Image(static_cast<views::ImageView*>(extra_view.get())->GetImage()), |
| + gfx::Image(*(ResourceBundle::GetSharedInstance().GetImageSkiaNamed( |
| + IDR_OMNIBOX_HTTPS_POLICY_WARNING))))); |
| + 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); |
| + EXPECT_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 = IDR_OMNIBOX_HTTPS_POLICY_WARNING; |
| + 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 classType = v->GetClassName(); |
| + EXPECT_TRUE(classType == "Label" || classType == "ImageView"); |
| + if (classType == "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(*(ResourceBundle::GetSharedInstance().GetImageSkiaNamed( |
| + IDR_OMNIBOX_HTTPS_POLICY_WARNING))))); |
| + } |
| + } |
| + |
| + CloseBubble(); |
| +} |