summaryrefslogtreecommitdiffstats
path: root/ui/views
diff options
context:
space:
mode:
authoralicet@chromium.org <alicet@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-01-23 21:02:51 +0000
committeralicet@chromium.org <alicet@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-01-23 21:02:51 +0000
commitae15edeb4545771ba889980583a6c69715e658b6 (patch)
treeceee9abe456d96aaa849272cb2c1ebbd769d1312 /ui/views
parent704b0a5bb45bb8eb12a9f43db17b33c9f093aac5 (diff)
downloadchromium_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.gyp2
-rw-r--r--ui/views/widget/native_widget_aura_unittest.cc66
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