| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "base/memory/scoped_ptr.h" | 5 #include "base/memory/scoped_ptr.h" |
| 6 #include "base/message_loop.h" | 6 #include "base/message_loop.h" |
| 7 #include "third_party/skia/include/core/SkColor.h" | 7 #include "third_party/skia/include/core/SkColor.h" |
| 8 #include "testing/gtest/include/gtest/gtest.h" | 8 #include "testing/gtest/include/gtest/gtest.h" |
| 9 #include "views/bubble/bubble_border.h" | 9 #include "views/bubble/bubble_border.h" |
| 10 #include "views/bubble/bubble_frame_view.h" | 10 #include "views/bubble/bubble_frame_view.h" |
| 11 #include "views/bubble/bubble_delegate.h" | 11 #include "views/bubble/bubble_delegate.h" |
| 12 #include "views/test/views_test_base.h" |
| 12 #include "views/widget/widget.h" | 13 #include "views/widget/widget.h" |
| 13 #if !defined(OS_WIN) | 14 #if !defined(OS_WIN) |
| 14 #include "views/window/hit_test.h" | 15 #include "views/window/hit_test.h" |
| 15 #endif | 16 #endif |
| 17 |
| 16 namespace views { | 18 namespace views { |
| 17 | 19 |
| 18 namespace { | 20 namespace { |
| 19 | 21 |
| 22 typedef ViewsTestBase BubbleFrameViewBasicTest; |
| 23 |
| 20 gfx::Rect kBound = gfx::Rect(10, 10, 200, 200); | 24 gfx::Rect kBound = gfx::Rect(10, 10, 200, 200); |
| 21 SkColor kBackgroundColor = SK_ColorRED; | 25 SkColor kBackgroundColor = SK_ColorRED; |
| 22 BubbleBorder::ArrowLocation kArrow = BubbleBorder::LEFT_BOTTOM; | 26 BubbleBorder::ArrowLocation kArrow = BubbleBorder::LEFT_BOTTOM; |
| 23 | 27 |
| 24 TEST(BubbleFrameViewBasicTest, GetBoundsForClientView) { | 28 TEST_F(BubbleFrameViewBasicTest, GetBoundsForClientView) { |
| 25 MessageLoopForUI message_loop; | |
| 26 scoped_ptr<Widget> widget(new views::Widget()); | 29 scoped_ptr<Widget> widget(new views::Widget()); |
| 27 views::Widget::InitParams params(views::Widget::InitParams::TYPE_BUBBLE); | 30 views::Widget::InitParams params(views::Widget::InitParams::TYPE_BUBBLE); |
| 28 params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; | 31 params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; |
| 29 widget->Init(params); | 32 widget->Init(params); |
| 30 BubbleFrameView frame(widget.get(), kBound, kBackgroundColor, kArrow); | 33 BubbleFrameView frame(widget.get(), kBound, kBackgroundColor, kArrow); |
| 31 EXPECT_EQ(kBound, frame.bounds()); | 34 EXPECT_EQ(kBound, frame.bounds()); |
| 32 EXPECT_EQ(kArrow, | 35 EXPECT_EQ(kArrow, |
| 33 static_cast<BubbleBorder*>(frame.border())->arrow_location()); | 36 static_cast<BubbleBorder*>(frame.border())->arrow_location()); |
| 34 EXPECT_EQ(kBackgroundColor, | 37 EXPECT_EQ(kBackgroundColor, |
| 35 static_cast<BubbleBorder*>(frame.border())->background_color()); | 38 static_cast<BubbleBorder*>(frame.border())->background_color()); |
| 36 | 39 |
| 37 gfx::Insets expected_insets; | 40 gfx::Insets expected_insets; |
| 38 frame.border()->GetInsets(&expected_insets); | 41 frame.border()->GetInsets(&expected_insets); |
| 39 EXPECT_EQ(expected_insets.left(), frame.GetBoundsForClientView().x()); | 42 EXPECT_EQ(expected_insets.left(), frame.GetBoundsForClientView().x()); |
| 40 EXPECT_EQ(expected_insets.top(), frame.GetBoundsForClientView().y()); | 43 EXPECT_EQ(expected_insets.top(), frame.GetBoundsForClientView().y()); |
| 41 widget->CloseNow(); | 44 widget->CloseNow(); |
| 42 widget.reset(NULL); | 45 widget.reset(NULL); |
| 43 MessageLoop::current()->RunAllPending(); | 46 RunPendingMessages(); |
| 44 } | 47 } |
| 45 | 48 |
| 46 class TestBubbleDelegate : public BubbleDelegateView { | 49 class TestBubbleDelegate : public BubbleDelegateView { |
| 47 public: | 50 public: |
| 48 explicit TestBubbleDelegate(Widget *frame): BubbleDelegateView(frame) {} | 51 explicit TestBubbleDelegate(Widget *frame): BubbleDelegateView(frame) {} |
| 49 SkColor GetFrameBackgroundColor() { return kBackgroundColor; } | 52 SkColor GetFrameBackgroundColor() { return kBackgroundColor; } |
| 50 gfx::Rect GetBounds() { return gfx::Rect(10, 10, 200, 200); } | 53 gfx::Rect GetBounds() { return gfx::Rect(10, 10, 200, 200); } |
| 51 BubbleBorder::ArrowLocation GetFrameArrowLocation() { return kArrow; } | 54 BubbleBorder::ArrowLocation GetFrameArrowLocation() { return kArrow; } |
| 52 View* GetContentsView() { return &view_; } | 55 View* GetContentsView() { return &view_; } |
| 53 | 56 |
| 54 View view_; | 57 View view_; |
| 55 }; | 58 }; |
| 56 | 59 |
| 57 TEST(BubbleFrameViewBasicTest, NonClientHitTest) { | 60 TEST_F(BubbleFrameViewBasicTest, NonClientHitTest) { |
| 58 MessageLoopForUI message_loop; | |
| 59 scoped_ptr<Widget> widget(new Widget()); | 61 scoped_ptr<Widget> widget(new Widget()); |
| 60 views::Widget::InitParams params(views::Widget::InitParams::TYPE_BUBBLE); | 62 views::Widget::InitParams params(views::Widget::InitParams::TYPE_BUBBLE); |
| 61 TestBubbleDelegate delegate(widget.get()); | 63 TestBubbleDelegate delegate(widget.get()); |
| 62 params.delegate = &delegate; | 64 params.delegate = &delegate; |
| 63 params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; | 65 params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; |
| 64 widget->Init(params); | 66 widget->Init(params); |
| 65 gfx::Point kPtInBound(100, 100); | 67 gfx::Point kPtInBound(100, 100); |
| 66 gfx::Point kPtOutsideBound(1000, 1000); | 68 gfx::Point kPtOutsideBound(1000, 1000); |
| 67 EXPECT_EQ(HTCLIENT, widget->non_client_view()->NonClientHitTest(kPtInBound)); | 69 EXPECT_EQ(HTCLIENT, widget->non_client_view()->NonClientHitTest(kPtInBound)); |
| 68 EXPECT_EQ(HTNOWHERE, | 70 EXPECT_EQ(HTNOWHERE, |
| 69 widget->non_client_view()->NonClientHitTest(kPtOutsideBound)); | 71 widget->non_client_view()->NonClientHitTest(kPtOutsideBound)); |
| 70 widget->CloseNow(); | 72 widget->CloseNow(); |
| 71 widget.reset(NULL); | 73 widget.reset(NULL); |
| 72 MessageLoop::current()->RunAllPending(); | 74 RunPendingMessages(); |
| 73 } | 75 } |
| 74 | 76 |
| 75 } // namespace | 77 } // namespace |
| 76 } // namespace views | 78 } // namespace views |
| OLD | NEW |