| Index: ui/views/bubble/bubble_dialog_delegate_unittest.cc
|
| diff --git a/ui/views/bubble/bubble_delegate_unittest.cc b/ui/views/bubble/bubble_dialog_delegate_unittest.cc
|
| similarity index 65%
|
| copy from ui/views/bubble/bubble_delegate_unittest.cc
|
| copy to ui/views/bubble/bubble_dialog_delegate_unittest.cc
|
| index f7656f061511f617a6db4a26f9840ebefc6ee956..6c43388c9444573a328a3ef49e7f0cd77db84762 100644
|
| --- a/ui/views/bubble/bubble_delegate_unittest.cc
|
| +++ b/ui/views/bubble/bubble_dialog_delegate_unittest.cc
|
| @@ -1,13 +1,14 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| +// Copyright 2016 The Chromium Authors. All rights reserved.
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| +#include "ui/views/bubble/bubble_dialog_delegate.h"
|
| +
|
| #include <stddef.h>
|
|
|
| #include "base/macros.h"
|
| #include "ui/base/hit_test.h"
|
| #include "ui/events/event_utils.h"
|
| -#include "ui/views/bubble/bubble_delegate.h"
|
| #include "ui/views/bubble/bubble_frame_view.h"
|
| #include "ui/views/controls/button/label_button.h"
|
| #include "ui/views/test/test_widget_observer.h"
|
| @@ -19,42 +20,33 @@ namespace views {
|
|
|
| namespace {
|
|
|
| -class TestBubbleDelegateView : public BubbleDelegateView {
|
| +class TestBubbleDialogDelegateView : public BubbleDialogDelegateView {
|
| public:
|
| - TestBubbleDelegateView(View* anchor_view)
|
| - : BubbleDelegateView(anchor_view, BubbleBorder::TOP_LEFT),
|
| + TestBubbleDialogDelegateView(View* anchor_view)
|
| + : BubbleDialogDelegateView(anchor_view, BubbleBorder::TOP_LEFT),
|
| view_(new View()) {
|
| view_->SetFocusable(true);
|
| AddChildView(view_);
|
| }
|
| - ~TestBubbleDelegateView() override {}
|
| -
|
| - void SetAnchorRectForTest(gfx::Rect rect) {
|
| - SetAnchorRect(rect);
|
| - }
|
| -
|
| - void SetAnchorViewForTest(View* view) {
|
| - SetAnchorView(view);
|
| - }
|
| + ~TestBubbleDialogDelegateView() override {}
|
|
|
| - // BubbleDelegateView overrides:
|
| + // BubbleDialogDelegateView overrides:
|
| View* GetInitiallyFocusedView() override { return view_; }
|
| gfx::Size GetPreferredSize() const override { return gfx::Size(200, 200); }
|
|
|
| - BubbleFrameView* GetBubbleFrameViewForTest() const {
|
| - return GetBubbleFrameView();
|
| - }
|
| + using BubbleDialogDelegateView::SetAnchorRect;
|
| + using BubbleDialogDelegateView::GetBubbleFrameView;
|
|
|
| private:
|
| View* view_;
|
|
|
| - DISALLOW_COPY_AND_ASSIGN(TestBubbleDelegateView);
|
| + DISALLOW_COPY_AND_ASSIGN(TestBubbleDialogDelegateView);
|
| };
|
|
|
| -class BubbleDelegateTest : public ViewsTestBase {
|
| +class BubbleDialogDelegateTest : public ViewsTestBase {
|
| public:
|
| - BubbleDelegateTest() {}
|
| - ~BubbleDelegateTest() override {}
|
| + BubbleDialogDelegateTest() {}
|
| + ~BubbleDialogDelegateTest() override {}
|
|
|
| // Creates a test widget that owns its native widget.
|
| Widget* CreateTestWidget() {
|
| @@ -66,17 +58,18 @@ class BubbleDelegateTest : public ViewsTestBase {
|
| }
|
|
|
| private:
|
| - DISALLOW_COPY_AND_ASSIGN(BubbleDelegateTest);
|
| + DISALLOW_COPY_AND_ASSIGN(BubbleDialogDelegateTest);
|
| };
|
|
|
| } // namespace
|
|
|
| -TEST_F(BubbleDelegateTest, CreateDelegate) {
|
| +TEST_F(BubbleDialogDelegateTest, CreateDelegate) {
|
| scoped_ptr<Widget> anchor_widget(CreateTestWidget());
|
| - BubbleDelegateView* bubble_delegate = new BubbleDelegateView(
|
| - anchor_widget->GetContentsView(), BubbleBorder::NONE);
|
| + TestBubbleDialogDelegateView* bubble_delegate =
|
| + new TestBubbleDialogDelegateView(anchor_widget->GetContentsView());
|
| bubble_delegate->set_color(SK_ColorGREEN);
|
| - Widget* bubble_widget = BubbleDelegateView::CreateBubble(bubble_delegate);
|
| + Widget* bubble_widget =
|
| + BubbleDialogDelegateView::CreateBubble(bubble_delegate);
|
| EXPECT_EQ(bubble_delegate, bubble_widget->widget_delegate());
|
| EXPECT_EQ(bubble_widget, bubble_delegate->GetWidget());
|
| test::TestWidgetObserver bubble_observer(bubble_widget);
|
| @@ -91,13 +84,14 @@ TEST_F(BubbleDelegateTest, CreateDelegate) {
|
| EXPECT_TRUE(bubble_observer.widget_closed());
|
| }
|
|
|
| -TEST_F(BubbleDelegateTest, CloseAnchorWidget) {
|
| +TEST_F(BubbleDialogDelegateTest, CloseAnchorWidget) {
|
| scoped_ptr<Widget> anchor_widget(CreateTestWidget());
|
| - BubbleDelegateView* bubble_delegate = new BubbleDelegateView(
|
| - anchor_widget->GetContentsView(), BubbleBorder::NONE);
|
| + BubbleDialogDelegateView* bubble_delegate =
|
| + new TestBubbleDialogDelegateView(anchor_widget->GetContentsView());
|
| // Preventing close on deactivate should not prevent closing with the anchor.
|
| bubble_delegate->set_close_on_deactivate(false);
|
| - Widget* bubble_widget = BubbleDelegateView::CreateBubble(bubble_delegate);
|
| + Widget* bubble_widget =
|
| + BubbleDialogDelegateView::CreateBubble(bubble_delegate);
|
| EXPECT_EQ(bubble_delegate, bubble_widget->widget_delegate());
|
| EXPECT_EQ(bubble_widget, bubble_delegate->GetWidget());
|
| EXPECT_EQ(anchor_widget.get(), bubble_delegate->anchor_widget());
|
| @@ -121,23 +115,24 @@ TEST_F(BubbleDelegateTest, CloseAnchorWidget) {
|
| // This test checks that the bubble delegate is capable to handle an early
|
| // destruction of the used anchor view. (Animations and delayed closure of the
|
| // bubble will call upon the anchor view to get its location).
|
| -TEST_F(BubbleDelegateTest, CloseAnchorViewTest) {
|
| +TEST_F(BubbleDialogDelegateTest, CloseAnchorViewTest) {
|
| // Create an anchor widget and add a view to be used as an anchor view.
|
| scoped_ptr<Widget> anchor_widget(CreateTestWidget());
|
| scoped_ptr<View> anchor_view(new View());
|
| anchor_widget->GetContentsView()->AddChildView(anchor_view.get());
|
| - TestBubbleDelegateView* bubble_delegate = new TestBubbleDelegateView(
|
| - anchor_view.get());
|
| + TestBubbleDialogDelegateView* bubble_delegate =
|
| + new TestBubbleDialogDelegateView(anchor_view.get());
|
| // Prevent flakes by avoiding closing on activation changes.
|
| bubble_delegate->set_close_on_deactivate(false);
|
| - Widget* bubble_widget = BubbleDelegateView::CreateBubble(bubble_delegate);
|
| + Widget* bubble_widget =
|
| + BubbleDialogDelegateView::CreateBubble(bubble_delegate);
|
|
|
| // Check that the anchor view is correct and set up an anchor view rect.
|
| // Make sure that this rect will get ignored (as long as the anchor view is
|
| // attached).
|
| EXPECT_EQ(anchor_view.get(), bubble_delegate->GetAnchorView());
|
| const gfx::Rect set_anchor_rect = gfx::Rect(10, 10, 100, 100);
|
| - bubble_delegate->SetAnchorRectForTest(set_anchor_rect);
|
| + bubble_delegate->SetAnchorRect(set_anchor_rect);
|
| const gfx::Rect view_rect = bubble_delegate->GetAnchorRect();
|
| EXPECT_NE(view_rect.ToString(), set_anchor_rect.ToString());
|
|
|
| @@ -154,12 +149,12 @@ TEST_F(BubbleDelegateTest, CloseAnchorViewTest) {
|
| }
|
|
|
| // Testing that a move of the anchor view will lead to new bubble locations.
|
| -TEST_F(BubbleDelegateTest, TestAnchorRectMovesWithViewTest) {
|
| +TEST_F(BubbleDialogDelegateTest, TestAnchorRectMovesWithViewTest) {
|
| // Create an anchor widget and add a view to be used as anchor view.
|
| scoped_ptr<Widget> anchor_widget(CreateTestWidget());
|
| - TestBubbleDelegateView* bubble_delegate = new TestBubbleDelegateView(
|
| - anchor_widget->GetContentsView());
|
| - BubbleDelegateView::CreateBubble(bubble_delegate);
|
| + TestBubbleDialogDelegateView* bubble_delegate =
|
| + new TestBubbleDialogDelegateView(anchor_widget->GetContentsView());
|
| + BubbleDialogDelegateView::CreateBubble(bubble_delegate);
|
|
|
| anchor_widget->GetContentsView()->SetBounds(10, 10, 100, 100);
|
| const gfx::Rect view_rect = bubble_delegate->GetAnchorRect();
|
| @@ -169,10 +164,10 @@ TEST_F(BubbleDelegateTest, TestAnchorRectMovesWithViewTest) {
|
| EXPECT_NE(view_rect.ToString(), view_rect_2.ToString());
|
| }
|
|
|
| -TEST_F(BubbleDelegateTest, ResetAnchorWidget) {
|
| +TEST_F(BubbleDialogDelegateTest, ResetAnchorWidget) {
|
| scoped_ptr<Widget> anchor_widget(CreateTestWidget());
|
| - BubbleDelegateView* bubble_delegate = new BubbleDelegateView(
|
| - anchor_widget->GetContentsView(), BubbleBorder::NONE);
|
| + BubbleDialogDelegateView* bubble_delegate =
|
| + new TestBubbleDialogDelegateView(anchor_widget->GetContentsView());
|
|
|
| // Make sure the bubble widget is parented to a widget other than the anchor
|
| // widget so that closing the anchor widget does not close the bubble widget.
|
| @@ -180,7 +175,8 @@ TEST_F(BubbleDelegateTest, ResetAnchorWidget) {
|
| bubble_delegate->set_parent_window(parent_widget->GetNativeView());
|
| // Preventing close on deactivate should not prevent closing with the parent.
|
| bubble_delegate->set_close_on_deactivate(false);
|
| - Widget* bubble_widget = BubbleDelegateView::CreateBubble(bubble_delegate);
|
| + Widget* bubble_widget =
|
| + BubbleDialogDelegateView::CreateBubble(bubble_delegate);
|
| EXPECT_EQ(bubble_delegate, bubble_widget->widget_delegate());
|
| EXPECT_EQ(bubble_widget, bubble_delegate->GetWidget());
|
| EXPECT_EQ(anchor_widget.get(), bubble_delegate->anchor_widget());
|
| @@ -209,21 +205,23 @@ TEST_F(BubbleDelegateTest, ResetAnchorWidget) {
|
| EXPECT_TRUE(bubble_observer.widget_closed());
|
| }
|
|
|
| -TEST_F(BubbleDelegateTest, InitiallyFocusedView) {
|
| +TEST_F(BubbleDialogDelegateTest, InitiallyFocusedView) {
|
| scoped_ptr<Widget> anchor_widget(CreateTestWidget());
|
| - BubbleDelegateView* bubble_delegate = new BubbleDelegateView(
|
| - anchor_widget->GetContentsView(), BubbleBorder::NONE);
|
| - Widget* bubble_widget = BubbleDelegateView::CreateBubble(bubble_delegate);
|
| + BubbleDialogDelegateView* bubble_delegate =
|
| + new TestBubbleDialogDelegateView(anchor_widget->GetContentsView());
|
| + Widget* bubble_widget =
|
| + BubbleDialogDelegateView::CreateBubble(bubble_delegate);
|
| + bubble_widget->Show();
|
| EXPECT_EQ(bubble_delegate->GetInitiallyFocusedView(),
|
| bubble_widget->GetFocusManager()->GetFocusedView());
|
| bubble_widget->CloseNow();
|
| }
|
|
|
| -TEST_F(BubbleDelegateTest, NonClientHitTest) {
|
| +TEST_F(BubbleDialogDelegateTest, NonClientHitTest) {
|
| scoped_ptr<Widget> anchor_widget(CreateTestWidget());
|
| - TestBubbleDelegateView* bubble_delegate =
|
| - new TestBubbleDelegateView(anchor_widget->GetContentsView());
|
| - BubbleDelegateView::CreateBubble(bubble_delegate);
|
| + TestBubbleDialogDelegateView* bubble_delegate =
|
| + new TestBubbleDialogDelegateView(anchor_widget->GetContentsView());
|
| + BubbleDialogDelegateView::CreateBubble(bubble_delegate);
|
| BubbleFrameView* frame = bubble_delegate->GetBubbleFrameView();
|
| const int border = frame->bubble_border()->GetBorderThickness();
|
|
|
| @@ -231,9 +229,7 @@ TEST_F(BubbleDelegateTest, NonClientHitTest) {
|
| const int point;
|
| const int hit;
|
| } cases[] = {
|
| - { border, HTNOWHERE },
|
| - { border + 50, HTCLIENT },
|
| - { 1000, HTNOWHERE },
|
| + {border, HTNOWHERE}, {border + 50, HTCLIENT}, {1000, HTNOWHERE},
|
| };
|
|
|
| for (size_t i = 0; i < arraysize(cases); ++i) {
|
| @@ -243,11 +239,12 @@ TEST_F(BubbleDelegateTest, NonClientHitTest) {
|
| }
|
| }
|
|
|
| -TEST_F(BubbleDelegateTest, VisibleWhenAnchorWidgetBoundsChanged) {
|
| +TEST_F(BubbleDialogDelegateTest, VisibleWhenAnchorWidgetBoundsChanged) {
|
| scoped_ptr<Widget> anchor_widget(CreateTestWidget());
|
| - BubbleDelegateView* bubble_delegate = new BubbleDelegateView(
|
| - anchor_widget->GetContentsView(), BubbleBorder::NONE);
|
| - Widget* bubble_widget = BubbleDelegateView::CreateBubble(bubble_delegate);
|
| + BubbleDialogDelegateView* bubble_delegate =
|
| + new TestBubbleDialogDelegateView(anchor_widget->GetContentsView());
|
| + Widget* bubble_widget =
|
| + BubbleDialogDelegateView::CreateBubble(bubble_delegate);
|
| test::TestWidgetObserver bubble_observer(bubble_widget);
|
| EXPECT_FALSE(bubble_observer.widget_closed());
|
|
|
| @@ -259,64 +256,60 @@ TEST_F(BubbleDelegateTest, VisibleWhenAnchorWidgetBoundsChanged) {
|
| }
|
|
|
| // Test that setting WidgetDelegate::set_can_activate() to false makes the
|
| -// widget created via BubbleDelegateView::CreateBubble() not activatable.
|
| -TEST_F(BubbleDelegateTest, NotActivatable) {
|
| +// widget created via BubbleDialogDelegateView::CreateBubble() not activatable.
|
| +TEST_F(BubbleDialogDelegateTest, NotActivatable) {
|
| scoped_ptr<Widget> anchor_widget(CreateTestWidget());
|
| - BubbleDelegateView* bubble_delegate = new BubbleDelegateView(
|
| - anchor_widget->GetContentsView(), BubbleBorder::NONE);
|
| + BubbleDialogDelegateView* bubble_delegate =
|
| + new TestBubbleDialogDelegateView(anchor_widget->GetContentsView());
|
| bubble_delegate->set_can_activate(false);
|
| - Widget* bubble_widget = BubbleDelegateView::CreateBubble(bubble_delegate);
|
| + Widget* bubble_widget =
|
| + BubbleDialogDelegateView::CreateBubble(bubble_delegate);
|
| bubble_widget->Show();
|
| EXPECT_FALSE(bubble_widget->CanActivate());
|
| }
|
|
|
| -TEST_F(BubbleDelegateTest, CloseReasons) {
|
| +TEST_F(BubbleDialogDelegateTest, CloseMethods) {
|
| {
|
| scoped_ptr<Widget> anchor_widget(CreateTestWidget());
|
| - BubbleDelegateView* bubble_delegate = new BubbleDelegateView(
|
| - anchor_widget->GetContentsView(), BubbleBorder::NONE);
|
| + BubbleDialogDelegateView* bubble_delegate =
|
| + new TestBubbleDialogDelegateView(anchor_widget->GetContentsView());
|
| bubble_delegate->set_close_on_deactivate(true);
|
| - Widget* bubble_widget = BubbleDelegateView::CreateBubble(bubble_delegate);
|
| + Widget* bubble_widget =
|
| + BubbleDialogDelegateView::CreateBubble(bubble_delegate);
|
| anchor_widget->Show();
|
| bubble_widget->Show();
|
| anchor_widget->Activate();
|
| EXPECT_TRUE(bubble_widget->IsClosed());
|
| - EXPECT_EQ(BubbleDelegateView::CloseReason::DEACTIVATION,
|
| - bubble_delegate->close_reason());
|
| }
|
|
|
| {
|
| scoped_ptr<Widget> anchor_widget(CreateTestWidget());
|
| - BubbleDelegateView* bubble_delegate = new BubbleDelegateView(
|
| - anchor_widget->GetContentsView(), BubbleBorder::NONE);
|
| - bubble_delegate->set_close_on_esc(true);
|
| - Widget* bubble_widget = BubbleDelegateView::CreateBubble(bubble_delegate);
|
| + BubbleDialogDelegateView* bubble_delegate =
|
| + new TestBubbleDialogDelegateView(anchor_widget->GetContentsView());
|
| + Widget* bubble_widget =
|
| + BubbleDialogDelegateView::CreateBubble(bubble_delegate);
|
| bubble_widget->Show();
|
| - // Cast as a test hack to access AcceleratorPressed() (which is protected
|
| - // in BubbleDelegate).
|
| - static_cast<View*>(bubble_delegate)
|
| - ->AcceleratorPressed(ui::Accelerator(ui::VKEY_ESCAPE, ui::EF_NONE));
|
| +
|
| + ui::KeyEvent escape_event(ui::ET_KEY_PRESSED, ui::VKEY_ESCAPE, ui::EF_NONE);
|
| + bubble_widget->OnKeyEvent(&escape_event);
|
| EXPECT_TRUE(bubble_widget->IsClosed());
|
| - EXPECT_EQ(BubbleDelegateView::CloseReason::ESCAPE,
|
| - bubble_delegate->close_reason());
|
| }
|
|
|
| {
|
| scoped_ptr<Widget> anchor_widget(CreateTestWidget());
|
| - TestBubbleDelegateView* bubble_delegate =
|
| - new TestBubbleDelegateView(anchor_widget->GetContentsView());
|
| - Widget* bubble_widget = BubbleDelegateView::CreateBubble(bubble_delegate);
|
| + TestBubbleDialogDelegateView* bubble_delegate =
|
| + new TestBubbleDialogDelegateView(anchor_widget->GetContentsView());
|
| + Widget* bubble_widget =
|
| + BubbleDialogDelegateView::CreateBubble(bubble_delegate);
|
| bubble_widget->Show();
|
| - BubbleFrameView* frame_view = bubble_delegate->GetBubbleFrameViewForTest();
|
| + BubbleFrameView* frame_view = bubble_delegate->GetBubbleFrameView();
|
| LabelButton* close_button = frame_view->close_;
|
| ASSERT_TRUE(close_button);
|
| frame_view->ButtonPressed(
|
| close_button,
|
| - ui::MouseEvent(ui::ET_MOUSE_PRESSED, gfx::Point(0, 0), gfx::Point(0, 0),
|
| + ui::MouseEvent(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(),
|
| ui::EventTimeForNow(), ui::EF_NONE, ui::EF_NONE));
|
| EXPECT_TRUE(bubble_widget->IsClosed());
|
| - EXPECT_EQ(BubbleDelegateView::CloseReason::CLOSE_BUTTON,
|
| - bubble_delegate->close_reason());
|
| }
|
| }
|
|
|
|
|