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 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
251 | 251 |
252 parent.AddPostTargetHandler(&h7); | 252 parent.AddPostTargetHandler(&h7); |
253 parent.AddPostTargetHandler(&h8); | 253 parent.AddPostTargetHandler(&h8); |
254 | 254 |
255 h5.set_expect_post_target(true); | 255 h5.set_expect_post_target(true); |
256 h6.set_expect_post_target(true); | 256 h6.set_expect_post_target(true); |
257 h7.set_expect_post_target(true); | 257 h7.set_expect_post_target(true); |
258 h8.set_expect_post_target(true); | 258 h8.set_expect_post_target(true); |
259 | 259 |
260 MouseEvent mouse(ui::ET_MOUSE_MOVED, gfx::Point(3, 4), | 260 MouseEvent mouse(ui::ET_MOUSE_MOVED, gfx::Point(3, 4), |
261 gfx::Point(3, 4), 0); | 261 gfx::Point(3, 4), 0, 0); |
262 Event::DispatcherApi event_mod(&mouse); | 262 Event::DispatcherApi event_mod(&mouse); |
263 dispatcher.ProcessEvent(&child, &mouse); | 263 dispatcher.ProcessEvent(&child, &mouse); |
264 EXPECT_FALSE(mouse.stopped_propagation()); | 264 EXPECT_FALSE(mouse.stopped_propagation()); |
265 EXPECT_FALSE(mouse.handled()); | 265 EXPECT_FALSE(mouse.handled()); |
266 | 266 |
267 { | 267 { |
268 int expected[] = { 1, 2, 3, 4, 5, 6, 7, 8 }; | 268 int expected[] = { 1, 2, 3, 4, 5, 6, 7, 8 }; |
269 EXPECT_EQ( | 269 EXPECT_EQ( |
270 std::vector<int>(expected, expected + sizeof(expected) / sizeof(int)), | 270 std::vector<int>(expected, expected + sizeof(expected) / sizeof(int)), |
271 child.handler_list()); | 271 child.handler_list()); |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
325 TestTarget target; | 325 TestTarget target; |
326 | 326 |
327 TestEventHandler handler(11); | 327 TestEventHandler handler(11); |
328 | 328 |
329 target.AddPreTargetHandler(&handler); | 329 target.AddPreTargetHandler(&handler); |
330 target.AddPostTargetHandler(&handler); | 330 target.AddPostTargetHandler(&handler); |
331 handler.set_expect_pre_target(true); | 331 handler.set_expect_pre_target(true); |
332 handler.set_expect_post_target(true); | 332 handler.set_expect_post_target(true); |
333 | 333 |
334 MouseEvent mouse(ui::ET_MOUSE_MOVED, gfx::Point(3, 4), | 334 MouseEvent mouse(ui::ET_MOUSE_MOVED, gfx::Point(3, 4), |
335 gfx::Point(3, 4), 0); | 335 gfx::Point(3, 4), 0, 0); |
336 Event::DispatcherApi event_mod(&mouse); | 336 Event::DispatcherApi event_mod(&mouse); |
337 dispatcher.ProcessEvent(&target, &mouse); | 337 dispatcher.ProcessEvent(&target, &mouse); |
338 EXPECT_EQ(ER_UNHANDLED, mouse.result()); | 338 EXPECT_EQ(ER_UNHANDLED, mouse.result()); |
339 | 339 |
340 int handlers[] = { 11, 11 }; | 340 int handlers[] = { 11, 11 }; |
341 EXPECT_EQ( | 341 EXPECT_EQ( |
342 std::vector<int>(handlers, handlers + sizeof(handlers) / sizeof(int)), | 342 std::vector<int>(handlers, handlers + sizeof(handlers) / sizeof(int)), |
343 target.handler_list()); | 343 target.handler_list()); |
344 } | 344 } |
345 | 345 |
(...skipping 11 matching lines...) Expand all Loading... |
357 target.AddPreTargetHandler(&handler); | 357 target.AddPreTargetHandler(&handler); |
358 target.AddPreTargetHandler(&h2); | 358 target.AddPreTargetHandler(&h2); |
359 | 359 |
360 h1.set_expect_pre_target(true); | 360 h1.set_expect_pre_target(true); |
361 handler.set_expect_pre_target(true); | 361 handler.set_expect_pre_target(true); |
362 // |h2| should not receive any events at all since |handler| will have | 362 // |h2| should not receive any events at all since |handler| will have |
363 // destroyed the dispatcher. | 363 // destroyed the dispatcher. |
364 h2.set_expect_pre_target(false); | 364 h2.set_expect_pre_target(false); |
365 | 365 |
366 MouseEvent mouse(ui::ET_MOUSE_MOVED, gfx::Point(3, 4), | 366 MouseEvent mouse(ui::ET_MOUSE_MOVED, gfx::Point(3, 4), |
367 gfx::Point(3, 4), 0); | 367 gfx::Point(3, 4), 0, 0); |
368 Event::DispatcherApi event_mod(&mouse); | 368 Event::DispatcherApi event_mod(&mouse); |
369 dispatcher->ProcessEvent(&target, &mouse); | 369 dispatcher->ProcessEvent(&target, &mouse); |
370 EXPECT_EQ(ER_CONSUMED, mouse.result()); | 370 EXPECT_EQ(ER_CONSUMED, mouse.result()); |
371 EXPECT_EQ(2U, target.handler_list().size()); | 371 EXPECT_EQ(2U, target.handler_list().size()); |
372 EXPECT_EQ(1, target.handler_list()[0]); | 372 EXPECT_EQ(1, target.handler_list()[0]); |
373 EXPECT_EQ(5, target.handler_list()[1]); | 373 EXPECT_EQ(5, target.handler_list()[1]); |
374 } | 374 } |
375 | 375 |
376 // Test for non-cancelable event. | 376 // Test for non-cancelable event. |
377 { | 377 { |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
409 target.AddPostTargetHandler(&handler); | 409 target.AddPostTargetHandler(&handler); |
410 target.AddPostTargetHandler(&h2); | 410 target.AddPostTargetHandler(&h2); |
411 | 411 |
412 h1.set_expect_post_target(true); | 412 h1.set_expect_post_target(true); |
413 handler.set_expect_post_target(true); | 413 handler.set_expect_post_target(true); |
414 // |h2| should not receive any events at all since |handler| will have | 414 // |h2| should not receive any events at all since |handler| will have |
415 // destroyed the dispatcher. | 415 // destroyed the dispatcher. |
416 h2.set_expect_post_target(false); | 416 h2.set_expect_post_target(false); |
417 | 417 |
418 MouseEvent mouse(ui::ET_MOUSE_MOVED, gfx::Point(3, 4), | 418 MouseEvent mouse(ui::ET_MOUSE_MOVED, gfx::Point(3, 4), |
419 gfx::Point(3, 4), 0); | 419 gfx::Point(3, 4), 0, 0); |
420 Event::DispatcherApi event_mod(&mouse); | 420 Event::DispatcherApi event_mod(&mouse); |
421 dispatcher->ProcessEvent(&target, &mouse); | 421 dispatcher->ProcessEvent(&target, &mouse); |
422 EXPECT_EQ(ER_CONSUMED, mouse.result()); | 422 EXPECT_EQ(ER_CONSUMED, mouse.result()); |
423 EXPECT_EQ(2U, target.handler_list().size()); | 423 EXPECT_EQ(2U, target.handler_list().size()); |
424 EXPECT_EQ(1, target.handler_list()[0]); | 424 EXPECT_EQ(1, target.handler_list()[0]); |
425 EXPECT_EQ(5, target.handler_list()[1]); | 425 EXPECT_EQ(5, target.handler_list()[1]); |
426 } | 426 } |
427 | 427 |
428 // Test for non-cancelable event. | 428 // Test for non-cancelable event. |
429 { | 429 { |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
462 | 462 |
463 target.AddPreTargetHandler(&h1); | 463 target.AddPreTargetHandler(&h1); |
464 target.AddPreTargetHandler(&invalidate_handler); | 464 target.AddPreTargetHandler(&invalidate_handler); |
465 target.AddPreTargetHandler(&h3); | 465 target.AddPreTargetHandler(&h3); |
466 | 466 |
467 h1.set_expect_pre_target(true); | 467 h1.set_expect_pre_target(true); |
468 invalidate_handler.set_expect_pre_target(true); | 468 invalidate_handler.set_expect_pre_target(true); |
469 // |h3| should not receive events as the target will be invalidated. | 469 // |h3| should not receive events as the target will be invalidated. |
470 h3.set_expect_pre_target(false); | 470 h3.set_expect_pre_target(false); |
471 | 471 |
472 MouseEvent mouse(ui::ET_MOUSE_MOVED, gfx::Point(3, 4), gfx::Point(3, 4), 0); | 472 MouseEvent mouse(ui::ET_MOUSE_MOVED, gfx::Point(3, 4), gfx::Point(3, 4), 0, |
| 473 0); |
473 dispatcher.ProcessEvent(&target, &mouse); | 474 dispatcher.ProcessEvent(&target, &mouse); |
474 EXPECT_FALSE(target.valid()); | 475 EXPECT_FALSE(target.valid()); |
475 EXPECT_TRUE(mouse.stopped_propagation()); | 476 EXPECT_TRUE(mouse.stopped_propagation()); |
476 EXPECT_EQ(2U, target.handler_list().size()); | 477 EXPECT_EQ(2U, target.handler_list().size()); |
477 EXPECT_EQ(1, target.handler_list()[0]); | 478 EXPECT_EQ(1, target.handler_list()[0]); |
478 EXPECT_EQ(2, target.handler_list()[1]); | 479 EXPECT_EQ(2, target.handler_list()[1]); |
479 | 480 |
480 // Test for non-cancelable event. | 481 // Test for non-cancelable event. |
481 target.Reset(); | 482 target.Reset(); |
482 NonCancelableEvent event; | 483 NonCancelableEvent event; |
(...skipping 18 matching lines...) Expand all Loading... |
501 target.AddPreTargetHandler(&h1); | 502 target.AddPreTargetHandler(&h1); |
502 target.AddPreTargetHandler(&handle_destroyer); | 503 target.AddPreTargetHandler(&handle_destroyer); |
503 target.AddPreTargetHandler(h3); | 504 target.AddPreTargetHandler(h3); |
504 | 505 |
505 h1.set_expect_pre_target(true); | 506 h1.set_expect_pre_target(true); |
506 handle_destroyer.set_expect_pre_target(true); | 507 handle_destroyer.set_expect_pre_target(true); |
507 // |h3| should not receive events since |handle_destroyer| will have | 508 // |h3| should not receive events since |handle_destroyer| will have |
508 // destroyed it. | 509 // destroyed it. |
509 h3->set_expect_pre_target(false); | 510 h3->set_expect_pre_target(false); |
510 | 511 |
511 MouseEvent mouse(ui::ET_MOUSE_MOVED, gfx::Point(3, 4), gfx::Point(3, 4), 0); | 512 MouseEvent mouse(ui::ET_MOUSE_MOVED, gfx::Point(3, 4), gfx::Point(3, 4), 0, |
| 513 0); |
512 dispatcher.ProcessEvent(&target, &mouse); | 514 dispatcher.ProcessEvent(&target, &mouse); |
513 EXPECT_FALSE(mouse.stopped_propagation()); | 515 EXPECT_FALSE(mouse.stopped_propagation()); |
514 EXPECT_EQ(2U, target.handler_list().size()); | 516 EXPECT_EQ(2U, target.handler_list().size()); |
515 EXPECT_EQ(1, target.handler_list()[0]); | 517 EXPECT_EQ(1, target.handler_list()[0]); |
516 EXPECT_EQ(2, target.handler_list()[1]); | 518 EXPECT_EQ(2, target.handler_list()[1]); |
517 } | 519 } |
518 | 520 |
519 // Test for non-cancelable events. | 521 // Test for non-cancelable events. |
520 { | 522 { |
521 TestEventDispatcher dispatcher; | 523 TestEventDispatcher dispatcher; |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
554 target.AddPreTargetHandler(&destroyer); | 556 target.AddPreTargetHandler(&destroyer); |
555 target.AddPreTargetHandler(h3); | 557 target.AddPreTargetHandler(h3); |
556 | 558 |
557 h1.set_expect_pre_target(true); | 559 h1.set_expect_pre_target(true); |
558 destroyer.set_expect_pre_target(true); | 560 destroyer.set_expect_pre_target(true); |
559 destroyer.set_dispatcher_delegate(dispatcher); | 561 destroyer.set_dispatcher_delegate(dispatcher); |
560 // |h3| should not receive events since |destroyer| will have destroyed | 562 // |h3| should not receive events since |destroyer| will have destroyed |
561 // it. | 563 // it. |
562 h3->set_expect_pre_target(false); | 564 h3->set_expect_pre_target(false); |
563 | 565 |
564 MouseEvent mouse(ui::ET_MOUSE_MOVED, gfx::Point(3, 4), gfx::Point(3, 4), 0); | 566 MouseEvent mouse(ui::ET_MOUSE_MOVED, gfx::Point(3, 4), gfx::Point(3, 4), 0, |
| 567 0); |
565 dispatcher->ProcessEvent(&target, &mouse); | 568 dispatcher->ProcessEvent(&target, &mouse); |
566 EXPECT_TRUE(mouse.stopped_propagation()); | 569 EXPECT_TRUE(mouse.stopped_propagation()); |
567 EXPECT_EQ(2U, target.handler_list().size()); | 570 EXPECT_EQ(2U, target.handler_list().size()); |
568 EXPECT_EQ(1, target.handler_list()[0]); | 571 EXPECT_EQ(1, target.handler_list()[0]); |
569 EXPECT_EQ(2, target.handler_list()[1]); | 572 EXPECT_EQ(2, target.handler_list()[1]); |
570 } | 573 } |
571 | 574 |
572 // Test for non-cancelable events. | 575 // Test for non-cancelable events. |
573 { | 576 { |
574 TestEventDispatcher* dispatcher = new TestEventDispatcher(); | 577 TestEventDispatcher* dispatcher = new TestEventDispatcher(); |
(...skipping 15 matching lines...) Expand all Loading... |
590 | 593 |
591 NonCancelableEvent event; | 594 NonCancelableEvent event; |
592 dispatcher->ProcessEvent(&target, &event); | 595 dispatcher->ProcessEvent(&target, &event); |
593 EXPECT_EQ(2U, target.handler_list().size()); | 596 EXPECT_EQ(2U, target.handler_list().size()); |
594 EXPECT_EQ(1, target.handler_list()[0]); | 597 EXPECT_EQ(1, target.handler_list()[0]); |
595 EXPECT_EQ(2, target.handler_list()[1]); | 598 EXPECT_EQ(2, target.handler_list()[1]); |
596 } | 599 } |
597 } | 600 } |
598 | 601 |
599 } // namespace ui | 602 } // namespace ui |
OLD | NEW |