diff options
author | oshima@google.com <oshima@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-24 22:08:29 +0000 |
---|---|---|
committer | oshima@google.com <oshima@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-24 22:08:29 +0000 |
commit | f641e73f63c4ee84ae7c412c7c225eb493539ce8 (patch) | |
tree | 8a61fd6ba2ef95867e88cf102e538553e8d756bc /views | |
parent | 578c696d2d820567eb0cd938476fedee4a892f56 (diff) | |
download | chromium_src-f641e73f63c4ee84ae7c412c7c225eb493539ce8.zip chromium_src-f641e73f63c4ee84ae7c412c7c225eb493539ce8.tar.gz chromium_src-f641e73f63c4ee84ae7c412c7c225eb493539ce8.tar.bz2 |
Get views_unittests pass on touch build
* Changed views test to use ViewsTestBase.
* Always calls ViewsTestBase::SetUp/TearDown. Added flags to check if this is enforced.
* Excluded tests that does not make sense on touch/pure views build.
BUG=none
TEST=views_unittets now passes on touch build, with a few exceptions below.
WidgetTest.GrabUngrab: assigned to sadrul
NativeTextfieldViewsTest.DragAndDrop_XXX: msw will look into it.
Review URL: http://codereview.chromium.org/7720020
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@98128 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views')
-rw-r--r-- | views/controls/textfield/native_textfield_views_unittest.cc | 5 | ||||
-rw-r--r-- | views/focus/focus_manager_unittest.cc | 28 | ||||
-rw-r--r-- | views/test/views_test_base.cc | 18 | ||||
-rw-r--r-- | views/test/views_test_base.h | 16 | ||||
-rw-r--r-- | views/touchui/touch_selection_controller_impl_unittest.cc | 5 | ||||
-rw-r--r-- | views/view_unittest.cc | 3 | ||||
-rw-r--r-- | views/views.gyp | 6 | ||||
-rw-r--r-- | views/widget/widget_unittest.cc | 47 |
8 files changed, 75 insertions, 53 deletions
diff --git a/views/controls/textfield/native_textfield_views_unittest.cc b/views/controls/textfield/native_textfield_views_unittest.cc index 40607b0..54844f3 100644 --- a/views/controls/textfield/native_textfield_views_unittest.cc +++ b/views/controls/textfield/native_textfield_views_unittest.cc @@ -117,13 +117,14 @@ class NativeTextfieldViewsTest : public ViewsTestBase, // ::testing::Test: virtual void SetUp() { + ViewsTestBase::SetUp(); Widget::SetPureViews(true); } virtual void TearDown() { - Widget::SetPureViews(false); if (widget_) widget_->Close(); + Widget::SetPureViews(false); ViewsTestBase::TearDown(); } @@ -657,6 +658,7 @@ TEST_F(NativeTextfieldViewsTest, DragAndDrop_AcceptDrop) { EXPECT_FALSE(textfield_view_->CanDrop(bad_data)); } +#if !defined(TOUCH_UI) TEST_F(NativeTextfieldViewsTest, DragAndDrop_InitiateDrag) { InitTextfield(Textfield::STYLE_DEFAULT); textfield_->SetText(ASCIIToUTF16("hello string world")); @@ -828,6 +830,7 @@ TEST_F(NativeTextfieldViewsTest, DragAndDrop_Canceled) { textfield_view_->OnDragDone(); EXPECT_EQ(ASCIIToUTF16("hello world"), textfield_->text()); } +#endif TEST_F(NativeTextfieldViewsTest, ReadOnlyTest) { InitTextfield(Textfield::STYLE_DEFAULT); diff --git a/views/focus/focus_manager_unittest.cc b/views/focus/focus_manager_unittest.cc index f31893b..aefd982 100644 --- a/views/focus/focus_manager_unittest.cc +++ b/views/focus/focus_manager_unittest.cc @@ -2,8 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "testing/gtest/include/gtest/gtest.h" - #include "base/logging.h" #include "base/string16.h" #include "base/string_number_conversions.h" @@ -27,6 +25,7 @@ #include "views/controls/textfield/textfield.h" #include "views/focus/accelerator_handler.h" #include "views/focus/focus_manager_factory.h" +#include "views/test/views_test_base.h" #include "views/widget/root_view.h" #include "views/widget/widget.h" #include "views/widget/widget_delegate.h" @@ -100,24 +99,19 @@ const int kThumbnailSuperStarID = count++; namespace views { -class FocusManagerTest : public testing::Test, public WidgetDelegate { +class FocusManagerTest : public ViewsTestBase, public WidgetDelegate { public: FocusManagerTest() : window_(NULL), content_view_(NULL), focus_change_listener_(NULL) { -#if defined(OS_WIN) - OleInitialize(NULL); -#endif } ~FocusManagerTest() { -#if defined(OS_WIN) - OleUninitialize(); -#endif } virtual void SetUp() OVERRIDE { + ViewsTestBase::SetUp(); window_ = Widget::CreateWindowWithBounds(this, bounds()); InitContentView(); window_->Show(); @@ -129,7 +123,8 @@ class FocusManagerTest : public testing::Test, public WidgetDelegate { window_->Close(); // Flush the message loop to make application verifiers happy. - message_loop()->RunAllPending(); + RunPendingMessages(); + ViewsTestBase::TearDown(); } FocusManager* GetFocusManager() { @@ -193,8 +188,6 @@ class FocusManagerTest : public testing::Test, public WidgetDelegate { #endif } - MessageLoopForUI* message_loop() { return &message_loop_; } - Widget* window_; View* content_view_; @@ -256,7 +249,6 @@ class FocusManagerTest : public testing::Test, public WidgetDelegate { private: FocusChangeListener* focus_change_listener_; - MessageLoopForUI message_loop_; DISALLOW_COPY_AND_ASSIGN(FocusManagerTest); }; @@ -963,13 +955,13 @@ TEST_F(FocusManagerTest, FocusStoreRestore) { content_view_->AddChildView(button); button->SetBounds(10, 10, 200, 30); content_view_->AddChildView(view); - message_loop()->RunAllPending(); + RunPendingMessages(); TestFocusChangeListener listener; AddFocusChangeListener(&listener); view->RequestFocus(); - message_loop()->RunAllPending(); + RunPendingMessages(); // MessageLoopForUI::current()->Run(new AcceleratorHandler()); // Visual Studio 2010 has problems converting NULL to the null pointer for @@ -1699,6 +1691,7 @@ class FocusManagerDtorTest : public FocusManagerTest { }; virtual void SetUp() { + ViewsTestBase::SetUp(); FocusManagerFactory::Install(new TestFocusManagerFactory(&dtor_tracker_)); // Create WindowDtorTracked that uses FocusManagerDtorTracked. window_ = new WindowDtorTracked(&dtor_tracker_); @@ -1715,9 +1708,10 @@ class FocusManagerDtorTest : public FocusManagerTest { virtual void TearDown() { if (window_) { window_->Close(); - message_loop()->RunAllPending(); + RunPendingMessages(); } FocusManagerFactory::Install(NULL); + ViewsTestBase::TearDown(); } FocusManager* tracked_focus_manager_; @@ -1735,7 +1729,7 @@ TEST_F(FocusManagerDtorTest, FocusManagerDestructedLast) { // Close the window. window_->Close(); - message_loop()->RunAllPending(); + RunPendingMessages(); // Test window, button and focus manager should all be destructed. ASSERT_EQ(3, static_cast<int>(dtor_tracker_.size())); diff --git a/views/test/views_test_base.cc b/views/test/views_test_base.cc index c78bf27..33a3c47 100644 --- a/views/test/views_test_base.cc +++ b/views/test/views_test_base.cc @@ -10,7 +10,9 @@ namespace views { -ViewsTestBase::ViewsTestBase() { +ViewsTestBase::ViewsTestBase() + : setup_called_(false), + teardown_called_(false) { #if defined(OS_WIN) OleInitialize(NULL); #endif @@ -20,12 +22,26 @@ ViewsTestBase::~ViewsTestBase() { #if defined(OS_WIN) OleUninitialize(); #endif + CHECK(setup_called_) + << "You have overridden SetUp but never called super class's SetUp"; + CHECK(teardown_called_) + << "You have overrideen TearDown but never called super class's TearDown"; +} + +void ViewsTestBase::SetUp() { + testing::Test::SetUp(); + setup_called_ = true; + if (!views_delegate_.get()) + views_delegate_.reset(new TestViewsDelegate()); } void ViewsTestBase::TearDown() { // Flush the message loop because we have pending release tasks // and these tasks if un-executed would upset Valgrind. RunPendingMessages(); + teardown_called_ = true; + views_delegate_.reset(); + testing::Test::TearDown(); } } // namespace views diff --git a/views/test/views_test_base.h b/views/test/views_test_base.h index 4eb111a..0d27c3f 100644 --- a/views/test/views_test_base.h +++ b/views/test/views_test_base.h @@ -9,10 +9,13 @@ #include "testing/gtest/include/gtest/gtest.h" #include "base/message_loop.h" +#include "base/scoped_ptr.h" #include "views/test/test_views_delegate.h" namespace views { +class TestViewsDelegate; + // A base class for views unit test. It creates a message loop necessary // to drive UI events and takes care of OLE initialization for windows. class ViewsTestBase : public testing::Test { @@ -21,18 +24,25 @@ class ViewsTestBase : public testing::Test { virtual ~ViewsTestBase(); // testing::Test: - virtual void TearDown(); + virtual void SetUp() OVERRIDE; + virtual void TearDown() OVERRIDE; void RunPendingMessages() { message_loop_.RunAllPending(); } protected: - TestViewsDelegate& views_delegate() { return views_delegate_; } + TestViewsDelegate& views_delegate() const { return *views_delegate_.get(); } + + void set_views_delegate(TestViewsDelegate* views_delegate) { + views_delegate_.reset(views_delegate); + } private: MessageLoopForUI message_loop_; - TestViewsDelegate views_delegate_; + scoped_ptr<TestViewsDelegate> views_delegate_; + bool setup_called_; + bool teardown_called_; DISALLOW_COPY_AND_ASSIGN(ViewsTestBase); }; diff --git a/views/touchui/touch_selection_controller_impl_unittest.cc b/views/touchui/touch_selection_controller_impl_unittest.cc index a7f6a15..780c69c 100644 --- a/views/touchui/touch_selection_controller_impl_unittest.cc +++ b/views/touchui/touch_selection_controller_impl_unittest.cc @@ -23,12 +23,7 @@ class TouchSelectionControllerImplTest : public ViewsTestBase { textfield_view_(NULL) { } - virtual void SetUp() { - Widget::SetPureViews(true); - } - virtual void TearDown() { - Widget::SetPureViews(false); if (widget_) widget_->Close(); ViewsTestBase::TearDown(); diff --git a/views/view_unittest.cc b/views/view_unittest.cc index 5dfc84d..09483bc 100644 --- a/views/view_unittest.cc +++ b/views/view_unittest.cc @@ -1161,6 +1161,7 @@ class DefaultButtonTest : public ViewTest { } virtual void SetUp() OVERRIDE { + ViewTest::SetUp(); test_dialog_ = new TestDialog(NULL); Widget* window = Widget::CreateWindowWithBounds(test_dialog_, gfx::Rect(0, 0, 100, 100)); @@ -1271,6 +1272,7 @@ class ButtonDropDownTest : public ViewTest { } virtual void SetUp() OVERRIDE { + ViewTest::SetUp(); test_dialog_ = new TestDialog(&mock_menu_model_); Widget* window = Widget::CreateWindowWithBounds(test_dialog_, gfx::Rect(0, 0, 100, 100)); @@ -2417,6 +2419,7 @@ class ViewLayerTest : public ViewsTestBase { } virtual void SetUp() OVERRIDE { + ViewTest::SetUp(); old_use_acceleration_ = View::get_use_acceleration_when_possible(); View::set_use_acceleration_when_possible(true); diff --git a/views/views.gyp b/views/views.gyp index 6c34f4a..e82ea8b 100644 --- a/views/views.gyp +++ b/views/views.gyp @@ -506,7 +506,11 @@ ], }], [ 'touchui==1', { - 'sources!': [ 'focus/accelerator_handler_gtk_unittest.cc' ], + 'sources!': [ + 'focus/accelerator_handler_gtk_unittest.cc', + 'controls/table/table_view_unittest.cc', + 'controls/tabbed_pane/tabbed_pane_unittest.cc' + ], }], ], }, diff --git a/views/widget/widget_unittest.cc b/views/widget/widget_unittest.cc index c9bfbee..1ee027c 100644 --- a/views/widget/widget_unittest.cc +++ b/views/widget/widget_unittest.cc @@ -9,6 +9,7 @@ #include "base/message_loop.h" #include "testing/gtest/include/gtest/gtest.h" #include "views/test/test_views_delegate.h" +#include "views/test/views_test_base.h" #include "views/views_delegate.h" #if defined(OS_WIN) @@ -80,35 +81,23 @@ class WidgetTestViewsDelegate : public TestViewsDelegate { DISALLOW_COPY_AND_ASSIGN(WidgetTestViewsDelegate); }; -class WidgetTest : public testing::Test { +class WidgetTest : public ViewsTestBase { public: WidgetTest() { -#if defined(OS_WIN) - OleInitialize(NULL); -#endif } virtual ~WidgetTest() { -#if defined(OS_WIN) - OleUninitialize(); -#endif } - virtual void TearDown() { - // Flush the message loop because we have pending release tasks - // and these tasks if un-executed would upset Valgrind. - RunPendingMessages(); + virtual void SetUp() OVERRIDE { + set_views_delegate(new WidgetTestViewsDelegate()); + ViewsTestBase::SetUp(); } - void RunPendingMessages() { - message_loop_.RunAllPending(); + WidgetTestViewsDelegate& widget_views_delegate() const { + return static_cast<WidgetTestViewsDelegate&>(views_delegate()); } - protected: - WidgetTestViewsDelegate views_delegate; - private: - MessageLoopForUI message_loop_; - DISALLOW_COPY_AND_ASSIGN(WidgetTest); }; @@ -184,7 +173,7 @@ TEST_F(WidgetTest, GetTopLevelWidget_Synthetic) { // Create a hierarchy consisting of a top level platform native widget and a // child NativeWidgetViews. Widget* toplevel = CreateTopLevelPlatformWidget(); - views_delegate.set_default_parent_view(toplevel->GetRootView()); + widget_views_delegate().set_default_parent_view(toplevel->GetRootView()); Widget* child = CreateChildNativeWidgetViews(); EXPECT_EQ(toplevel, toplevel->GetTopLevelWidget()); @@ -198,7 +187,7 @@ TEST_F(WidgetTest, GetTopLevelWidget_Synthetic) { // NativeWidgetViews, and a child of that child, another NativeWidgetViews. TEST_F(WidgetTest, GetTopLevelWidget_SyntheticParent) { Widget* toplevel = CreateTopLevelPlatformWidget(); - views_delegate.set_default_parent_view(toplevel->GetRootView()); + widget_views_delegate().set_default_parent_view(toplevel->GetRootView()); Widget* child1 = CreateChildNativeWidgetViews(); // Will be parented // automatically to @@ -213,10 +202,16 @@ TEST_F(WidgetTest, GetTopLevelWidget_SyntheticParent) { // |child1| and |child11| should be destroyed with |toplevel|. } +// This is flaky on touch build. See crbug.com/94137. +#if defined(TOUCH_UI) +#define MAYBE_GrabUngrab DISABLED_GrabUngrab +#else +#define MAYBE_GrabUngrab GrabUngrab +#endif // Tests some grab/ungrab events. -TEST_F(WidgetTest, GrabUngrab) { +TEST_F(WidgetTest, MAYBE_GrabUngrab) { Widget* toplevel = CreateTopLevelPlatformWidget(); - views_delegate.set_default_parent_view(toplevel->GetRootView()); + widget_views_delegate().set_default_parent_view(toplevel->GetRootView()); Widget* child1 = CreateChildNativeWidgetViews(); // Will be parented // automatically to @@ -313,8 +308,10 @@ class WidgetOwnershipTest : public WidgetTest { virtual ~WidgetOwnershipTest() {} virtual void SetUp() { + WidgetTest::SetUp(); desktop_widget_ = CreateTopLevelPlatformWidget(); - views_delegate.set_default_parent_view(desktop_widget_->GetRootView()); + widget_views_delegate().set_default_parent_view( + desktop_widget_->GetRootView()); } virtual void TearDown() { @@ -668,7 +665,7 @@ class WidgetObserverTest : public WidgetTest, TEST_F(WidgetObserverTest, ActivationChange) { Widget* toplevel = CreateTopLevelPlatformWidget(); - views_delegate.set_default_parent_view(toplevel->GetRootView()); + widget_views_delegate().set_default_parent_view(toplevel->GetRootView()); Widget* child1 = NewWidget(); Widget* child2 = NewWidget(); @@ -686,7 +683,7 @@ TEST_F(WidgetObserverTest, ActivationChange) { TEST_F(WidgetObserverTest, VisibilityChange) { Widget* toplevel = CreateTopLevelPlatformWidget(); - views_delegate.set_default_parent_view(toplevel->GetRootView()); + widget_views_delegate().set_default_parent_view(toplevel->GetRootView()); Widget* child1 = NewWidget(); Widget* child2 = NewWidget(); |