| Index: ash/wm/custom_frame_view_ash_unittest.cc
|
| diff --git a/ash/wm/custom_frame_view_ash_unittest.cc b/ash/wm/custom_frame_view_ash_unittest.cc
|
| index 97d37f19e60ac4617c0ed2c95264bda235a62b87..953b55c37c3f3761d8cf68ebe8080ca0dcdc9718 100644
|
| --- a/ash/wm/custom_frame_view_ash_unittest.cc
|
| +++ b/ash/wm/custom_frame_view_ash_unittest.cc
|
| @@ -14,8 +14,6 @@
|
|
|
| namespace ash {
|
|
|
| -namespace {
|
| -
|
| // A views::WidgetDelegate which uses a CustomFrameViewAsh.
|
| class TestWidgetDelegate : public views::WidgetDelegateView {
|
| public:
|
| @@ -30,7 +28,7 @@ class TestWidgetDelegate : public views::WidgetDelegateView {
|
| return custom_frame_view_;
|
| }
|
|
|
| - CustomFrameViewAsh* custom_frame_view() {
|
| + CustomFrameViewAsh* custom_frame_view() const {
|
| return custom_frame_view_;
|
| }
|
|
|
| @@ -41,22 +39,74 @@ class TestWidgetDelegate : public views::WidgetDelegateView {
|
| DISALLOW_COPY_AND_ASSIGN(TestWidgetDelegate);
|
| };
|
|
|
| -} // namespace
|
| +class TestWidgetConstraintsDelegate : public TestWidgetDelegate {
|
| + public:
|
| + TestWidgetConstraintsDelegate() {
|
| + }
|
| + virtual ~TestWidgetConstraintsDelegate() {
|
| + }
|
| +
|
| + // views::View implementation.
|
| + virtual gfx::Size GetMinimumSize() OVERRIDE {
|
| + return minimum_size_;
|
| + }
|
| +
|
| + virtual gfx::Size GetMaximumSize() OVERRIDE {
|
| + return maximum_size_;
|
| + }
|
| +
|
| + virtual views::View* GetContentsView() OVERRIDE {
|
| + // Set this instance as the contents view so that the maximum and minimum
|
| + // size constraints will be used.
|
| + return this;
|
| + }
|
| +
|
| + void set_minimum_size(const gfx::Size& min_size) {
|
| + minimum_size_ = min_size;
|
| + }
|
| +
|
| + void set_maximum_size(const gfx::Size& max_size) {
|
| + maximum_size_ = max_size;
|
| + }
|
| +
|
| + int GetTitleBarHeight() const {
|
| + return custom_frame_view()->NonClientTopBorderHeight();
|
| + }
|
| +
|
| + private:
|
| + gfx::Size minimum_size_;
|
| + gfx::Size maximum_size_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(TestWidgetConstraintsDelegate);
|
| +};
|
| +
|
| +class CustomFrameViewAshTest : public test::AshTestBase {
|
| + public:
|
| + CustomFrameViewAshTest() {}
|
| + virtual ~CustomFrameViewAshTest() {}
|
| +
|
| + protected:
|
| + scoped_ptr<views::Widget> CreateWidget(TestWidgetDelegate* delegate) {
|
| + scoped_ptr<views::Widget> widget(new views::Widget);
|
| + views::Widget::InitParams params;
|
| + params.delegate = delegate;
|
| + params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
|
| + params.bounds = gfx::Rect(0, 0, 100, 100);
|
| + params.context = CurrentContext();
|
| + widget->Init(params);
|
| + return widget.Pass();
|
| + }
|
|
|
| -typedef test::AshTestBase CustomFrameViewAshTest;
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(CustomFrameViewAshTest);
|
| +};
|
|
|
| // Test that the height of the header is correct upon initially displaying
|
| // the widget.
|
| TEST_F(CustomFrameViewAshTest, HeaderHeight) {
|
| TestWidgetDelegate* delegate = new TestWidgetDelegate;
|
|
|
| - scoped_ptr<views::Widget> widget(new views::Widget);
|
| - views::Widget::InitParams params;
|
| - params.delegate = delegate;
|
| - params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
|
| - params.bounds = gfx::Rect(0, 0, 100, 100);
|
| - params.context = CurrentContext();
|
| - widget->Init(params);
|
| + scoped_ptr<views::Widget> widget(CreateWidget(delegate));
|
| widget->Show();
|
|
|
| ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
|
| @@ -79,4 +129,43 @@ TEST_F(CustomFrameViewAshTest, HeaderHeight) {
|
| delegate->custom_frame_view()->GetHeaderView()->height());
|
| }
|
|
|
| +// Verify that CustomFrameViewAsh returns the correct minimum and maximum frame
|
| +// sizes when the client view does not specify any size constraints.
|
| +TEST_F(CustomFrameViewAshTest, NoSizeConstraints) {
|
| + TestWidgetConstraintsDelegate* delegate = new TestWidgetConstraintsDelegate;
|
| + scoped_ptr<views::Widget> widget(CreateWidget(delegate));
|
| +
|
| + CustomFrameViewAsh* custom_frame_view = delegate->custom_frame_view();
|
| + gfx::Size min_frame_size = custom_frame_view->GetMinimumSize();
|
| + gfx::Size max_frame_size = custom_frame_view->GetMaximumSize();
|
| +
|
| + EXPECT_EQ(delegate->GetTitleBarHeight(), min_frame_size.height());
|
| +
|
| + // A width and height constraint of 0 denotes unbounded.
|
| + EXPECT_EQ(0, max_frame_size.width());
|
| + EXPECT_EQ(0, max_frame_size.height());
|
| +}
|
| +
|
| +// Verify that CustomFrameViewAsh returns the correct minimum and maximum frame
|
| +// sizes when the client view specifies size constraints.
|
| +TEST_F(CustomFrameViewAshTest, MinimumAndMaximumSize) {
|
| + gfx::Size min_client_size(500, 500);
|
| + gfx::Size max_client_size(800, 800);
|
| + TestWidgetConstraintsDelegate* delegate = new TestWidgetConstraintsDelegate;
|
| + delegate->set_minimum_size(min_client_size);
|
| + delegate->set_maximum_size(max_client_size);
|
| + scoped_ptr<views::Widget> widget(CreateWidget(delegate));
|
| +
|
| + CustomFrameViewAsh* custom_frame_view = delegate->custom_frame_view();
|
| + gfx::Size min_frame_size = custom_frame_view->GetMinimumSize();
|
| + gfx::Size max_frame_size = custom_frame_view->GetMaximumSize();
|
| +
|
| + EXPECT_EQ(min_client_size.width(), min_frame_size.width());
|
| + EXPECT_EQ(max_client_size.width(), max_frame_size.width());
|
| + EXPECT_EQ(min_client_size.height() + delegate->GetTitleBarHeight(),
|
| + min_frame_size.height());
|
| + EXPECT_EQ(max_client_size.height() + delegate->GetTitleBarHeight(),
|
| + max_frame_size.height());
|
| +}
|
| +
|
| } // namespace ash
|
|
|