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

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

Issue 11592011: events: Update mouse-event handlers to not return EventResult. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years 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 | « ui/views/widget/widget.cc ('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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "base/basictypes.h" 5 #include "base/basictypes.h"
6 #include "base/memory/scoped_ptr.h" 6 #include "base/memory/scoped_ptr.h"
7 #include "base/message_loop.h" 7 #include "base/message_loop.h"
8 #include "base/utf_string_conversions.h" 8 #include "base/utf_string_conversions.h"
9 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
10 #include "ui/gfx/native_widget_types.h" 10 #include "ui/gfx/native_widget_types.h"
(...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after
277 view->SetBounds(0, 0, 200, 200); 277 view->SetBounds(0, 0, 200, 200);
278 child2->GetRootView()->AddChildView(view); 278 child2->GetRootView()->AddChildView(view);
279 279
280 toplevel->Show(); 280 toplevel->Show();
281 RunPendingMessages(); 281 RunPendingMessages();
282 282
283 // Click on child1 283 // Click on child1
284 gfx::Point p1(45, 45); 284 gfx::Point p1(45, 45);
285 ui::MouseEvent pressed(ui::ET_MOUSE_PRESSED, p1, p1, 285 ui::MouseEvent pressed(ui::ET_MOUSE_PRESSED, p1, p1,
286 ui::EF_LEFT_MOUSE_BUTTON); 286 ui::EF_LEFT_MOUSE_BUTTON);
287 toplevel->OnMouseEvent(pressed); 287 toplevel->OnMouseEvent(&pressed);
288 288
289 EXPECT_TRUE(WidgetHasMouseCapture(toplevel)); 289 EXPECT_TRUE(WidgetHasMouseCapture(toplevel));
290 EXPECT_TRUE(WidgetHasMouseCapture(child1)); 290 EXPECT_TRUE(WidgetHasMouseCapture(child1));
291 EXPECT_FALSE(WidgetHasMouseCapture(child2)); 291 EXPECT_FALSE(WidgetHasMouseCapture(child2));
292 292
293 ui::MouseEvent released(ui::ET_MOUSE_RELEASED, p1, p1, 293 ui::MouseEvent released(ui::ET_MOUSE_RELEASED, p1, p1,
294 ui::EF_LEFT_MOUSE_BUTTON); 294 ui::EF_LEFT_MOUSE_BUTTON);
295 toplevel->OnMouseEvent(released); 295 toplevel->OnMouseEvent(&released);
296 296
297 EXPECT_FALSE(WidgetHasMouseCapture(toplevel)); 297 EXPECT_FALSE(WidgetHasMouseCapture(toplevel));
298 EXPECT_FALSE(WidgetHasMouseCapture(child1)); 298 EXPECT_FALSE(WidgetHasMouseCapture(child1));
299 EXPECT_FALSE(WidgetHasMouseCapture(child2)); 299 EXPECT_FALSE(WidgetHasMouseCapture(child2));
300 300
301 RunPendingMessages(); 301 RunPendingMessages();
302 302
303 // Click on child2 303 // Click on child2
304 gfx::Point p2(315, 45); 304 gfx::Point p2(315, 45);
305 ui::MouseEvent pressed2(ui::ET_MOUSE_PRESSED, p2, p2, 305 ui::MouseEvent pressed2(ui::ET_MOUSE_PRESSED, p2, p2,
306 ui::EF_LEFT_MOUSE_BUTTON); 306 ui::EF_LEFT_MOUSE_BUTTON);
307 EXPECT_TRUE(toplevel->OnMouseEvent(pressed2)); 307 toplevel->OnMouseEvent(&pressed2);
308 EXPECT_TRUE(pressed2.handled());
308 EXPECT_TRUE(WidgetHasMouseCapture(toplevel)); 309 EXPECT_TRUE(WidgetHasMouseCapture(toplevel));
309 EXPECT_TRUE(WidgetHasMouseCapture(child2)); 310 EXPECT_TRUE(WidgetHasMouseCapture(child2));
310 EXPECT_FALSE(WidgetHasMouseCapture(child1)); 311 EXPECT_FALSE(WidgetHasMouseCapture(child1));
311 312
312 ui::MouseEvent released2(ui::ET_MOUSE_RELEASED, p2, p2, 313 ui::MouseEvent released2(ui::ET_MOUSE_RELEASED, p2, p2,
313 ui::EF_LEFT_MOUSE_BUTTON); 314 ui::EF_LEFT_MOUSE_BUTTON);
314 toplevel->OnMouseEvent(released2); 315 toplevel->OnMouseEvent(&released2);
315 EXPECT_FALSE(WidgetHasMouseCapture(toplevel)); 316 EXPECT_FALSE(WidgetHasMouseCapture(toplevel));
316 EXPECT_FALSE(WidgetHasMouseCapture(child1)); 317 EXPECT_FALSE(WidgetHasMouseCapture(child1));
317 EXPECT_FALSE(WidgetHasMouseCapture(child2)); 318 EXPECT_FALSE(WidgetHasMouseCapture(child2));
318 319
319 toplevel->CloseNow(); 320 toplevel->CloseNow();
320 } 321 }
321 322
322 // Tests mouse move outside of the window into the "resize controller" and back 323 // Tests mouse move outside of the window into the "resize controller" and back
323 // will still generate an OnMouseEntered and OnMouseExited event.. 324 // will still generate an OnMouseEntered and OnMouseExited event..
324 TEST_F(WidgetTest, CheckResizeControllerEvents) { 325 TEST_F(WidgetTest, CheckResizeControllerEvents) {
325 Widget* toplevel = CreateTopLevelPlatformWidget(); 326 Widget* toplevel = CreateTopLevelPlatformWidget();
326 327
327 toplevel->SetBounds(gfx::Rect(0, 0, 100, 100)); 328 toplevel->SetBounds(gfx::Rect(0, 0, 100, 100));
328 329
329 MouseView* view = new MouseView(); 330 MouseView* view = new MouseView();
330 view->SetBounds(90, 90, 10, 10); 331 view->SetBounds(90, 90, 10, 10);
331 toplevel->GetRootView()->AddChildView(view); 332 toplevel->GetRootView()->AddChildView(view);
332 333
333 toplevel->Show(); 334 toplevel->Show();
334 RunPendingMessages(); 335 RunPendingMessages();
335 336
336 // Move to an outside position. 337 // Move to an outside position.
337 gfx::Point p1(200, 200); 338 gfx::Point p1(200, 200);
338 ui::MouseEvent moved_out(ui::ET_MOUSE_MOVED, p1, p1, ui::EF_NONE); 339 ui::MouseEvent moved_out(ui::ET_MOUSE_MOVED, p1, p1, ui::EF_NONE);
339 toplevel->OnMouseEvent(moved_out); 340 toplevel->OnMouseEvent(&moved_out);
340 EXPECT_EQ(0, view->EnteredCalls()); 341 EXPECT_EQ(0, view->EnteredCalls());
341 EXPECT_EQ(0, view->ExitedCalls()); 342 EXPECT_EQ(0, view->ExitedCalls());
342 343
343 // Move onto the active view. 344 // Move onto the active view.
344 gfx::Point p2(95, 95); 345 gfx::Point p2(95, 95);
345 ui::MouseEvent moved_over(ui::ET_MOUSE_MOVED, p2, p2, ui::EF_NONE); 346 ui::MouseEvent moved_over(ui::ET_MOUSE_MOVED, p2, p2, ui::EF_NONE);
346 toplevel->OnMouseEvent(moved_over); 347 toplevel->OnMouseEvent(&moved_over);
347 EXPECT_EQ(1, view->EnteredCalls()); 348 EXPECT_EQ(1, view->EnteredCalls());
348 EXPECT_EQ(0, view->ExitedCalls()); 349 EXPECT_EQ(0, view->ExitedCalls());
349 350
350 // Move onto the outer resizing border. 351 // Move onto the outer resizing border.
351 gfx::Point p3(102, 95); 352 gfx::Point p3(102, 95);
352 ui::MouseEvent moved_resizer(ui::ET_MOUSE_MOVED, p3, p3, ui::EF_NONE); 353 ui::MouseEvent moved_resizer(ui::ET_MOUSE_MOVED, p3, p3, ui::EF_NONE);
353 toplevel->OnMouseEvent(moved_resizer); 354 toplevel->OnMouseEvent(&moved_resizer);
354 EXPECT_EQ(0, view->EnteredCalls()); 355 EXPECT_EQ(0, view->EnteredCalls());
355 EXPECT_EQ(1, view->ExitedCalls()); 356 EXPECT_EQ(1, view->ExitedCalls());
356 357
357 // Move onto the view again. 358 // Move onto the view again.
358 toplevel->OnMouseEvent(moved_over); 359 toplevel->OnMouseEvent(&moved_over);
359 EXPECT_EQ(1, view->EnteredCalls()); 360 EXPECT_EQ(1, view->EnteredCalls());
360 EXPECT_EQ(0, view->ExitedCalls()); 361 EXPECT_EQ(0, view->ExitedCalls());
361 362
362 RunPendingMessages(); 363 RunPendingMessages();
363 364
364 toplevel->CloseNow(); 365 toplevel->CloseNow();
365 } 366 }
366 367
367 // Test if a focus manager and an inputmethod work without CHECK failure 368 // Test if a focus manager and an inputmethod work without CHECK failure
368 // when window activation changes. 369 // when window activation changes.
(...skipping 621 matching lines...) Expand 10 before | Expand all | Expand 10 after
990 toplevel->OnGestureEvent(&begin); 991 toplevel->OnGestureEvent(&begin);
991 992
992 // Now try to click on |mouse|. Since |gesture| will have capture, |mouse| 993 // Now try to click on |mouse|. Since |gesture| will have capture, |mouse|
993 // will not receive the event. 994 // will not receive the event.
994 gfx::Point click_location(45, 15); 995 gfx::Point click_location(45, 15);
995 ui::MouseEvent press(ui::ET_MOUSE_PRESSED, click_location, click_location, 996 ui::MouseEvent press(ui::ET_MOUSE_PRESSED, click_location, click_location,
996 ui::EF_LEFT_MOUSE_BUTTON); 997 ui::EF_LEFT_MOUSE_BUTTON);
997 ui::MouseEvent release(ui::ET_MOUSE_RELEASED, click_location, click_location, 998 ui::MouseEvent release(ui::ET_MOUSE_RELEASED, click_location, click_location,
998 ui::EF_LEFT_MOUSE_BUTTON); 999 ui::EF_LEFT_MOUSE_BUTTON);
999 1000
1000 toplevel->OnMouseEvent(press); 1001 toplevel->OnMouseEvent(&press);
1001 toplevel->OnMouseEvent(release); 1002 toplevel->OnMouseEvent(&release);
1002 EXPECT_EQ(0, mouse->pressed()); 1003 EXPECT_EQ(0, mouse->pressed());
1003 1004
1004 // The end of the gesture should release the capture, and pressing on |mouse| 1005 // The end of the gesture should release the capture, and pressing on |mouse|
1005 // should now reach |mouse|. 1006 // should now reach |mouse|.
1006 toplevel->OnGestureEvent(&end); 1007 toplevel->OnGestureEvent(&end);
1007 toplevel->OnMouseEvent(press); 1008 toplevel->OnMouseEvent(&press);
1008 toplevel->OnMouseEvent(release); 1009 toplevel->OnMouseEvent(&release);
1009 EXPECT_EQ(1, mouse->pressed()); 1010 EXPECT_EQ(1, mouse->pressed());
1010 1011
1011 toplevel->Close(); 1012 toplevel->Close();
1012 RunPendingMessages(); 1013 RunPendingMessages();
1013 } 1014 }
1014 1015
1015 #if defined(USE_AURA) 1016 #if defined(USE_AURA)
1016 // The key-event propagation from Widget happens differently on aura and 1017 // The key-event propagation from Widget happens differently on aura and
1017 // non-aura systems because of the difference in IME. So this test works only on 1018 // non-aura systems because of the difference in IME. So this test works only on
1018 // aura. 1019 // aura.
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
1074 bubble_widget->CloseNow(); 1075 bubble_widget->CloseNow();
1075 1076
1076 // Closing the bubble should result in focus going back to the contents view. 1077 // Closing the bubble should result in focus going back to the contents view.
1077 EXPECT_TRUE(contents_view->HasFocus()); 1078 EXPECT_TRUE(contents_view->HasFocus());
1078 } 1079 }
1079 1080
1080 #endif // defined(USE_AURA) 1081 #endif // defined(USE_AURA)
1081 1082
1082 } // namespace 1083 } // namespace
1083 } // namespace views 1084 } // namespace views
OLDNEW
« no previous file with comments | « ui/views/widget/widget.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698