OLD | NEW |
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 "ui/events/event_dispatcher.h" | 5 #include "ui/events/event_dispatcher.h" |
6 | 6 |
7 #include "testing/gtest/include/gtest/gtest.h" | 7 #include "testing/gtest/include/gtest/gtest.h" |
8 #include "ui/events/event.h" | 8 #include "ui/events/event.h" |
9 #include "ui/events/event_dispatcher.h" | 9 #include "ui/events/event_dispatcher.h" |
10 #include "ui/events/event_target.h" | 10 #include "ui/events/event_target.h" |
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
229 child.AddPostTargetHandler(&h6); | 229 child.AddPostTargetHandler(&h6); |
230 | 230 |
231 parent.AddPostTargetHandler(&h7); | 231 parent.AddPostTargetHandler(&h7); |
232 parent.AddPostTargetHandler(&h8); | 232 parent.AddPostTargetHandler(&h8); |
233 | 233 |
234 h5.set_expect_post_target(true); | 234 h5.set_expect_post_target(true); |
235 h6.set_expect_post_target(true); | 235 h6.set_expect_post_target(true); |
236 h7.set_expect_post_target(true); | 236 h7.set_expect_post_target(true); |
237 h8.set_expect_post_target(true); | 237 h8.set_expect_post_target(true); |
238 | 238 |
239 MouseEvent mouse(ui::ET_MOUSE_MOVED, gfx::Point(3, 4), gfx::Point(3, 4), | 239 MouseEvent mouse( |
240 ui::EventTimeForNow(), 0, 0); | 240 ui::ET_MOUSE_MOVED, gfx::Point(3, 4), gfx::Point(3, 4), |
| 241 ui::EventTimeForNow(), 0, 0, |
| 242 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
241 Event::DispatcherApi event_mod(&mouse); | 243 Event::DispatcherApi event_mod(&mouse); |
242 dispatcher.ProcessEvent(&child, &mouse); | 244 dispatcher.ProcessEvent(&child, &mouse); |
243 EXPECT_FALSE(mouse.stopped_propagation()); | 245 EXPECT_FALSE(mouse.stopped_propagation()); |
244 EXPECT_FALSE(mouse.handled()); | 246 EXPECT_FALSE(mouse.handled()); |
245 | 247 |
246 { | 248 { |
247 int expected[] = { 1, 2, 3, 4, 5, 6, 7, 8 }; | 249 int expected[] = { 1, 2, 3, 4, 5, 6, 7, 8 }; |
248 EXPECT_EQ( | 250 EXPECT_EQ( |
249 std::vector<int>(expected, expected + sizeof(expected) / sizeof(int)), | 251 std::vector<int>(expected, expected + sizeof(expected) / sizeof(int)), |
250 child.handler_list()); | 252 child.handler_list()); |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
303 TestEventDispatcher dispatcher; | 305 TestEventDispatcher dispatcher; |
304 TestTarget target; | 306 TestTarget target; |
305 | 307 |
306 TestEventHandler handler(11); | 308 TestEventHandler handler(11); |
307 | 309 |
308 target.AddPreTargetHandler(&handler); | 310 target.AddPreTargetHandler(&handler); |
309 target.AddPostTargetHandler(&handler); | 311 target.AddPostTargetHandler(&handler); |
310 handler.set_expect_pre_target(true); | 312 handler.set_expect_pre_target(true); |
311 handler.set_expect_post_target(true); | 313 handler.set_expect_post_target(true); |
312 | 314 |
313 MouseEvent mouse(ui::ET_MOUSE_MOVED, gfx::Point(3, 4), gfx::Point(3, 4), | 315 MouseEvent mouse( |
314 ui::EventTimeForNow(), 0, 0); | 316 ui::ET_MOUSE_MOVED, gfx::Point(3, 4), gfx::Point(3, 4), |
| 317 ui::EventTimeForNow(), 0, 0, |
| 318 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
315 Event::DispatcherApi event_mod(&mouse); | 319 Event::DispatcherApi event_mod(&mouse); |
316 dispatcher.ProcessEvent(&target, &mouse); | 320 dispatcher.ProcessEvent(&target, &mouse); |
317 EXPECT_EQ(ER_UNHANDLED, mouse.result()); | 321 EXPECT_EQ(ER_UNHANDLED, mouse.result()); |
318 | 322 |
319 int handlers[] = { 11, 11 }; | 323 int handlers[] = { 11, 11 }; |
320 EXPECT_EQ( | 324 EXPECT_EQ( |
321 std::vector<int>(handlers, handlers + sizeof(handlers) / sizeof(int)), | 325 std::vector<int>(handlers, handlers + sizeof(handlers) / sizeof(int)), |
322 target.handler_list()); | 326 target.handler_list()); |
323 } | 327 } |
324 | 328 |
(...skipping 10 matching lines...) Expand all Loading... |
335 target.AddPreTargetHandler(&h1); | 339 target.AddPreTargetHandler(&h1); |
336 target.AddPreTargetHandler(&handler); | 340 target.AddPreTargetHandler(&handler); |
337 target.AddPreTargetHandler(&h2); | 341 target.AddPreTargetHandler(&h2); |
338 | 342 |
339 h1.set_expect_pre_target(true); | 343 h1.set_expect_pre_target(true); |
340 handler.set_expect_pre_target(true); | 344 handler.set_expect_pre_target(true); |
341 // |h2| should not receive any events at all since |handler| will have | 345 // |h2| should not receive any events at all since |handler| will have |
342 // destroyed the dispatcher. | 346 // destroyed the dispatcher. |
343 h2.set_expect_pre_target(false); | 347 h2.set_expect_pre_target(false); |
344 | 348 |
345 MouseEvent mouse(ui::ET_MOUSE_MOVED, gfx::Point(3, 4), gfx::Point(3, 4), | 349 MouseEvent mouse( |
346 ui::EventTimeForNow(), 0, 0); | 350 ui::ET_MOUSE_MOVED, gfx::Point(3, 4), gfx::Point(3, 4), |
| 351 ui::EventTimeForNow(), 0, 0, |
| 352 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
347 EventDispatchDetails details = dispatcher->ProcessEvent(&target, &mouse); | 353 EventDispatchDetails details = dispatcher->ProcessEvent(&target, &mouse); |
348 EXPECT_TRUE(details.dispatcher_destroyed); | 354 EXPECT_TRUE(details.dispatcher_destroyed); |
349 EXPECT_EQ(ER_CONSUMED, mouse.result()); | 355 EXPECT_EQ(ER_CONSUMED, mouse.result()); |
350 EXPECT_EQ(2U, target.handler_list().size()); | 356 EXPECT_EQ(2U, target.handler_list().size()); |
351 EXPECT_EQ(1, target.handler_list()[0]); | 357 EXPECT_EQ(1, target.handler_list()[0]); |
352 EXPECT_EQ(5, target.handler_list()[1]); | 358 EXPECT_EQ(5, target.handler_list()[1]); |
353 } | 359 } |
354 | 360 |
355 // Test for non-cancelable event. | 361 // Test for non-cancelable event. |
356 { | 362 { |
(...skipping 30 matching lines...) Expand all Loading... |
387 target.AddPostTargetHandler(&h1); | 393 target.AddPostTargetHandler(&h1); |
388 target.AddPostTargetHandler(&handler); | 394 target.AddPostTargetHandler(&handler); |
389 target.AddPostTargetHandler(&h2); | 395 target.AddPostTargetHandler(&h2); |
390 | 396 |
391 h1.set_expect_post_target(true); | 397 h1.set_expect_post_target(true); |
392 handler.set_expect_post_target(true); | 398 handler.set_expect_post_target(true); |
393 // |h2| should not receive any events at all since |handler| will have | 399 // |h2| should not receive any events at all since |handler| will have |
394 // destroyed the dispatcher. | 400 // destroyed the dispatcher. |
395 h2.set_expect_post_target(false); | 401 h2.set_expect_post_target(false); |
396 | 402 |
397 MouseEvent mouse(ui::ET_MOUSE_MOVED, gfx::Point(3, 4), gfx::Point(3, 4), | 403 MouseEvent mouse( |
398 ui::EventTimeForNow(), 0, 0); | 404 ui::ET_MOUSE_MOVED, gfx::Point(3, 4), gfx::Point(3, 4), |
| 405 ui::EventTimeForNow(), 0, 0, |
| 406 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
399 EventDispatchDetails details = dispatcher->ProcessEvent(&target, &mouse); | 407 EventDispatchDetails details = dispatcher->ProcessEvent(&target, &mouse); |
400 EXPECT_TRUE(details.dispatcher_destroyed); | 408 EXPECT_TRUE(details.dispatcher_destroyed); |
401 EXPECT_EQ(ER_CONSUMED, mouse.result()); | 409 EXPECT_EQ(ER_CONSUMED, mouse.result()); |
402 EXPECT_EQ(2U, target.handler_list().size()); | 410 EXPECT_EQ(2U, target.handler_list().size()); |
403 EXPECT_EQ(1, target.handler_list()[0]); | 411 EXPECT_EQ(1, target.handler_list()[0]); |
404 EXPECT_EQ(5, target.handler_list()[1]); | 412 EXPECT_EQ(5, target.handler_list()[1]); |
405 } | 413 } |
406 | 414 |
407 // Test for non-cancelable event. | 415 // Test for non-cancelable event. |
408 { | 416 { |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
441 | 449 |
442 target.AddPreTargetHandler(&h1); | 450 target.AddPreTargetHandler(&h1); |
443 target.AddPreTargetHandler(&invalidate_handler); | 451 target.AddPreTargetHandler(&invalidate_handler); |
444 target.AddPreTargetHandler(&h3); | 452 target.AddPreTargetHandler(&h3); |
445 | 453 |
446 h1.set_expect_pre_target(true); | 454 h1.set_expect_pre_target(true); |
447 invalidate_handler.set_expect_pre_target(true); | 455 invalidate_handler.set_expect_pre_target(true); |
448 // |h3| should not receive events as the target will be invalidated. | 456 // |h3| should not receive events as the target will be invalidated. |
449 h3.set_expect_pre_target(false); | 457 h3.set_expect_pre_target(false); |
450 | 458 |
451 MouseEvent mouse(ui::ET_MOUSE_MOVED, gfx::Point(3, 4), gfx::Point(3, 4), | 459 MouseEvent mouse( |
452 ui::EventTimeForNow(), 0, 0); | 460 ui::ET_MOUSE_MOVED, gfx::Point(3, 4), gfx::Point(3, 4), |
| 461 ui::EventTimeForNow(), 0, 0, |
| 462 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
453 EventDispatchDetails details = dispatcher.ProcessEvent(&target, &mouse); | 463 EventDispatchDetails details = dispatcher.ProcessEvent(&target, &mouse); |
454 EXPECT_FALSE(details.dispatcher_destroyed); | 464 EXPECT_FALSE(details.dispatcher_destroyed); |
455 EXPECT_TRUE(details.target_destroyed); | 465 EXPECT_TRUE(details.target_destroyed); |
456 EXPECT_FALSE(target.valid()); | 466 EXPECT_FALSE(target.valid()); |
457 EXPECT_TRUE(mouse.stopped_propagation()); | 467 EXPECT_TRUE(mouse.stopped_propagation()); |
458 EXPECT_EQ(2U, target.handler_list().size()); | 468 EXPECT_EQ(2U, target.handler_list().size()); |
459 EXPECT_EQ(1, target.handler_list()[0]); | 469 EXPECT_EQ(1, target.handler_list()[0]); |
460 EXPECT_EQ(2, target.handler_list()[1]); | 470 EXPECT_EQ(2, target.handler_list()[1]); |
461 | 471 |
462 // Test for non-cancelable event. | 472 // Test for non-cancelable event. |
(...skipping 21 matching lines...) Expand all Loading... |
484 target.AddPreTargetHandler(&h1); | 494 target.AddPreTargetHandler(&h1); |
485 target.AddPreTargetHandler(&handle_destroyer); | 495 target.AddPreTargetHandler(&handle_destroyer); |
486 target.AddPreTargetHandler(h3); | 496 target.AddPreTargetHandler(h3); |
487 | 497 |
488 h1.set_expect_pre_target(true); | 498 h1.set_expect_pre_target(true); |
489 handle_destroyer.set_expect_pre_target(true); | 499 handle_destroyer.set_expect_pre_target(true); |
490 // |h3| should not receive events since |handle_destroyer| will have | 500 // |h3| should not receive events since |handle_destroyer| will have |
491 // destroyed it. | 501 // destroyed it. |
492 h3->set_expect_pre_target(false); | 502 h3->set_expect_pre_target(false); |
493 | 503 |
494 MouseEvent mouse(ui::ET_MOUSE_MOVED, gfx::Point(3, 4), gfx::Point(3, 4), | 504 MouseEvent mouse( |
495 ui::EventTimeForNow(), 0, 0); | 505 ui::ET_MOUSE_MOVED, gfx::Point(3, 4), gfx::Point(3, 4), |
| 506 ui::EventTimeForNow(), 0, 0, |
| 507 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
496 EventDispatchDetails details = dispatcher.ProcessEvent(&target, &mouse); | 508 EventDispatchDetails details = dispatcher.ProcessEvent(&target, &mouse); |
497 EXPECT_FALSE(details.dispatcher_destroyed); | 509 EXPECT_FALSE(details.dispatcher_destroyed); |
498 EXPECT_FALSE(details.target_destroyed); | 510 EXPECT_FALSE(details.target_destroyed); |
499 EXPECT_FALSE(mouse.stopped_propagation()); | 511 EXPECT_FALSE(mouse.stopped_propagation()); |
500 EXPECT_EQ(2U, target.handler_list().size()); | 512 EXPECT_EQ(2U, target.handler_list().size()); |
501 EXPECT_EQ(1, target.handler_list()[0]); | 513 EXPECT_EQ(1, target.handler_list()[0]); |
502 EXPECT_EQ(2, target.handler_list()[1]); | 514 EXPECT_EQ(2, target.handler_list()[1]); |
503 } | 515 } |
504 | 516 |
505 // Test for non-cancelable events. | 517 // Test for non-cancelable events. |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
542 target.AddPreTargetHandler(&destroyer); | 554 target.AddPreTargetHandler(&destroyer); |
543 target.AddPreTargetHandler(h3); | 555 target.AddPreTargetHandler(h3); |
544 | 556 |
545 h1.set_expect_pre_target(true); | 557 h1.set_expect_pre_target(true); |
546 destroyer.set_expect_pre_target(true); | 558 destroyer.set_expect_pre_target(true); |
547 destroyer.set_dispatcher_delegate(dispatcher); | 559 destroyer.set_dispatcher_delegate(dispatcher); |
548 // |h3| should not receive events since |destroyer| will have destroyed | 560 // |h3| should not receive events since |destroyer| will have destroyed |
549 // it. | 561 // it. |
550 h3->set_expect_pre_target(false); | 562 h3->set_expect_pre_target(false); |
551 | 563 |
552 MouseEvent mouse(ui::ET_MOUSE_MOVED, gfx::Point(3, 4), gfx::Point(3, 4), | 564 MouseEvent mouse( |
553 ui::EventTimeForNow(), 0, 0); | 565 ui::ET_MOUSE_MOVED, gfx::Point(3, 4), gfx::Point(3, 4), |
| 566 ui::EventTimeForNow(), 0, 0, |
| 567 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
554 EventDispatchDetails details = dispatcher->ProcessEvent(&target, &mouse); | 568 EventDispatchDetails details = dispatcher->ProcessEvent(&target, &mouse); |
555 EXPECT_TRUE(details.dispatcher_destroyed); | 569 EXPECT_TRUE(details.dispatcher_destroyed); |
556 EXPECT_TRUE(mouse.stopped_propagation()); | 570 EXPECT_TRUE(mouse.stopped_propagation()); |
557 EXPECT_EQ(2U, target.handler_list().size()); | 571 EXPECT_EQ(2U, target.handler_list().size()); |
558 EXPECT_EQ(1, target.handler_list()[0]); | 572 EXPECT_EQ(1, target.handler_list()[0]); |
559 EXPECT_EQ(2, target.handler_list()[1]); | 573 EXPECT_EQ(2, target.handler_list()[1]); |
560 } | 574 } |
561 | 575 |
562 // Test for non-cancelable events. | 576 // Test for non-cancelable events. |
563 { | 577 { |
(...skipping 17 matching lines...) Expand all Loading... |
581 NonCancelableEvent event; | 595 NonCancelableEvent event; |
582 EventDispatchDetails details = dispatcher->ProcessEvent(&target, &event); | 596 EventDispatchDetails details = dispatcher->ProcessEvent(&target, &event); |
583 EXPECT_TRUE(details.dispatcher_destroyed); | 597 EXPECT_TRUE(details.dispatcher_destroyed); |
584 EXPECT_EQ(2U, target.handler_list().size()); | 598 EXPECT_EQ(2U, target.handler_list().size()); |
585 EXPECT_EQ(1, target.handler_list()[0]); | 599 EXPECT_EQ(1, target.handler_list()[0]); |
586 EXPECT_EQ(2, target.handler_list()[1]); | 600 EXPECT_EQ(2, target.handler_list()[1]); |
587 } | 601 } |
588 } | 602 } |
589 | 603 |
590 } // namespace ui | 604 } // namespace ui |
OLD | NEW |