| 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 |