diff options
author | alicet@chromium.org <alicet@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-01-23 21:02:51 +0000 |
---|---|---|
committer | alicet@chromium.org <alicet@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-01-23 21:02:51 +0000 |
commit | ae15edeb4545771ba889980583a6c69715e658b6 (patch) | |
tree | ceee9abe456d96aaa849272cb2c1ebbd769d1312 /ui/views | |
parent | 704b0a5bb45bb8eb12a9f43db17b33c9f093aac5 (diff) | |
download | chromium_src-ae15edeb4545771ba889980583a6c69715e658b6.zip chromium_src-ae15edeb4545771ba889980583a6c69715e658b6.tar.gz chromium_src-ae15edeb4545771ba889980583a6c69715e658b6.tar.bz2 |
Add test case for CenterWindow in Aura. CenterWindow was changed in
http://codereview.chromium.org/9187020/
BUG=None
TEST=ran test on aura.
Review URL: http://codereview.chromium.org/9270021
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118732 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/views')
-rw-r--r-- | ui/views/views.gyp | 2 | ||||
-rw-r--r-- | ui/views/widget/native_widget_aura_unittest.cc | 66 |
2 files changed, 68 insertions, 0 deletions
diff --git a/ui/views/views.gyp b/ui/views/views.gyp index d32667b..7768c60 100644 --- a/ui/views/views.gyp +++ b/ui/views/views.gyp @@ -534,6 +534,7 @@ 'test/views_test_base.cc', 'test/views_test_base.h', 'view_unittest.cc', + 'widget/native_widget_aura_unittest.cc', 'widget/native_widget_test_utils.h', 'widget/native_widget_test_utils_aura.cc', 'widget/native_widget_test_utils_gtk.cc', @@ -592,6 +593,7 @@ 'sources/': [ ['exclude', '../aura/test/test_desktop_delegate.cc'], ['exclude', '../aura/test/test_desktop_delegate.h'], + ['exclude', 'widget/native_widget_aura_unittest.cc'], ], }], ['use_webkit_compositor==1', { diff --git a/ui/views/widget/native_widget_aura_unittest.cc b/ui/views/widget/native_widget_aura_unittest.cc new file mode 100644 index 0000000..dc437089 --- /dev/null +++ b/ui/views/widget/native_widget_aura_unittest.cc @@ -0,0 +1,66 @@ + +// Copyright (c) 2012 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/widget/native_widget_aura.h" + +#include "ui/aura/root_window.h" +#include "ui/aura/window.h" +#include "base/basictypes.h" +#include "base/memory/scoped_ptr.h" +#include "base/message_loop.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace views { +namespace { + +NativeWidgetAura* Init(aura::Window* parent, Widget* widget) { + Widget::InitParams params(Widget::InitParams::TYPE_POPUP); + params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; + params.parent = parent; + widget->Init(params); + return static_cast<NativeWidgetAura*>(widget->native_widget()); +} + +TEST(NativeWidgetAuraTest, CenterWindowLargeParent) { + MessageLoopForUI message_loop; + aura::RootWindow::GetInstance()->SetBounds(gfx::Rect(0, 0, 640, 480)); + // Make a parent window larger than the host represented by rootwindow. + scoped_ptr<aura::Window> parent(new aura::Window(NULL)); + parent->Init(ui::Layer::LAYER_HAS_NO_TEXTURE); + parent->SetBounds(gfx::Rect(0, 0, 1024, 800)); + scoped_ptr<Widget> widget(new Widget()); + NativeWidgetAura* window = Init(parent.get(), widget.get()); + + window->CenterWindow(gfx::Size(100, 100)); + EXPECT_EQ(gfx::Rect( (640 - 100) / 2, + (480 - 100) / 2, + 100, 100), + window->GetNativeWindow()->bounds()); + aura::RootWindow::DeleteInstance(); + widget->CloseNow(); + message_loop.RunAllPending(); +} + +TEST(NativeWidgetAuraTest, CenterWindowSmallParent) { + MessageLoopForUI message_loop; + aura::RootWindow::GetInstance()->SetBounds(gfx::Rect(0, 0, 640, 480)); + // Make a parent window smaller than the host represented by rootwindow. + scoped_ptr<aura::Window> parent(new aura::Window(NULL)); + parent->Init(ui::Layer::LAYER_HAS_NO_TEXTURE); + parent->SetBounds(gfx::Rect(0, 0, 480, 320)); + scoped_ptr<Widget> widget(new Widget()); + NativeWidgetAura* window = Init(parent.get(), widget.get()); + + window->CenterWindow(gfx::Size(100, 100)); + EXPECT_EQ(gfx::Rect( (480 - 100) / 2, + (320 - 100) / 2, + 100, 100), + window->GetNativeWindow()->bounds()); + aura::RootWindow::DeleteInstance(); + widget->CloseNow(); + message_loop.RunAllPending(); +} +} // namespace +} // namespace views |