diff options
author | msw@chromium.org <msw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-18 18:35:52 +0000 |
---|---|---|
committer | msw@chromium.org <msw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-18 18:35:52 +0000 |
commit | 0d74d4198116eeb86e6dd74f311b4e7980efae6a (patch) | |
tree | 7776df880b07cfa4216e0dd9d3d196e9f332dd4b /views/bubble/bubble_frame_view_unittest.cc | |
parent | d55c20ccd50ff15c0cd21b6d2164d0eba5a2e05f (diff) | |
download | chromium_src-0d74d4198116eeb86e6dd74f311b4e7980efae6a.zip chromium_src-0d74d4198116eeb86e6dd74f311b4e7980efae6a.tar.gz chromium_src-0d74d4198116eeb86e6dd74f311b4e7980efae6a.tar.bz2 |
Views Bubble API adjustments and cleanup
Adjust BubbleDelegateView API, add CreateBubble static factory function.
Bubble's arrow anchors with a screen point, can fade in and fade out.
Supporting changes, test updates, misc related cleanup, -275 lines.
BUG=97248,98322,98323
TEST=updated unit tests, views_examples bubbles work.
Review URL: http://codereview.chromium.org/8227003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@106090 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views/bubble/bubble_frame_view_unittest.cc')
-rw-r--r-- | views/bubble/bubble_frame_view_unittest.cc | 57 |
1 files changed, 16 insertions, 41 deletions
diff --git a/views/bubble/bubble_frame_view_unittest.cc b/views/bubble/bubble_frame_view_unittest.cc index d5cd874..766bcec 100644 --- a/views/bubble/bubble_frame_view_unittest.cc +++ b/views/bubble/bubble_frame_view_unittest.cc @@ -2,11 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "base/memory/scoped_ptr.h" -#include "base/message_loop.h" -#include "third_party/skia/include/core/SkColor.h" -#include "testing/gtest/include/gtest/gtest.h" -#include "views/bubble/bubble_border.h" #include "views/bubble/bubble_frame_view.h" #include "views/bubble/bubble_delegate.h" #include "views/test/views_test_base.h" @@ -21,58 +16,38 @@ namespace { typedef ViewsTestBase BubbleFrameViewBasicTest; -gfx::Rect kBound = gfx::Rect(10, 10, 200, 200); -SkColor kBackgroundColor = SK_ColorRED; -BubbleBorder::ArrowLocation kArrow = BubbleBorder::LEFT_BOTTOM; +const BubbleBorder::ArrowLocation kArrow = BubbleBorder::LEFT_BOTTOM; +const gfx::Rect kRect(10, 10, 200, 200); +const SkColor kBackgroundColor = SK_ColorRED; TEST_F(BubbleFrameViewBasicTest, GetBoundsForClientView) { - scoped_ptr<Widget> widget(new views::Widget()); - views::Widget::InitParams params(views::Widget::InitParams::TYPE_BUBBLE); - params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; - widget->Init(params); - BubbleFrameView frame(widget.get(), kBound, kBackgroundColor, kArrow); - EXPECT_EQ(kBound, frame.bounds()); - EXPECT_EQ(kArrow, - static_cast<BubbleBorder*>(frame.border())->arrow_location()); - EXPECT_EQ(kBackgroundColor, - static_cast<BubbleBorder*>(frame.border())->background_color()); + BubbleFrameView frame(kArrow, kRect.size(), kBackgroundColor); + EXPECT_EQ(frame.GetWindowBoundsForClientBounds(kRect).size(), frame.size()); + BubbleBorder* bubble_border = static_cast<BubbleBorder*>(frame.border()); + EXPECT_EQ(kArrow, bubble_border->arrow_location()); + EXPECT_EQ(kBackgroundColor, bubble_border->background_color()); - gfx::Insets expected_insets; - frame.border()->GetInsets(&expected_insets); + gfx::Insets expected_insets(frame.GetInsets()); EXPECT_EQ(expected_insets.left(), frame.GetBoundsForClientView().x()); EXPECT_EQ(expected_insets.top(), frame.GetBoundsForClientView().y()); - widget->CloseNow(); - widget.reset(NULL); - RunPendingMessages(); } -class TestBubbleDelegate : public BubbleDelegateView { - public: - explicit TestBubbleDelegate(Widget *frame): BubbleDelegateView(frame) {} - SkColor GetFrameBackgroundColor() { return kBackgroundColor; } - gfx::Rect GetBounds() { return gfx::Rect(10, 10, 200, 200); } - BubbleBorder::ArrowLocation GetFrameArrowLocation() { return kArrow; } - View* GetContentsView() { return &view_; } - - View view_; -}; - TEST_F(BubbleFrameViewBasicTest, NonClientHitTest) { - scoped_ptr<Widget> widget(new Widget()); - views::Widget::InitParams params(views::Widget::InitParams::TYPE_BUBBLE); - TestBubbleDelegate delegate(widget.get()); - params.delegate = &delegate; - params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; - widget->Init(params); + BubbleDelegateView* delegate = new BubbleDelegateView(); + scoped_ptr<Widget> widget( + views::BubbleDelegateView::CreateBubble(delegate, NULL)); + widget->SetBounds(kRect); + widget->Show(); gfx::Point kPtInBound(100, 100); gfx::Point kPtOutsideBound(1000, 1000); EXPECT_EQ(HTCLIENT, widget->non_client_view()->NonClientHitTest(kPtInBound)); EXPECT_EQ(HTNOWHERE, widget->non_client_view()->NonClientHitTest(kPtOutsideBound)); widget->CloseNow(); - widget.reset(NULL); + widget.reset(); RunPendingMessages(); } } // namespace + } // namespace views |