Chromium Code Reviews| Index: ui/views/bubble/bubble_dialog_delegate_unittest.cc |
| diff --git a/ui/views/bubble/bubble_dialog_delegate_unittest.cc b/ui/views/bubble/bubble_dialog_delegate_unittest.cc |
| index 6524d04dcbd87902c7e278e1b9283b64895094f5..020456f2222c55175121a8b9b364a46a83168300 100644 |
| --- a/ui/views/bubble/bubble_dialog_delegate_unittest.cc |
| +++ b/ui/views/bubble/bubble_dialog_delegate_unittest.cc |
| @@ -8,10 +8,12 @@ |
| #include "base/i18n/rtl.h" |
| #include "base/macros.h" |
| +#include "base/strings/utf_string_conversions.h" |
| #include "ui/base/hit_test.h" |
| #include "ui/events/event_utils.h" |
| #include "ui/views/bubble/bubble_frame_view.h" |
| #include "ui/views/controls/button/label_button.h" |
| +#include "ui/views/test/test_views.h" |
| #include "ui/views/test/test_widget_observer.h" |
| #include "ui/views/test/views_test_base.h" |
| #include "ui/views/widget/widget.h" |
| @@ -25,7 +27,8 @@ class TestBubbleDialogDelegateView : public BubbleDialogDelegateView { |
| public: |
| TestBubbleDialogDelegateView(View* anchor_view) |
| : BubbleDialogDelegateView(anchor_view, BubbleBorder::TOP_LEFT), |
| - view_(new View()) { |
| + view_(new View()), |
| + title_view_(nullptr) { |
| view_->SetFocusBehavior(FocusBehavior::ALWAYS); |
| AddChildView(view_); |
| } |
| @@ -37,11 +40,24 @@ class TestBubbleDialogDelegateView : public BubbleDialogDelegateView { |
| return gfx::Size(200, 200); |
| } |
| + base::string16 GetWindowTitle() const override { |
| + return base::ASCIIToUTF16("TITLE TITLE TITLE"); |
| + } |
| + |
| + View* CreateTitleView(base::string16 title_text) override { |
| + EXPECT_EQ(title_text, GetWindowTitle()); |
| + return title_view_; |
| + } |
| + |
| + void set_title_view(View* title_view) { title_view_ = title_view; } |
| + View* title_view() { return title_view_; } |
| + |
| using BubbleDialogDelegateView::SetAnchorRect; |
| using BubbleDialogDelegateView::GetBubbleFrameView; |
| private: |
| View* view_; |
| + View* title_view_; |
| DISALLOW_COPY_AND_ASSIGN(TestBubbleDialogDelegateView); |
| }; |
| @@ -251,7 +267,7 @@ TEST_F(BubbleDialogDelegateTest, NonClientHitTest) { |
| const int point; |
| const int hit; |
| } cases[] = { |
| - {border, HTNOWHERE}, {border + 50, HTCLIENT}, {1000, HTNOWHERE}, |
| + {border, HTNOWHERE}, {border + 60, HTCLIENT}, {1000, HTNOWHERE}, |
| }; |
| for (size_t i = 0; i < arraysize(cases); ++i) { |
| @@ -333,4 +349,19 @@ TEST_F(BubbleDialogDelegateTest, CloseMethods) { |
| } |
| } |
| +TEST_F(BubbleDialogDelegateTest, CustomTitle) { |
| + std::unique_ptr<Widget> anchor_widget(CreateTestWidget()); |
| + TestBubbleDialogDelegateView* bubble_delegate = |
| + new TestBubbleDialogDelegateView(anchor_widget->GetContentsView()); |
| + constexpr int title_preferred_height = 20; |
|
Peter Kasting
2017/06/17 01:16:20
Nit: Use kNamingStyle
Bret
2017/06/21 22:37:54
Done.
|
| + View* title_view = new StaticSizedView(gfx::Size(10, title_preferred_height)); |
| + bubble_delegate->set_title_view(title_view); |
| + Widget* bubble_widget = |
| + BubbleDialogDelegateView::CreateBubble(bubble_delegate); |
| + bubble_widget->Show(); |
| + // Title takes up the whole bubble width when there's no icon or close button. |
|
Peter Kasting
2017/06/17 01:16:20
Nit: Maybe this means the below statement should b
Bret
2017/06/21 22:37:54
I split this into two EXPECTs for the width and he
|
| + EXPECT_EQ(gfx::Size(bubble_delegate->width(), title_preferred_height), |
| + title_view->size()); |
| +} |
| + |
| } // namespace views |