summaryrefslogtreecommitdiffstats
path: root/views
diff options
context:
space:
mode:
authoroshima@google.com <oshima@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-24 22:08:29 +0000
committeroshima@google.com <oshima@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-24 22:08:29 +0000
commitf641e73f63c4ee84ae7c412c7c225eb493539ce8 (patch)
tree8a61fd6ba2ef95867e88cf102e538553e8d756bc /views
parent578c696d2d820567eb0cd938476fedee4a892f56 (diff)
downloadchromium_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.cc5
-rw-r--r--views/focus/focus_manager_unittest.cc28
-rw-r--r--views/test/views_test_base.cc18
-rw-r--r--views/test/views_test_base.h16
-rw-r--r--views/touchui/touch_selection_controller_impl_unittest.cc5
-rw-r--r--views/view_unittest.cc3
-rw-r--r--views/views.gyp6
-rw-r--r--views/widget/widget_unittest.cc47
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();