| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <stddef.h> | 5 #include <stddef.h> |
| 6 | 6 |
| 7 #include "base/macros.h" | 7 #include "base/macros.h" |
| 8 #include "ui/base/hit_test.h" | 8 #include "ui/base/hit_test.h" |
| 9 #include "ui/events/event_utils.h" | 9 #include "ui/events/event_utils.h" |
| 10 #include "ui/views/bubble/bubble_delegate.h" | 10 #include "ui/views/bubble/bubble_delegate.h" |
| 11 #include "ui/views/bubble/bubble_frame_view.h" | 11 #include "ui/views/bubble/bubble_frame_view.h" |
| 12 #include "ui/views/controls/button/label_button.h" | 12 #include "ui/views/controls/button/label_button.h" |
| 13 #include "ui/views/test/test_widget_observer.h" | 13 #include "ui/views/test/test_widget_observer.h" |
| 14 #include "ui/views/test/views_test_base.h" | 14 #include "ui/views/test/views_test_base.h" |
| 15 #include "ui/views/widget/widget.h" | 15 #include "ui/views/widget/widget.h" |
| 16 #include "ui/views/widget/widget_observer.h" | 16 #include "ui/views/widget/widget_observer.h" |
| 17 | 17 |
| 18 #if defined(OS_MACOSX) | |
| 19 #include "ui/base/test/scoped_fake_nswindow_focus.h" | |
| 20 #endif | |
| 21 | |
| 22 namespace views { | 18 namespace views { |
| 23 | 19 |
| 24 namespace { | 20 namespace { |
| 25 | 21 |
| 26 class TestBubbleDelegateView : public BubbleDelegateView { | 22 class TestBubbleDelegateView : public BubbleDelegateView { |
| 27 public: | 23 public: |
| 28 TestBubbleDelegateView(View* anchor_view) | 24 TestBubbleDelegateView(View* anchor_view) |
| 29 : BubbleDelegateView(anchor_view, BubbleBorder::TOP_LEFT), | 25 : BubbleDelegateView(anchor_view, BubbleBorder::TOP_LEFT), |
| 30 view_(new View()) { | 26 view_(new View()) { |
| 31 view_->SetFocusable(true); | 27 view_->SetFocusable(true); |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 63 // Creates a test widget that owns its native widget. | 59 // Creates a test widget that owns its native widget. |
| 64 Widget* CreateTestWidget() { | 60 Widget* CreateTestWidget() { |
| 65 Widget* widget = new Widget(); | 61 Widget* widget = new Widget(); |
| 66 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_WINDOW); | 62 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_WINDOW); |
| 67 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; | 63 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; |
| 68 widget->Init(params); | 64 widget->Init(params); |
| 69 return widget; | 65 return widget; |
| 70 } | 66 } |
| 71 | 67 |
| 72 private: | 68 private: |
| 73 #if defined(OS_MACOSX) | |
| 74 // Ensure tests running in parallel don't steal focus from the Widget on Mac. | |
| 75 ui::test::ScopedFakeNSWindowFocus fake_focus_; | |
| 76 #endif | |
| 77 | |
| 78 DISALLOW_COPY_AND_ASSIGN(BubbleDelegateTest); | 69 DISALLOW_COPY_AND_ASSIGN(BubbleDelegateTest); |
| 79 }; | 70 }; |
| 80 | 71 |
| 81 } // namespace | 72 } // namespace |
| 82 | 73 |
| 83 TEST_F(BubbleDelegateTest, CreateDelegate) { | 74 TEST_F(BubbleDelegateTest, CreateDelegate) { |
| 84 scoped_ptr<Widget> anchor_widget(CreateTestWidget()); | 75 scoped_ptr<Widget> anchor_widget(CreateTestWidget()); |
| 85 BubbleDelegateView* bubble_delegate = new BubbleDelegateView( | 76 BubbleDelegateView* bubble_delegate = new BubbleDelegateView( |
| 86 anchor_widget->GetContentsView(), BubbleBorder::NONE); | 77 anchor_widget->GetContentsView(), BubbleBorder::NONE); |
| 87 bubble_delegate->set_color(SK_ColorGREEN); | 78 bubble_delegate->set_color(SK_ColorGREEN); |
| (...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 323 close_button, | 314 close_button, |
| 324 ui::MouseEvent(ui::ET_MOUSE_PRESSED, gfx::Point(0, 0), gfx::Point(0, 0), | 315 ui::MouseEvent(ui::ET_MOUSE_PRESSED, gfx::Point(0, 0), gfx::Point(0, 0), |
| 325 ui::EventTimeForNow(), ui::EF_NONE, ui::EF_NONE)); | 316 ui::EventTimeForNow(), ui::EF_NONE, ui::EF_NONE)); |
| 326 EXPECT_TRUE(bubble_widget->IsClosed()); | 317 EXPECT_TRUE(bubble_widget->IsClosed()); |
| 327 EXPECT_EQ(BubbleDelegateView::CloseReason::CLOSE_BUTTON, | 318 EXPECT_EQ(BubbleDelegateView::CloseReason::CLOSE_BUTTON, |
| 328 bubble_delegate->close_reason()); | 319 bubble_delegate->close_reason()); |
| 329 } | 320 } |
| 330 } | 321 } |
| 331 | 322 |
| 332 } // namespace views | 323 } // namespace views |
| OLD | NEW |