Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(23)

Side by Side Diff: views/widget/widget_unittest.cc

Issue 7720020: Get views_unittests pass on touch build (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: enable TouchSelectionControllerImplTest as they're fixed Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « views/views.gyp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "views/widget/native_widget_views.h" 5 #include "views/widget/native_widget_views.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/message_loop.h" 9 #include "base/message_loop.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
11 #include "views/test/test_views_delegate.h" 11 #include "views/test/test_views_delegate.h"
12 #include "views/test/views_test_base.h"
12 #include "views/views_delegate.h" 13 #include "views/views_delegate.h"
13 14
14 #if defined(OS_WIN) 15 #if defined(OS_WIN)
15 #include "views/widget/native_widget_win.h" 16 #include "views/widget/native_widget_win.h"
16 #elif defined(TOOLKIT_USES_GTK) 17 #elif defined(TOOLKIT_USES_GTK)
17 #include "views/widget/native_widget_gtk.h" 18 #include "views/widget/native_widget_gtk.h"
18 #endif 19 #endif
19 20
20 namespace views { 21 namespace views {
21 namespace { 22 namespace {
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 virtual View* GetDefaultParentView() OVERRIDE { 74 virtual View* GetDefaultParentView() OVERRIDE {
74 return default_parent_view_; 75 return default_parent_view_;
75 } 76 }
76 77
77 private: 78 private:
78 View* default_parent_view_; 79 View* default_parent_view_;
79 80
80 DISALLOW_COPY_AND_ASSIGN(WidgetTestViewsDelegate); 81 DISALLOW_COPY_AND_ASSIGN(WidgetTestViewsDelegate);
81 }; 82 };
82 83
83 class WidgetTest : public testing::Test { 84 class WidgetTest : public ViewsTestBase {
84 public: 85 public:
85 WidgetTest() { 86 WidgetTest() {
86 #if defined(OS_WIN)
87 OleInitialize(NULL);
88 #endif
89 } 87 }
90 virtual ~WidgetTest() { 88 virtual ~WidgetTest() {
91 #if defined(OS_WIN)
92 OleUninitialize();
93 #endif
94 } 89 }
95 90
96 virtual void TearDown() { 91 virtual void SetUp() OVERRIDE {
97 // Flush the message loop because we have pending release tasks 92 set_views_delegate(new WidgetTestViewsDelegate());
98 // and these tasks if un-executed would upset Valgrind. 93 ViewsTestBase::SetUp();
99 RunPendingMessages();
100 } 94 }
101 95
102 void RunPendingMessages() { 96 WidgetTestViewsDelegate& widget_views_delegate() const {
103 message_loop_.RunAllPending(); 97 return static_cast<WidgetTestViewsDelegate&>(views_delegate());
104 } 98 }
105 99
106 protected:
107 WidgetTestViewsDelegate views_delegate;
108
109 private: 100 private:
110 MessageLoopForUI message_loop_;
111
112 DISALLOW_COPY_AND_ASSIGN(WidgetTest); 101 DISALLOW_COPY_AND_ASSIGN(WidgetTest);
113 }; 102 };
114 103
115 NativeWidget* CreatePlatformNativeWidget( 104 NativeWidget* CreatePlatformNativeWidget(
116 internal::NativeWidgetDelegate* delegate) { 105 internal::NativeWidgetDelegate* delegate) {
117 #if defined(OS_WIN) 106 #if defined(OS_WIN)
118 return new NativeWidgetWin(delegate); 107 return new NativeWidgetWin(delegate);
119 #elif defined(TOOLKIT_USES_GTK) 108 #elif defined(TOOLKIT_USES_GTK)
120 return new NativeWidgetGtkCapture(delegate); 109 return new NativeWidgetGtkCapture(delegate);
121 #endif 110 #endif
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
177 EXPECT_EQ(toplevel, child->GetTopLevelWidget()); 166 EXPECT_EQ(toplevel, child->GetTopLevelWidget());
178 167
179 toplevel->CloseNow(); 168 toplevel->CloseNow();
180 // |child| should be automatically destroyed with |toplevel|. 169 // |child| should be automatically destroyed with |toplevel|.
181 } 170 }
182 171
183 TEST_F(WidgetTest, GetTopLevelWidget_Synthetic) { 172 TEST_F(WidgetTest, GetTopLevelWidget_Synthetic) {
184 // Create a hierarchy consisting of a top level platform native widget and a 173 // Create a hierarchy consisting of a top level platform native widget and a
185 // child NativeWidgetViews. 174 // child NativeWidgetViews.
186 Widget* toplevel = CreateTopLevelPlatformWidget(); 175 Widget* toplevel = CreateTopLevelPlatformWidget();
187 views_delegate.set_default_parent_view(toplevel->GetRootView()); 176 widget_views_delegate().set_default_parent_view(toplevel->GetRootView());
188 Widget* child = CreateChildNativeWidgetViews(); 177 Widget* child = CreateChildNativeWidgetViews();
189 178
190 EXPECT_EQ(toplevel, toplevel->GetTopLevelWidget()); 179 EXPECT_EQ(toplevel, toplevel->GetTopLevelWidget());
191 EXPECT_EQ(child, child->GetTopLevelWidget()); 180 EXPECT_EQ(child, child->GetTopLevelWidget());
192 181
193 toplevel->CloseNow(); 182 toplevel->CloseNow();
194 // |child| should be automatically destroyed with |toplevel|. 183 // |child| should be automatically destroyed with |toplevel|.
195 } 184 }
196 185
197 // Creates a hierarchy consisting of a top level platform native widget, a child 186 // Creates a hierarchy consisting of a top level platform native widget, a child
198 // NativeWidgetViews, and a child of that child, another NativeWidgetViews. 187 // NativeWidgetViews, and a child of that child, another NativeWidgetViews.
199 TEST_F(WidgetTest, GetTopLevelWidget_SyntheticParent) { 188 TEST_F(WidgetTest, GetTopLevelWidget_SyntheticParent) {
200 Widget* toplevel = CreateTopLevelPlatformWidget(); 189 Widget* toplevel = CreateTopLevelPlatformWidget();
201 views_delegate.set_default_parent_view(toplevel->GetRootView()); 190 widget_views_delegate().set_default_parent_view(toplevel->GetRootView());
202 191
203 Widget* child1 = CreateChildNativeWidgetViews(); // Will be parented 192 Widget* child1 = CreateChildNativeWidgetViews(); // Will be parented
204 // automatically to 193 // automatically to
205 // |toplevel|. 194 // |toplevel|.
206 Widget* child11 = CreateChildNativeWidgetViewsWithParent(child1); 195 Widget* child11 = CreateChildNativeWidgetViewsWithParent(child1);
207 196
208 EXPECT_EQ(toplevel, toplevel->GetTopLevelWidget()); 197 EXPECT_EQ(toplevel, toplevel->GetTopLevelWidget());
209 EXPECT_EQ(child1, child1->GetTopLevelWidget()); 198 EXPECT_EQ(child1, child1->GetTopLevelWidget());
210 EXPECT_EQ(child1, child11->GetTopLevelWidget()); 199 EXPECT_EQ(child1, child11->GetTopLevelWidget());
211 200
212 toplevel->CloseNow(); 201 toplevel->CloseNow();
213 // |child1| and |child11| should be destroyed with |toplevel|. 202 // |child1| and |child11| should be destroyed with |toplevel|.
214 } 203 }
215 204
205 // This is flaky on touch build. See crbug.com/94137.
206 #if defined(TOUCH_UI)
207 #define MAYBE_GrabUngrab DISABLED_GrabUngrab
208 #else
209 #define MAYBE_GrabUngrab GrabUngrab
210 #endif
216 // Tests some grab/ungrab events. 211 // Tests some grab/ungrab events.
217 TEST_F(WidgetTest, GrabUngrab) { 212 TEST_F(WidgetTest, MAYBE_GrabUngrab) {
218 Widget* toplevel = CreateTopLevelPlatformWidget(); 213 Widget* toplevel = CreateTopLevelPlatformWidget();
219 views_delegate.set_default_parent_view(toplevel->GetRootView()); 214 widget_views_delegate().set_default_parent_view(toplevel->GetRootView());
220 215
221 Widget* child1 = CreateChildNativeWidgetViews(); // Will be parented 216 Widget* child1 = CreateChildNativeWidgetViews(); // Will be parented
222 // automatically to 217 // automatically to
223 // |toplevel|. 218 // |toplevel|.
224 Widget* child2 = CreateChildNativeWidgetViews(); 219 Widget* child2 = CreateChildNativeWidgetViews();
225 220
226 toplevel->SetBounds(gfx::Rect(0, 0, 500, 500)); 221 toplevel->SetBounds(gfx::Rect(0, 0, 500, 500));
227 222
228 child1->SetBounds(gfx::Rect(10, 10, 300, 300)); 223 child1->SetBounds(gfx::Rect(10, 10, 300, 300));
229 View* view = new MouseView(); 224 View* view = new MouseView();
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
278 // InitParams::Ownership param. 273 // InitParams::Ownership param.
279 274
280 // A WidgetTest that supplies a toplevel widget for NativeWidgetViews to parent 275 // A WidgetTest that supplies a toplevel widget for NativeWidgetViews to parent
281 // to. 276 // to.
282 class WidgetOwnershipTest : public WidgetTest { 277 class WidgetOwnershipTest : public WidgetTest {
283 public: 278 public:
284 WidgetOwnershipTest() {} 279 WidgetOwnershipTest() {}
285 virtual ~WidgetOwnershipTest() {} 280 virtual ~WidgetOwnershipTest() {}
286 281
287 virtual void SetUp() { 282 virtual void SetUp() {
283 WidgetTest::SetUp();
288 desktop_widget_ = CreateTopLevelPlatformWidget(); 284 desktop_widget_ = CreateTopLevelPlatformWidget();
289 views_delegate.set_default_parent_view(desktop_widget_->GetRootView()); 285 widget_views_delegate().set_default_parent_view(
286 desktop_widget_->GetRootView());
290 } 287 }
291 288
292 virtual void TearDown() { 289 virtual void TearDown() {
293 desktop_widget_->CloseNow(); 290 desktop_widget_->CloseNow();
294 WidgetTest::TearDown(); 291 WidgetTest::TearDown();
295 } 292 }
296 293
297 private: 294 private:
298 Widget* desktop_widget_; 295 Widget* desktop_widget_;
299 296
(...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after
633 630
634 Widget* widget_closed_; 631 Widget* widget_closed_;
635 Widget* widget_activated_; 632 Widget* widget_activated_;
636 Widget* widget_deactivated_; 633 Widget* widget_deactivated_;
637 Widget* widget_shown_; 634 Widget* widget_shown_;
638 Widget* widget_hidden_; 635 Widget* widget_hidden_;
639 }; 636 };
640 637
641 TEST_F(WidgetObserverTest, ActivationChange) { 638 TEST_F(WidgetObserverTest, ActivationChange) {
642 Widget* toplevel = CreateTopLevelPlatformWidget(); 639 Widget* toplevel = CreateTopLevelPlatformWidget();
643 views_delegate.set_default_parent_view(toplevel->GetRootView()); 640 widget_views_delegate().set_default_parent_view(toplevel->GetRootView());
644 641
645 Widget* child1 = NewWidget(); 642 Widget* child1 = NewWidget();
646 Widget* child2 = NewWidget(); 643 Widget* child2 = NewWidget();
647 644
648 reset(); 645 reset();
649 646
650 child1->Activate(); 647 child1->Activate();
651 EXPECT_EQ(child1, widget_activated()); 648 EXPECT_EQ(child1, widget_activated());
652 649
653 child2->Activate(); 650 child2->Activate();
654 EXPECT_EQ(child1, widget_deactivated()); 651 EXPECT_EQ(child1, widget_deactivated());
655 EXPECT_EQ(child2, widget_activated()); 652 EXPECT_EQ(child2, widget_activated());
656 EXPECT_EQ(child2, active()); 653 EXPECT_EQ(child2, active());
657 } 654 }
658 655
659 TEST_F(WidgetObserverTest, VisibilityChange) { 656 TEST_F(WidgetObserverTest, VisibilityChange) {
660 Widget* toplevel = CreateTopLevelPlatformWidget(); 657 Widget* toplevel = CreateTopLevelPlatformWidget();
661 views_delegate.set_default_parent_view(toplevel->GetRootView()); 658 widget_views_delegate().set_default_parent_view(toplevel->GetRootView());
662 659
663 Widget* child1 = NewWidget(); 660 Widget* child1 = NewWidget();
664 Widget* child2 = NewWidget(); 661 Widget* child2 = NewWidget();
665 662
666 reset(); 663 reset();
667 664
668 child1->Hide(); 665 child1->Hide();
669 EXPECT_EQ(child1, widget_hidden()); 666 EXPECT_EQ(child1, widget_hidden());
670 667
671 child2->Hide(); 668 child2->Hide();
672 EXPECT_EQ(child2, widget_hidden()); 669 EXPECT_EQ(child2, widget_hidden());
673 670
674 child1->Show(); 671 child1->Show();
675 EXPECT_EQ(child1, widget_shown()); 672 EXPECT_EQ(child1, widget_shown());
676 673
677 child2->Show(); 674 child2->Show();
678 EXPECT_EQ(child2, widget_shown()); 675 EXPECT_EQ(child2, widget_shown());
679 } 676 }
680 677
681 } // namespace 678 } // namespace
682 } // namespace views 679 } // namespace views
OLDNEW
« no previous file with comments | « views/views.gyp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698