| 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(ui::ET_MOUSE_MOVED, gfx::PointF(3.f, 4.f), |
| 240 ui::EventTimeForNow(), 0, 0); | 240 gfx::PointF(3.f, 4.f), ui::EventTimeForNow(), 0, 0); |
| 241 Event::DispatcherApi event_mod(&mouse); | 241 Event::DispatcherApi event_mod(&mouse); |
| 242 dispatcher.ProcessEvent(&child, &mouse); | 242 dispatcher.ProcessEvent(&child, &mouse); |
| 243 EXPECT_FALSE(mouse.stopped_propagation()); | 243 EXPECT_FALSE(mouse.stopped_propagation()); |
| 244 EXPECT_FALSE(mouse.handled()); | 244 EXPECT_FALSE(mouse.handled()); |
| 245 | 245 |
| 246 { | 246 { |
| 247 int expected[] = { 1, 2, 3, 4, 5, 6, 7, 8 }; | 247 int expected[] = { 1, 2, 3, 4, 5, 6, 7, 8 }; |
| 248 EXPECT_EQ( | 248 EXPECT_EQ( |
| 249 std::vector<int>(expected, expected + sizeof(expected) / sizeof(int)), | 249 std::vector<int>(expected, expected + sizeof(expected) / sizeof(int)), |
| 250 child.handler_list()); | 250 child.handler_list()); |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 303 TestEventDispatcher dispatcher; | 303 TestEventDispatcher dispatcher; |
| 304 TestTarget target; | 304 TestTarget target; |
| 305 | 305 |
| 306 TestEventHandler handler(11); | 306 TestEventHandler handler(11); |
| 307 | 307 |
| 308 target.AddPreTargetHandler(&handler); | 308 target.AddPreTargetHandler(&handler); |
| 309 target.AddPostTargetHandler(&handler); | 309 target.AddPostTargetHandler(&handler); |
| 310 handler.set_expect_pre_target(true); | 310 handler.set_expect_pre_target(true); |
| 311 handler.set_expect_post_target(true); | 311 handler.set_expect_post_target(true); |
| 312 | 312 |
| 313 MouseEvent mouse(ui::ET_MOUSE_MOVED, gfx::Point(3, 4), gfx::Point(3, 4), | 313 MouseEvent mouse(ui::ET_MOUSE_MOVED, gfx::PointF(3.f, 4.f), |
| 314 ui::EventTimeForNow(), 0, 0); | 314 gfx::PointF(3.f, 4.f), ui::EventTimeForNow(), 0, 0); |
| 315 Event::DispatcherApi event_mod(&mouse); | 315 Event::DispatcherApi event_mod(&mouse); |
| 316 dispatcher.ProcessEvent(&target, &mouse); | 316 dispatcher.ProcessEvent(&target, &mouse); |
| 317 EXPECT_EQ(ER_UNHANDLED, mouse.result()); | 317 EXPECT_EQ(ER_UNHANDLED, mouse.result()); |
| 318 | 318 |
| 319 int handlers[] = { 11, 11 }; | 319 int handlers[] = { 11, 11 }; |
| 320 EXPECT_EQ( | 320 EXPECT_EQ( |
| 321 std::vector<int>(handlers, handlers + sizeof(handlers) / sizeof(int)), | 321 std::vector<int>(handlers, handlers + sizeof(handlers) / sizeof(int)), |
| 322 target.handler_list()); | 322 target.handler_list()); |
| 323 } | 323 } |
| 324 | 324 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 335 target.AddPreTargetHandler(&h1); | 335 target.AddPreTargetHandler(&h1); |
| 336 target.AddPreTargetHandler(&handler); | 336 target.AddPreTargetHandler(&handler); |
| 337 target.AddPreTargetHandler(&h2); | 337 target.AddPreTargetHandler(&h2); |
| 338 | 338 |
| 339 h1.set_expect_pre_target(true); | 339 h1.set_expect_pre_target(true); |
| 340 handler.set_expect_pre_target(true); | 340 handler.set_expect_pre_target(true); |
| 341 // |h2| should not receive any events at all since |handler| will have | 341 // |h2| should not receive any events at all since |handler| will have |
| 342 // destroyed the dispatcher. | 342 // destroyed the dispatcher. |
| 343 h2.set_expect_pre_target(false); | 343 h2.set_expect_pre_target(false); |
| 344 | 344 |
| 345 MouseEvent mouse(ui::ET_MOUSE_MOVED, gfx::Point(3, 4), gfx::Point(3, 4), | 345 MouseEvent mouse(ui::ET_MOUSE_MOVED, gfx::PointF(3.f, 4.f), |
| 346 ui::EventTimeForNow(), 0, 0); | 346 gfx::PointF(3.f, 4.f), ui::EventTimeForNow(), 0, 0); |
| 347 EventDispatchDetails details = dispatcher->ProcessEvent(&target, &mouse); | 347 EventDispatchDetails details = dispatcher->ProcessEvent(&target, &mouse); |
| 348 EXPECT_TRUE(details.dispatcher_destroyed); | 348 EXPECT_TRUE(details.dispatcher_destroyed); |
| 349 EXPECT_EQ(ER_CONSUMED, mouse.result()); | 349 EXPECT_EQ(ER_CONSUMED, mouse.result()); |
| 350 EXPECT_EQ(2U, target.handler_list().size()); | 350 EXPECT_EQ(2U, target.handler_list().size()); |
| 351 EXPECT_EQ(1, target.handler_list()[0]); | 351 EXPECT_EQ(1, target.handler_list()[0]); |
| 352 EXPECT_EQ(5, target.handler_list()[1]); | 352 EXPECT_EQ(5, target.handler_list()[1]); |
| 353 } | 353 } |
| 354 | 354 |
| 355 // Test for non-cancelable event. | 355 // Test for non-cancelable event. |
| 356 { | 356 { |
| (...skipping 30 matching lines...) Expand all Loading... |
| 387 target.AddPostTargetHandler(&h1); | 387 target.AddPostTargetHandler(&h1); |
| 388 target.AddPostTargetHandler(&handler); | 388 target.AddPostTargetHandler(&handler); |
| 389 target.AddPostTargetHandler(&h2); | 389 target.AddPostTargetHandler(&h2); |
| 390 | 390 |
| 391 h1.set_expect_post_target(true); | 391 h1.set_expect_post_target(true); |
| 392 handler.set_expect_post_target(true); | 392 handler.set_expect_post_target(true); |
| 393 // |h2| should not receive any events at all since |handler| will have | 393 // |h2| should not receive any events at all since |handler| will have |
| 394 // destroyed the dispatcher. | 394 // destroyed the dispatcher. |
| 395 h2.set_expect_post_target(false); | 395 h2.set_expect_post_target(false); |
| 396 | 396 |
| 397 MouseEvent mouse(ui::ET_MOUSE_MOVED, gfx::Point(3, 4), gfx::Point(3, 4), | 397 MouseEvent mouse(ui::ET_MOUSE_MOVED, gfx::PointF(3.f, 4.f), |
| 398 ui::EventTimeForNow(), 0, 0); | 398 gfx::PointF(3.f, 4.f), ui::EventTimeForNow(), 0, 0); |
| 399 EventDispatchDetails details = dispatcher->ProcessEvent(&target, &mouse); | 399 EventDispatchDetails details = dispatcher->ProcessEvent(&target, &mouse); |
| 400 EXPECT_TRUE(details.dispatcher_destroyed); | 400 EXPECT_TRUE(details.dispatcher_destroyed); |
| 401 EXPECT_EQ(ER_CONSUMED, mouse.result()); | 401 EXPECT_EQ(ER_CONSUMED, mouse.result()); |
| 402 EXPECT_EQ(2U, target.handler_list().size()); | 402 EXPECT_EQ(2U, target.handler_list().size()); |
| 403 EXPECT_EQ(1, target.handler_list()[0]); | 403 EXPECT_EQ(1, target.handler_list()[0]); |
| 404 EXPECT_EQ(5, target.handler_list()[1]); | 404 EXPECT_EQ(5, target.handler_list()[1]); |
| 405 } | 405 } |
| 406 | 406 |
| 407 // Test for non-cancelable event. | 407 // Test for non-cancelable event. |
| 408 { | 408 { |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 441 | 441 |
| 442 target.AddPreTargetHandler(&h1); | 442 target.AddPreTargetHandler(&h1); |
| 443 target.AddPreTargetHandler(&invalidate_handler); | 443 target.AddPreTargetHandler(&invalidate_handler); |
| 444 target.AddPreTargetHandler(&h3); | 444 target.AddPreTargetHandler(&h3); |
| 445 | 445 |
| 446 h1.set_expect_pre_target(true); | 446 h1.set_expect_pre_target(true); |
| 447 invalidate_handler.set_expect_pre_target(true); | 447 invalidate_handler.set_expect_pre_target(true); |
| 448 // |h3| should not receive events as the target will be invalidated. | 448 // |h3| should not receive events as the target will be invalidated. |
| 449 h3.set_expect_pre_target(false); | 449 h3.set_expect_pre_target(false); |
| 450 | 450 |
| 451 MouseEvent mouse(ui::ET_MOUSE_MOVED, gfx::Point(3, 4), gfx::Point(3, 4), | 451 MouseEvent mouse(ui::ET_MOUSE_MOVED, gfx::PointF(3.f, 4.f), |
| 452 ui::EventTimeForNow(), 0, 0); | 452 gfx::PointF(3.f, 4.f), ui::EventTimeForNow(), 0, 0); |
| 453 EventDispatchDetails details = dispatcher.ProcessEvent(&target, &mouse); | 453 EventDispatchDetails details = dispatcher.ProcessEvent(&target, &mouse); |
| 454 EXPECT_FALSE(details.dispatcher_destroyed); | 454 EXPECT_FALSE(details.dispatcher_destroyed); |
| 455 EXPECT_TRUE(details.target_destroyed); | 455 EXPECT_TRUE(details.target_destroyed); |
| 456 EXPECT_FALSE(target.valid()); | 456 EXPECT_FALSE(target.valid()); |
| 457 EXPECT_TRUE(mouse.stopped_propagation()); | 457 EXPECT_TRUE(mouse.stopped_propagation()); |
| 458 EXPECT_EQ(2U, target.handler_list().size()); | 458 EXPECT_EQ(2U, target.handler_list().size()); |
| 459 EXPECT_EQ(1, target.handler_list()[0]); | 459 EXPECT_EQ(1, target.handler_list()[0]); |
| 460 EXPECT_EQ(2, target.handler_list()[1]); | 460 EXPECT_EQ(2, target.handler_list()[1]); |
| 461 | 461 |
| 462 // Test for non-cancelable event. | 462 // Test for non-cancelable event. |
| (...skipping 21 matching lines...) Expand all Loading... |
| 484 target.AddPreTargetHandler(&h1); | 484 target.AddPreTargetHandler(&h1); |
| 485 target.AddPreTargetHandler(&handle_destroyer); | 485 target.AddPreTargetHandler(&handle_destroyer); |
| 486 target.AddPreTargetHandler(h3); | 486 target.AddPreTargetHandler(h3); |
| 487 | 487 |
| 488 h1.set_expect_pre_target(true); | 488 h1.set_expect_pre_target(true); |
| 489 handle_destroyer.set_expect_pre_target(true); | 489 handle_destroyer.set_expect_pre_target(true); |
| 490 // |h3| should not receive events since |handle_destroyer| will have | 490 // |h3| should not receive events since |handle_destroyer| will have |
| 491 // destroyed it. | 491 // destroyed it. |
| 492 h3->set_expect_pre_target(false); | 492 h3->set_expect_pre_target(false); |
| 493 | 493 |
| 494 MouseEvent mouse(ui::ET_MOUSE_MOVED, gfx::Point(3, 4), gfx::Point(3, 4), | 494 MouseEvent mouse(ui::ET_MOUSE_MOVED, gfx::PointF(3.f, 4.f), |
| 495 ui::EventTimeForNow(), 0, 0); | 495 gfx::PointF(3.f, 4.f), ui::EventTimeForNow(), 0, 0); |
| 496 EventDispatchDetails details = dispatcher.ProcessEvent(&target, &mouse); | 496 EventDispatchDetails details = dispatcher.ProcessEvent(&target, &mouse); |
| 497 EXPECT_FALSE(details.dispatcher_destroyed); | 497 EXPECT_FALSE(details.dispatcher_destroyed); |
| 498 EXPECT_FALSE(details.target_destroyed); | 498 EXPECT_FALSE(details.target_destroyed); |
| 499 EXPECT_FALSE(mouse.stopped_propagation()); | 499 EXPECT_FALSE(mouse.stopped_propagation()); |
| 500 EXPECT_EQ(2U, target.handler_list().size()); | 500 EXPECT_EQ(2U, target.handler_list().size()); |
| 501 EXPECT_EQ(1, target.handler_list()[0]); | 501 EXPECT_EQ(1, target.handler_list()[0]); |
| 502 EXPECT_EQ(2, target.handler_list()[1]); | 502 EXPECT_EQ(2, target.handler_list()[1]); |
| 503 } | 503 } |
| 504 | 504 |
| 505 // Test for non-cancelable events. | 505 // Test for non-cancelable events. |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 542 target.AddPreTargetHandler(&destroyer); | 542 target.AddPreTargetHandler(&destroyer); |
| 543 target.AddPreTargetHandler(h3); | 543 target.AddPreTargetHandler(h3); |
| 544 | 544 |
| 545 h1.set_expect_pre_target(true); | 545 h1.set_expect_pre_target(true); |
| 546 destroyer.set_expect_pre_target(true); | 546 destroyer.set_expect_pre_target(true); |
| 547 destroyer.set_dispatcher_delegate(dispatcher); | 547 destroyer.set_dispatcher_delegate(dispatcher); |
| 548 // |h3| should not receive events since |destroyer| will have destroyed | 548 // |h3| should not receive events since |destroyer| will have destroyed |
| 549 // it. | 549 // it. |
| 550 h3->set_expect_pre_target(false); | 550 h3->set_expect_pre_target(false); |
| 551 | 551 |
| 552 MouseEvent mouse(ui::ET_MOUSE_MOVED, gfx::Point(3, 4), gfx::Point(3, 4), | 552 MouseEvent mouse(ui::ET_MOUSE_MOVED, gfx::PointF(3.f, 4.f), |
| 553 ui::EventTimeForNow(), 0, 0); | 553 gfx::PointF(3.f, 4.f), ui::EventTimeForNow(), 0, 0); |
| 554 EventDispatchDetails details = dispatcher->ProcessEvent(&target, &mouse); | 554 EventDispatchDetails details = dispatcher->ProcessEvent(&target, &mouse); |
| 555 EXPECT_TRUE(details.dispatcher_destroyed); | 555 EXPECT_TRUE(details.dispatcher_destroyed); |
| 556 EXPECT_TRUE(mouse.stopped_propagation()); | 556 EXPECT_TRUE(mouse.stopped_propagation()); |
| 557 EXPECT_EQ(2U, target.handler_list().size()); | 557 EXPECT_EQ(2U, target.handler_list().size()); |
| 558 EXPECT_EQ(1, target.handler_list()[0]); | 558 EXPECT_EQ(1, target.handler_list()[0]); |
| 559 EXPECT_EQ(2, target.handler_list()[1]); | 559 EXPECT_EQ(2, target.handler_list()[1]); |
| 560 } | 560 } |
| 561 | 561 |
| 562 // Test for non-cancelable events. | 562 // Test for non-cancelable events. |
| 563 { | 563 { |
| (...skipping 17 matching lines...) Expand all Loading... |
| 581 NonCancelableEvent event; | 581 NonCancelableEvent event; |
| 582 EventDispatchDetails details = dispatcher->ProcessEvent(&target, &event); | 582 EventDispatchDetails details = dispatcher->ProcessEvent(&target, &event); |
| 583 EXPECT_TRUE(details.dispatcher_destroyed); | 583 EXPECT_TRUE(details.dispatcher_destroyed); |
| 584 EXPECT_EQ(2U, target.handler_list().size()); | 584 EXPECT_EQ(2U, target.handler_list().size()); |
| 585 EXPECT_EQ(1, target.handler_list()[0]); | 585 EXPECT_EQ(1, target.handler_list()[0]); |
| 586 EXPECT_EQ(2, target.handler_list()[1]); | 586 EXPECT_EQ(2, target.handler_list()[1]); |
| 587 } | 587 } |
| 588 } | 588 } |
| 589 | 589 |
| 590 } // namespace ui | 590 } // namespace ui |
| OLD | NEW |