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

Side by Side Diff: third_party/WebKit/Source/web/tests/WebInputEventConversionTest.cpp

Issue 2539283002: Remove PlatformGestureEvent in favour of using WebGestureEvent (Closed)
Patch Set: Created 4 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2012 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after
343 webGestureEvent.globalX = 20; 343 webGestureEvent.globalX = 20;
344 webGestureEvent.globalY = 22; 344 webGestureEvent.globalY = 22;
345 webGestureEvent.data.scrollUpdate.deltaX = 30; 345 webGestureEvent.data.scrollUpdate.deltaX = 30;
346 webGestureEvent.data.scrollUpdate.deltaY = 32; 346 webGestureEvent.data.scrollUpdate.deltaY = 32;
347 webGestureEvent.data.scrollUpdate.velocityX = 40; 347 webGestureEvent.data.scrollUpdate.velocityX = 40;
348 webGestureEvent.data.scrollUpdate.velocityY = 42; 348 webGestureEvent.data.scrollUpdate.velocityY = 42;
349 webGestureEvent.data.scrollUpdate.inertialPhase = 349 webGestureEvent.data.scrollUpdate.inertialPhase =
350 WebGestureEvent::MomentumPhase; 350 WebGestureEvent::MomentumPhase;
351 webGestureEvent.data.scrollUpdate.preventPropagation = true; 351 webGestureEvent.data.scrollUpdate.preventPropagation = true;
352 352
353 PlatformGestureEventBuilder platformGestureBuilder(view, webGestureEvent); 353 WebGestureEvent scaledGestureEvent =
354 EXPECT_EQ(5, platformGestureBuilder.position().x()); 354 ScaleWebGestureEvent(view, webGestureEvent);
355 EXPECT_EQ(6, platformGestureBuilder.position().y()); 355 IntPoint position =
356 EXPECT_EQ(20, platformGestureBuilder.globalPosition().x()); 356 flooredIntPoint(scaledGestureEvent.positionInRootFrame());
357 EXPECT_EQ(22, platformGestureBuilder.globalPosition().y()); 357 EXPECT_EQ(5, position.x());
358 EXPECT_EQ(15, platformGestureBuilder.deltaX()); 358 EXPECT_EQ(6, position.y());
359 EXPECT_EQ(16, platformGestureBuilder.deltaY()); 359 EXPECT_EQ(20, scaledGestureEvent.globalX);
360 EXPECT_EQ(22, scaledGestureEvent.globalY);
361 EXPECT_EQ(15, scaledGestureEvent.deltaXInRootFrame());
362 EXPECT_EQ(16, scaledGestureEvent.deltaYInRootFrame());
360 // TODO: The velocity values may need to be scaled to page scale in 363 // TODO: The velocity values may need to be scaled to page scale in
361 // order to remain consist with delta values. 364 // order to remain consist with delta values.
362 EXPECT_EQ(40, platformGestureBuilder.velocityX()); 365 EXPECT_EQ(40, scaledGestureEvent.velocityX());
363 EXPECT_EQ(42, platformGestureBuilder.velocityY()); 366 EXPECT_EQ(42, scaledGestureEvent.velocityY());
364 EXPECT_EQ(ScrollInertialPhaseMomentum, 367 EXPECT_EQ(WebGestureEvent::MomentumPhase,
365 platformGestureBuilder.inertialPhase()); 368 scaledGestureEvent.inertialPhase());
366 EXPECT_TRUE(platformGestureBuilder.preventPropagation()); 369 EXPECT_TRUE(scaledGestureEvent.preventPropagation());
367 } 370 }
368 371
369 { 372 {
370 WebGestureEvent webGestureEvent; 373 WebGestureEvent webGestureEvent;
371 webGestureEvent.type = WebInputEvent::GestureScrollEnd; 374 webGestureEvent.type = WebInputEvent::GestureScrollEnd;
372 webGestureEvent.sourceDevice = WebGestureDeviceTouchscreen; 375 webGestureEvent.sourceDevice = WebGestureDeviceTouchscreen;
373 webGestureEvent.x = 10; 376 webGestureEvent.x = 10;
374 webGestureEvent.y = 12; 377 webGestureEvent.y = 12;
375 webGestureEvent.globalX = 20; 378 webGestureEvent.globalX = 20;
376 webGestureEvent.globalY = 22; 379 webGestureEvent.globalY = 22;
377 380
378 PlatformGestureEventBuilder platformGestureBuilder(view, webGestureEvent); 381 WebGestureEvent scaledGestureEvent =
379 EXPECT_EQ(5, platformGestureBuilder.position().x()); 382 ScaleWebGestureEvent(view, webGestureEvent);
380 EXPECT_EQ(6, platformGestureBuilder.position().y()); 383 IntPoint position =
381 EXPECT_EQ(20, platformGestureBuilder.globalPosition().x()); 384 flooredIntPoint(scaledGestureEvent.positionInRootFrame());
382 EXPECT_EQ(22, platformGestureBuilder.globalPosition().y()); 385 EXPECT_EQ(5, position.x());
383 EXPECT_EQ(ScrollInertialPhaseUnknown, 386 EXPECT_EQ(6, position.y());
384 platformGestureBuilder.inertialPhase()); 387 EXPECT_EQ(20, scaledGestureEvent.globalX);
388 EXPECT_EQ(22, scaledGestureEvent.globalY);
389 EXPECT_EQ(WebGestureEvent::UnknownMomentumPhase,
390 scaledGestureEvent.inertialPhase());
385 } 391 }
386 392
387 { 393 {
388 WebGestureEvent webGestureEvent; 394 WebGestureEvent webGestureEvent;
389 webGestureEvent.type = WebInputEvent::GestureTap; 395 webGestureEvent.type = WebInputEvent::GestureTap;
390 webGestureEvent.sourceDevice = WebGestureDeviceTouchscreen; 396 webGestureEvent.sourceDevice = WebGestureDeviceTouchscreen;
391 webGestureEvent.data.tap.width = 10; 397 webGestureEvent.data.tap.width = 10;
392 webGestureEvent.data.tap.height = 10; 398 webGestureEvent.data.tap.height = 10;
393 399
394 PlatformGestureEventBuilder platformGestureBuilder(view, webGestureEvent); 400 WebGestureEvent scaledGestureEvent =
395 EXPECT_EQ(5, platformGestureBuilder.area().width()); 401 ScaleWebGestureEvent(view, webGestureEvent);
396 EXPECT_EQ(5, platformGestureBuilder.area().height()); 402 IntSize area = flooredIntSize(scaledGestureEvent.tapAreaInRootFrame());
403 EXPECT_EQ(5, area.width());
404 EXPECT_EQ(5, area.height());
397 } 405 }
398 406
399 { 407 {
400 WebGestureEvent webGestureEvent; 408 WebGestureEvent webGestureEvent;
401 webGestureEvent.type = WebInputEvent::GestureTapUnconfirmed; 409 webGestureEvent.type = WebInputEvent::GestureTapUnconfirmed;
402 webGestureEvent.sourceDevice = WebGestureDeviceTouchscreen; 410 webGestureEvent.sourceDevice = WebGestureDeviceTouchscreen;
403 webGestureEvent.data.tap.width = 10; 411 webGestureEvent.data.tap.width = 10;
404 webGestureEvent.data.tap.height = 10; 412 webGestureEvent.data.tap.height = 10;
405 413
406 PlatformGestureEventBuilder platformGestureBuilder(view, webGestureEvent); 414 WebGestureEvent scaledGestureEvent =
407 EXPECT_EQ(5, platformGestureBuilder.area().width()); 415 ScaleWebGestureEvent(view, webGestureEvent);
408 EXPECT_EQ(5, platformGestureBuilder.area().height()); 416 IntSize area = flooredIntSize(scaledGestureEvent.tapAreaInRootFrame());
417 EXPECT_EQ(5, area.width());
418 EXPECT_EQ(5, area.height());
409 } 419 }
410 420
411 { 421 {
412 WebGestureEvent webGestureEvent; 422 WebGestureEvent webGestureEvent;
413 webGestureEvent.type = WebInputEvent::GestureTapDown; 423 webGestureEvent.type = WebInputEvent::GestureTapDown;
414 webGestureEvent.sourceDevice = WebGestureDeviceTouchscreen; 424 webGestureEvent.sourceDevice = WebGestureDeviceTouchscreen;
415 webGestureEvent.data.tapDown.width = 10; 425 webGestureEvent.data.tapDown.width = 10;
416 webGestureEvent.data.tapDown.height = 10; 426 webGestureEvent.data.tapDown.height = 10;
417 427
418 PlatformGestureEventBuilder platformGestureBuilder(view, webGestureEvent); 428 WebGestureEvent scaledGestureEvent =
419 EXPECT_EQ(5, platformGestureBuilder.area().width()); 429 ScaleWebGestureEvent(view, webGestureEvent);
420 EXPECT_EQ(5, platformGestureBuilder.area().height()); 430 IntSize area = flooredIntSize(scaledGestureEvent.tapAreaInRootFrame());
431 EXPECT_EQ(5, area.width());
432 EXPECT_EQ(5, area.height());
421 } 433 }
422 434
423 { 435 {
424 WebGestureEvent webGestureEvent; 436 WebGestureEvent webGestureEvent;
425 webGestureEvent.type = WebInputEvent::GestureShowPress; 437 webGestureEvent.type = WebInputEvent::GestureShowPress;
426 webGestureEvent.sourceDevice = WebGestureDeviceTouchscreen; 438 webGestureEvent.sourceDevice = WebGestureDeviceTouchscreen;
427 webGestureEvent.data.showPress.width = 10; 439 webGestureEvent.data.showPress.width = 10;
428 webGestureEvent.data.showPress.height = 10; 440 webGestureEvent.data.showPress.height = 10;
429 441
430 PlatformGestureEventBuilder platformGestureBuilder(view, webGestureEvent); 442 WebGestureEvent scaledGestureEvent =
431 EXPECT_EQ(5, platformGestureBuilder.area().width()); 443 ScaleWebGestureEvent(view, webGestureEvent);
432 EXPECT_EQ(5, platformGestureBuilder.area().height()); 444 IntSize area = flooredIntSize(scaledGestureEvent.tapAreaInRootFrame());
445 EXPECT_EQ(5, area.width());
446 EXPECT_EQ(5, area.height());
433 } 447 }
434 448
435 { 449 {
436 WebGestureEvent webGestureEvent; 450 WebGestureEvent webGestureEvent;
437 webGestureEvent.type = WebInputEvent::GestureLongPress; 451 webGestureEvent.type = WebInputEvent::GestureLongPress;
438 webGestureEvent.sourceDevice = WebGestureDeviceTouchscreen; 452 webGestureEvent.sourceDevice = WebGestureDeviceTouchscreen;
439 webGestureEvent.data.longPress.width = 10; 453 webGestureEvent.data.longPress.width = 10;
440 webGestureEvent.data.longPress.height = 10; 454 webGestureEvent.data.longPress.height = 10;
441 455
442 PlatformGestureEventBuilder platformGestureBuilder(view, webGestureEvent); 456 WebGestureEvent scaledGestureEvent =
443 EXPECT_EQ(5, platformGestureBuilder.area().width()); 457 ScaleWebGestureEvent(view, webGestureEvent);
444 EXPECT_EQ(5, platformGestureBuilder.area().height()); 458 IntSize area = flooredIntSize(scaledGestureEvent.tapAreaInRootFrame());
459 EXPECT_EQ(5, area.width());
460 EXPECT_EQ(5, area.height());
445 } 461 }
446 462
447 { 463 {
448 WebGestureEvent webGestureEvent; 464 WebGestureEvent webGestureEvent;
449 webGestureEvent.type = WebInputEvent::GestureTwoFingerTap; 465 webGestureEvent.type = WebInputEvent::GestureTwoFingerTap;
450 webGestureEvent.sourceDevice = WebGestureDeviceTouchscreen; 466 webGestureEvent.sourceDevice = WebGestureDeviceTouchscreen;
451 webGestureEvent.data.twoFingerTap.firstFingerWidth = 10; 467 webGestureEvent.data.twoFingerTap.firstFingerWidth = 10;
452 webGestureEvent.data.twoFingerTap.firstFingerHeight = 10; 468 webGestureEvent.data.twoFingerTap.firstFingerHeight = 10;
453 469
454 PlatformGestureEventBuilder platformGestureBuilder(view, webGestureEvent); 470 WebGestureEvent scaledGestureEvent =
455 EXPECT_EQ(5, platformGestureBuilder.area().width()); 471 ScaleWebGestureEvent(view, webGestureEvent);
456 EXPECT_EQ(5, platformGestureBuilder.area().height()); 472 IntSize area = flooredIntSize(scaledGestureEvent.tapAreaInRootFrame());
473 EXPECT_EQ(5, area.width());
474 EXPECT_EQ(5, area.height());
457 } 475 }
458 476
459 { 477 {
460 WebTouchEvent webTouchEvent; 478 WebTouchEvent webTouchEvent;
461 webTouchEvent.type = WebInputEvent::TouchMove; 479 webTouchEvent.type = WebInputEvent::TouchMove;
462 webTouchEvent.touchesLength = 1; 480 webTouchEvent.touchesLength = 1;
463 webTouchEvent.touches[0].state = WebTouchPoint::StateMoved; 481 webTouchEvent.touches[0].state = WebTouchPoint::StateMoved;
464 webTouchEvent.touches[0].screenPosition.x = 10.6f; 482 webTouchEvent.touches[0].screenPosition.x = 10.6f;
465 webTouchEvent.touches[0].screenPosition.y = 10.4f; 483 webTouchEvent.touches[0].screenPosition.y = 10.4f;
466 webTouchEvent.touches[0].position.x = 10.6f; 484 webTouchEvent.touches[0].position.x = 10.6f;
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
513 WebPointerProperties::Button::NoButton, PlatformEvent::MouseMoved, 1, 531 WebPointerProperties::Button::NoButton, PlatformEvent::MouseMoved, 1,
514 PlatformEvent::NoModifiers, PlatformMouseEvent::RealOrIndistinguishable, 532 PlatformEvent::NoModifiers, PlatformMouseEvent::RealOrIndistinguishable,
515 0); 533 0);
516 MouseEvent* mouseEvent = MouseEvent::create( 534 MouseEvent* mouseEvent = MouseEvent::create(
517 EventTypeNames::mousemove, domWindow, platformMouseEvent, 0, document); 535 EventTypeNames::mousemove, domWindow, platformMouseEvent, 0, document);
518 WebMouseEventBuilder webMouseBuilder(view, documentLayoutView, *mouseEvent); 536 WebMouseEventBuilder webMouseBuilder(view, documentLayoutView, *mouseEvent);
519 EXPECT_EQ(WebMouseEvent::Button::NoButton, webMouseBuilder.button); 537 EXPECT_EQ(WebMouseEvent::Button::NoButton, webMouseBuilder.button);
520 } 538 }
521 539
522 { 540 {
523 PlatformGestureEvent platformGestureEvent(
524 PlatformEvent::GestureScrollUpdate, IntPoint(10, 12), IntPoint(20, 22),
525 IntSize(25, 27), 0, PlatformEvent::NoModifiers,
526 PlatformGestureSourceTouchscreen);
527 platformGestureEvent.setScrollGestureData(30, 32, ScrollByPrecisePixel, 40,
528 42, ScrollInertialPhaseMomentum,
529 true, -1 /* null plugin id */);
530 // FIXME: GestureEvent does not preserve velocityX, velocityY,
531 // or preventPropagation. It also fails to scale
532 // coordinates (x, y, deltaX, deltaY) to the page scale. This
533 // may lead to unexpected bugs if a PlatformGestureEvent is
534 // transformed into WebGestureEvent and back.
535 GestureEvent* gestureEvent =
536 GestureEvent::create(domWindow, platformGestureEvent);
537 WebGestureEventBuilder webGestureBuilder(documentLayoutView, *gestureEvent);
538
539 EXPECT_EQ(10, webGestureBuilder.x);
540 EXPECT_EQ(12, webGestureBuilder.y);
541 EXPECT_EQ(20, webGestureBuilder.globalX);
542 EXPECT_EQ(22, webGestureBuilder.globalY);
543 EXPECT_EQ(30, webGestureBuilder.data.scrollUpdate.deltaX);
544 EXPECT_EQ(32, webGestureBuilder.data.scrollUpdate.deltaY);
545 EXPECT_EQ(0, webGestureBuilder.data.scrollUpdate.velocityX);
546 EXPECT_EQ(0, webGestureBuilder.data.scrollUpdate.velocityY);
547 EXPECT_EQ(WebGestureEvent::MomentumPhase,
548 webGestureBuilder.data.scrollUpdate.inertialPhase);
549 EXPECT_FALSE(webGestureBuilder.data.scrollUpdate.preventPropagation);
550 EXPECT_EQ(WebGestureDeviceTouchscreen, webGestureBuilder.sourceDevice);
551 }
552
553 {
554 Touch* touch = 541 Touch* touch =
555 Touch::create(toLocalFrame(webViewImpl->page()->mainFrame()), document, 542 Touch::create(toLocalFrame(webViewImpl->page()->mainFrame()), document,
556 0, FloatPoint(10, 9.5), FloatPoint(3.5, 2), 543 0, FloatPoint(10, 9.5), FloatPoint(3.5, 2),
557 FloatSize(4, 4.5), 0, 0, String()); 544 FloatSize(4, 4.5), 0, 0, String());
558 TouchList* touchList = TouchList::create(); 545 TouchList* touchList = TouchList::create();
559 touchList->append(touch); 546 touchList->append(touch);
560 TouchEvent* touchEvent = TouchEvent::create( 547 TouchEvent* touchEvent = TouchEvent::create(
561 touchList, touchList, touchList, EventTypeNames::touchmove, domWindow, 548 touchList, touchList, touchList, EventTypeNames::touchmove, domWindow,
562 PlatformEvent::NoModifiers, false, false, true, 0, TouchActionAuto); 549 PlatformEvent::NoModifiers, false, false, true, 0, TouchActionAuto);
563 550
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
661 WebGestureEvent webGestureEvent; 648 WebGestureEvent webGestureEvent;
662 webGestureEvent.type = WebInputEvent::GestureScrollUpdate; 649 webGestureEvent.type = WebInputEvent::GestureScrollUpdate;
663 webGestureEvent.sourceDevice = WebGestureDeviceTouchscreen; 650 webGestureEvent.sourceDevice = WebGestureDeviceTouchscreen;
664 webGestureEvent.x = 100; 651 webGestureEvent.x = 100;
665 webGestureEvent.y = 110; 652 webGestureEvent.y = 110;
666 webGestureEvent.globalX = 100; 653 webGestureEvent.globalX = 100;
667 webGestureEvent.globalY = 110; 654 webGestureEvent.globalY = 110;
668 webGestureEvent.data.scrollUpdate.deltaX = 60; 655 webGestureEvent.data.scrollUpdate.deltaX = 60;
669 webGestureEvent.data.scrollUpdate.deltaY = 60; 656 webGestureEvent.data.scrollUpdate.deltaY = 60;
670 657
671 PlatformGestureEventBuilder platformGestureBuilder(view, webGestureEvent); 658 WebGestureEvent scaledGestureEvent =
672 EXPECT_EQ(30, platformGestureBuilder.position().x()); 659 ScaleWebGestureEvent(view, webGestureEvent);
673 EXPECT_EQ(30, platformGestureBuilder.position().y()); 660 FloatPoint position = scaledGestureEvent.positionInRootFrame();
674 EXPECT_EQ(100, platformGestureBuilder.globalPosition().x()); 661
675 EXPECT_EQ(110, platformGestureBuilder.globalPosition().y()); 662 EXPECT_FLOAT_EQ(30, position.x());
676 EXPECT_EQ(20, platformGestureBuilder.deltaX()); 663 EXPECT_FLOAT_EQ(30, position.y());
677 EXPECT_EQ(20, platformGestureBuilder.deltaY()); 664 EXPECT_EQ(100, scaledGestureEvent.globalX);
665 EXPECT_EQ(110, scaledGestureEvent.globalY);
666 EXPECT_EQ(20, scaledGestureEvent.deltaXInRootFrame());
667 EXPECT_EQ(20, scaledGestureEvent.deltaYInRootFrame());
678 } 668 }
679 669
680 { 670 {
681 WebGestureEvent webGestureEvent; 671 WebGestureEvent webGestureEvent;
682 webGestureEvent.type = WebInputEvent::GestureTap; 672 webGestureEvent.type = WebInputEvent::GestureTap;
683 webGestureEvent.sourceDevice = WebGestureDeviceTouchscreen; 673 webGestureEvent.sourceDevice = WebGestureDeviceTouchscreen;
684 webGestureEvent.data.tap.width = 30; 674 webGestureEvent.data.tap.width = 30;
685 webGestureEvent.data.tap.height = 30; 675 webGestureEvent.data.tap.height = 30;
686 676
687 PlatformGestureEventBuilder platformGestureBuilder(view, webGestureEvent); 677 WebGestureEvent scaledGestureEvent =
688 EXPECT_EQ(10, platformGestureBuilder.area().width()); 678 ScaleWebGestureEvent(view, webGestureEvent);
689 EXPECT_EQ(10, platformGestureBuilder.area().height()); 679 IntSize area = flooredIntSize(scaledGestureEvent.tapAreaInRootFrame());
680 EXPECT_EQ(10, area.width());
681 EXPECT_EQ(10, area.height());
690 } 682 }
691 683
692 { 684 {
693 WebGestureEvent webGestureEvent; 685 WebGestureEvent webGestureEvent;
694 webGestureEvent.type = WebInputEvent::GestureTapUnconfirmed; 686 webGestureEvent.type = WebInputEvent::GestureTapUnconfirmed;
695 webGestureEvent.sourceDevice = WebGestureDeviceTouchscreen; 687 webGestureEvent.sourceDevice = WebGestureDeviceTouchscreen;
696 webGestureEvent.data.tap.width = 30; 688 webGestureEvent.data.tap.width = 30;
697 webGestureEvent.data.tap.height = 30; 689 webGestureEvent.data.tap.height = 30;
698 690
699 PlatformGestureEventBuilder platformGestureBuilder(view, webGestureEvent); 691 WebGestureEvent scaledGestureEvent =
700 EXPECT_EQ(10, platformGestureBuilder.area().width()); 692 ScaleWebGestureEvent(view, webGestureEvent);
701 EXPECT_EQ(10, platformGestureBuilder.area().height()); 693 IntSize area = flooredIntSize(scaledGestureEvent.tapAreaInRootFrame());
694 EXPECT_EQ(10, area.width());
695 EXPECT_EQ(10, area.height());
702 } 696 }
703 697
704 { 698 {
705 WebGestureEvent webGestureEvent; 699 WebGestureEvent webGestureEvent;
706 webGestureEvent.type = WebInputEvent::GestureTapDown; 700 webGestureEvent.type = WebInputEvent::GestureTapDown;
707 webGestureEvent.sourceDevice = WebGestureDeviceTouchscreen; 701 webGestureEvent.sourceDevice = WebGestureDeviceTouchscreen;
708 webGestureEvent.data.tapDown.width = 30; 702 webGestureEvent.data.tapDown.width = 30;
709 webGestureEvent.data.tapDown.height = 30; 703 webGestureEvent.data.tapDown.height = 30;
710 704
711 PlatformGestureEventBuilder platformGestureBuilder(view, webGestureEvent); 705 WebGestureEvent scaledGestureEvent =
712 EXPECT_EQ(10, platformGestureBuilder.area().width()); 706 ScaleWebGestureEvent(view, webGestureEvent);
713 EXPECT_EQ(10, platformGestureBuilder.area().height()); 707 IntSize area = flooredIntSize(scaledGestureEvent.tapAreaInRootFrame());
708 EXPECT_EQ(10, area.width());
709 EXPECT_EQ(10, area.height());
714 } 710 }
715 711
716 { 712 {
717 WebGestureEvent webGestureEvent; 713 WebGestureEvent webGestureEvent;
718 webGestureEvent.type = WebInputEvent::GestureShowPress; 714 webGestureEvent.type = WebInputEvent::GestureShowPress;
719 webGestureEvent.sourceDevice = WebGestureDeviceTouchscreen; 715 webGestureEvent.sourceDevice = WebGestureDeviceTouchscreen;
720 webGestureEvent.data.showPress.width = 30; 716 webGestureEvent.data.showPress.width = 30;
721 webGestureEvent.data.showPress.height = 30; 717 webGestureEvent.data.showPress.height = 30;
722 718
723 PlatformGestureEventBuilder platformGestureBuilder(view, webGestureEvent); 719 WebGestureEvent scaledGestureEvent =
724 EXPECT_EQ(10, platformGestureBuilder.area().width()); 720 ScaleWebGestureEvent(view, webGestureEvent);
725 EXPECT_EQ(10, platformGestureBuilder.area().height()); 721 IntSize area = flooredIntSize(scaledGestureEvent.tapAreaInRootFrame());
722 EXPECT_EQ(10, area.width());
723 EXPECT_EQ(10, area.height());
726 } 724 }
727 725
728 { 726 {
729 WebGestureEvent webGestureEvent; 727 WebGestureEvent webGestureEvent;
730 webGestureEvent.type = WebInputEvent::GestureLongPress; 728 webGestureEvent.type = WebInputEvent::GestureLongPress;
731 webGestureEvent.sourceDevice = WebGestureDeviceTouchscreen; 729 webGestureEvent.sourceDevice = WebGestureDeviceTouchscreen;
732 webGestureEvent.data.longPress.width = 30; 730 webGestureEvent.data.longPress.width = 30;
733 webGestureEvent.data.longPress.height = 30; 731 webGestureEvent.data.longPress.height = 30;
734 732
735 PlatformGestureEventBuilder platformGestureBuilder(view, webGestureEvent); 733 WebGestureEvent scaledGestureEvent =
736 EXPECT_EQ(10, platformGestureBuilder.area().width()); 734 ScaleWebGestureEvent(view, webGestureEvent);
737 EXPECT_EQ(10, platformGestureBuilder.area().height()); 735 IntSize area = flooredIntSize(scaledGestureEvent.tapAreaInRootFrame());
736 EXPECT_EQ(10, area.width());
737 EXPECT_EQ(10, area.height());
738 } 738 }
739 739
740 { 740 {
741 WebGestureEvent webGestureEvent; 741 WebGestureEvent webGestureEvent;
742 webGestureEvent.type = WebInputEvent::GestureTwoFingerTap; 742 webGestureEvent.type = WebInputEvent::GestureTwoFingerTap;
743 webGestureEvent.sourceDevice = WebGestureDeviceTouchscreen; 743 webGestureEvent.sourceDevice = WebGestureDeviceTouchscreen;
744 webGestureEvent.data.twoFingerTap.firstFingerWidth = 30; 744 webGestureEvent.data.twoFingerTap.firstFingerWidth = 30;
745 webGestureEvent.data.twoFingerTap.firstFingerHeight = 30; 745 webGestureEvent.data.twoFingerTap.firstFingerHeight = 30;
746 746
747 PlatformGestureEventBuilder platformGestureBuilder(view, webGestureEvent); 747 WebGestureEvent scaledGestureEvent =
748 EXPECT_EQ(10, platformGestureBuilder.area().width()); 748 ScaleWebGestureEvent(view, webGestureEvent);
749 EXPECT_EQ(10, platformGestureBuilder.area().height()); 749 IntSize area = flooredIntSize(scaledGestureEvent.tapAreaInRootFrame());
750 EXPECT_EQ(10, area.width());
751 EXPECT_EQ(10, area.height());
750 } 752 }
751 753
752 { 754 {
753 WebTouchEvent webTouchEvent; 755 WebTouchEvent webTouchEvent;
754 webTouchEvent.type = WebInputEvent::TouchMove; 756 webTouchEvent.type = WebInputEvent::TouchMove;
755 webTouchEvent.touchesLength = 1; 757 webTouchEvent.touchesLength = 1;
756 webTouchEvent.touches[0].state = WebTouchPoint::StateMoved; 758 webTouchEvent.touches[0].state = WebTouchPoint::StateMoved;
757 webTouchEvent.touches[0].screenPosition.x = 100; 759 webTouchEvent.touches[0].screenPosition.x = 100;
758 webTouchEvent.touches[0].screenPosition.y = 110; 760 webTouchEvent.touches[0].screenPosition.y = 110;
759 webTouchEvent.touches[0].position.x = 100; 761 webTouchEvent.touches[0].position.x = 100;
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
821 WebString::fromUTF8("fixed_layout.html")); 823 WebString::fromUTF8("fixed_layout.html"));
822 FrameTestHelpers::WebViewHelper webViewHelper; 824 FrameTestHelpers::WebViewHelper webViewHelper;
823 WebViewImpl* webViewImpl = 825 WebViewImpl* webViewImpl =
824 webViewHelper.initializeAndLoad(baseURL + fileName, true); 826 webViewHelper.initializeAndLoad(baseURL + fileName, true);
825 int pageWidth = 640; 827 int pageWidth = 640;
826 int pageHeight = 480; 828 int pageHeight = 480;
827 webViewImpl->resize(WebSize(pageWidth, pageHeight)); 829 webViewImpl->resize(WebSize(pageWidth, pageHeight));
828 webViewImpl->updateAllLifecyclePhases(); 830 webViewImpl->updateAllLifecyclePhases();
829 831
830 FrameView* view = toLocalFrame(webViewImpl->page()->mainFrame())->view(); 832 FrameView* view = toLocalFrame(webViewImpl->page()->mainFrame())->view();
831 Document* document =
832 toLocalFrame(webViewImpl->page()->mainFrame())->document();
833 LocalDOMWindow* domWindow = document->domWindow();
834 LayoutViewItem documentLayoutView = document->layoutViewItem();
835
836 { 833 {
837 WebGestureEvent webGestureEvent; 834 WebGestureEvent webGestureEvent;
838 webGestureEvent.type = WebInputEvent::GestureTap; 835 webGestureEvent.type = WebInputEvent::GestureTap;
839 webGestureEvent.sourceDevice = WebGestureDeviceTouchscreen; 836 webGestureEvent.sourceDevice = WebGestureDeviceTouchscreen;
840 webGestureEvent.x = 10; 837 webGestureEvent.x = 10;
841 webGestureEvent.y = 10; 838 webGestureEvent.y = 10;
842 webGestureEvent.globalX = 10; 839 webGestureEvent.globalX = 10;
843 webGestureEvent.globalY = 10; 840 webGestureEvent.globalY = 10;
844 webGestureEvent.data.tap.tapCount = 1; 841 webGestureEvent.data.tap.tapCount = 1;
845 webGestureEvent.data.tap.width = 10; 842 webGestureEvent.data.tap.width = 10;
846 webGestureEvent.data.tap.height = 10; 843 webGestureEvent.data.tap.height = 10;
847 844
848 PlatformGestureEventBuilder platformGestureBuilder(view, webGestureEvent); 845 WebGestureEvent scaledGestureEvent =
849 EXPECT_EQ(10.f, platformGestureBuilder.position().x()); 846 ScaleWebGestureEvent(view, webGestureEvent);
850 EXPECT_EQ(10.f, platformGestureBuilder.position().y()); 847 IntPoint position =
851 EXPECT_EQ(10.f, platformGestureBuilder.globalPosition().x()); 848 flooredIntPoint(scaledGestureEvent.positionInRootFrame());
852 EXPECT_EQ(10.f, platformGestureBuilder.globalPosition().y()); 849 EXPECT_EQ(10.f, position.x());
853 EXPECT_EQ(1, platformGestureBuilder.tapCount()); 850 EXPECT_EQ(10.f, position.y());
854 851 EXPECT_EQ(10.f, scaledGestureEvent.globalX);
855 GestureEvent* coreGestureEvent = 852 EXPECT_EQ(10.f, scaledGestureEvent.globalY);
856 GestureEvent::create(domWindow, platformGestureBuilder); 853 EXPECT_EQ(1, scaledGestureEvent.tapCount());
857 WebGestureEventBuilder recreatedWebGestureEvent(documentLayoutView,
858 *coreGestureEvent);
859 EXPECT_EQ(webGestureEvent.type, recreatedWebGestureEvent.type);
860 EXPECT_EQ(webGestureEvent.x, recreatedWebGestureEvent.x);
861 EXPECT_EQ(webGestureEvent.y, recreatedWebGestureEvent.y);
862 EXPECT_EQ(webGestureEvent.globalX, recreatedWebGestureEvent.globalX);
863 EXPECT_EQ(webGestureEvent.globalY, recreatedWebGestureEvent.globalY);
864 EXPECT_EQ(webGestureEvent.data.tap.tapCount,
865 recreatedWebGestureEvent.data.tap.tapCount);
866 } 854 }
867 } 855 }
868 856
869 TEST(WebInputEventConversionTest, VisualViewportOffset) { 857 TEST(WebInputEventConversionTest, VisualViewportOffset) {
870 const std::string baseURL("http://www.test4.com/"); 858 const std::string baseURL("http://www.test4.com/");
871 const std::string fileName("fixed_layout.html"); 859 const std::string fileName("fixed_layout.html");
872 860
873 URLTestHelpers::registerMockedURLFromBaseURL( 861 URLTestHelpers::registerMockedURLFromBaseURL(
874 WebString::fromUTF8(baseURL.c_str()), 862 WebString::fromUTF8(baseURL.c_str()),
875 WebString::fromUTF8("fixed_layout.html")); 863 WebString::fromUTF8("fixed_layout.html"));
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
924 912
925 { 913 {
926 WebGestureEvent webGestureEvent; 914 WebGestureEvent webGestureEvent;
927 webGestureEvent.type = WebInputEvent::GestureScrollUpdate; 915 webGestureEvent.type = WebInputEvent::GestureScrollUpdate;
928 webGestureEvent.sourceDevice = WebGestureDeviceTouchscreen; 916 webGestureEvent.sourceDevice = WebGestureDeviceTouchscreen;
929 webGestureEvent.x = 10; 917 webGestureEvent.x = 10;
930 webGestureEvent.y = 10; 918 webGestureEvent.y = 10;
931 webGestureEvent.globalX = 10; 919 webGestureEvent.globalX = 10;
932 webGestureEvent.globalY = 10; 920 webGestureEvent.globalY = 10;
933 921
934 PlatformGestureEventBuilder platformGestureBuilder(view, webGestureEvent); 922 WebGestureEvent scaledGestureEvent =
935 EXPECT_EQ(5 + visualOffset.x(), platformGestureBuilder.position().x()); 923 ScaleWebGestureEvent(view, webGestureEvent);
936 EXPECT_EQ(5 + visualOffset.y(), platformGestureBuilder.position().y()); 924 IntPoint position =
937 EXPECT_EQ(10, platformGestureBuilder.globalPosition().x()); 925 flooredIntPoint(scaledGestureEvent.positionInRootFrame());
938 EXPECT_EQ(10, platformGestureBuilder.globalPosition().y()); 926 EXPECT_EQ(5 + visualOffset.x(), position.x());
927 EXPECT_EQ(5 + visualOffset.y(), position.y());
928 EXPECT_EQ(10, scaledGestureEvent.globalX);
929 EXPECT_EQ(10, scaledGestureEvent.globalY);
939 } 930 }
940 931
941 { 932 {
942 WebTouchEvent webTouchEvent; 933 WebTouchEvent webTouchEvent;
943 webTouchEvent.type = WebInputEvent::TouchMove; 934 webTouchEvent.type = WebInputEvent::TouchMove;
944 webTouchEvent.touchesLength = 1; 935 webTouchEvent.touchesLength = 1;
945 webTouchEvent.touches[0].state = WebTouchPoint::StateMoved; 936 webTouchEvent.touches[0].state = WebTouchPoint::StateMoved;
946 webTouchEvent.touches[0].screenPosition.x = 10.6f; 937 webTouchEvent.touches[0].screenPosition.x = 10.6f;
947 webTouchEvent.touches[0].screenPosition.y = 10.4f; 938 webTouchEvent.touches[0].screenPosition.y = 10.4f;
948 webTouchEvent.touches[0].position.x = 10.6f; 939 webTouchEvent.touches[0].position.x = 10.6f;
(...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after
1245 EXPECT_EQ(platformWheelBuilder.getRailsMode(), 1236 EXPECT_EQ(platformWheelBuilder.getRailsMode(),
1246 PlatformEvent::RailsModeVertical); 1237 PlatformEvent::RailsModeVertical);
1247 #if OS(MACOSX) 1238 #if OS(MACOSX)
1248 EXPECT_EQ(PlatformWheelEventPhaseNone, platformWheelBuilder.phase()); 1239 EXPECT_EQ(PlatformWheelEventPhaseNone, platformWheelBuilder.phase());
1249 EXPECT_EQ(PlatformWheelEventPhaseNone, 1240 EXPECT_EQ(PlatformWheelEventPhaseNone,
1250 platformWheelBuilder.momentumPhase()); 1241 platformWheelBuilder.momentumPhase());
1251 #endif 1242 #endif
1252 } 1243 }
1253 } 1244 }
1254 1245
1255 TEST(WebInputEventConversionTest, PlatformGestureEventBuilder) {
1256 const std::string baseURL("http://www.test9.com/");
1257 const std::string fileName("fixed_layout.html");
1258
1259 URLTestHelpers::registerMockedURLFromBaseURL(
1260 WebString::fromUTF8(baseURL.c_str()),
1261 WebString::fromUTF8("fixed_layout.html"));
1262 FrameTestHelpers::WebViewHelper webViewHelper;
1263 WebViewImpl* webViewImpl =
1264 webViewHelper.initializeAndLoad(baseURL + fileName, true);
1265 int pageWidth = 640;
1266 int pageHeight = 480;
1267 webViewImpl->resize(WebSize(pageWidth, pageHeight));
1268 webViewImpl->updateAllLifecyclePhases();
1269
1270 FrameView* view = toLocalFrame(webViewImpl->page()->mainFrame())->view();
1271
1272 {
1273 WebGestureEvent webGestureEvent;
1274 webGestureEvent.type = WebInputEvent::GestureScrollBegin;
1275 webGestureEvent.x = 0;
1276 webGestureEvent.y = 5;
1277 webGestureEvent.globalX = 10;
1278 webGestureEvent.globalY = 15;
1279 webGestureEvent.sourceDevice = WebGestureDeviceTouchpad;
1280 webGestureEvent.resendingPluginId = 2;
1281 webGestureEvent.data.scrollBegin.inertialPhase =
1282 WebGestureEvent::MomentumPhase;
1283 webGestureEvent.data.scrollBegin.synthetic = true;
1284 webGestureEvent.data.scrollBegin.deltaXHint = 100;
1285 webGestureEvent.data.scrollBegin.deltaYHint = 10;
1286 webGestureEvent.data.scrollBegin.deltaHintUnits = WebGestureEvent::Pixels;
1287 webGestureEvent.uniqueTouchEventId = 12345U;
1288
1289 PlatformGestureEventBuilder platformGestureBuilder(view, webGestureEvent);
1290 EXPECT_EQ(PlatformGestureSourceTouchpad, platformGestureBuilder.source());
1291 EXPECT_EQ(2, platformGestureBuilder.resendingPluginId());
1292 EXPECT_EQ(0, platformGestureBuilder.position().x());
1293 EXPECT_EQ(5, platformGestureBuilder.position().y());
1294 EXPECT_EQ(10, platformGestureBuilder.globalPosition().x());
1295 EXPECT_EQ(15, platformGestureBuilder.globalPosition().y());
1296 EXPECT_EQ(ScrollInertialPhaseMomentum,
1297 platformGestureBuilder.inertialPhase());
1298 EXPECT_TRUE(platformGestureBuilder.synthetic());
1299 EXPECT_EQ(100, platformGestureBuilder.deltaX());
1300 EXPECT_EQ(10, platformGestureBuilder.deltaY());
1301 EXPECT_EQ(ScrollGranularity::ScrollByPixel,
1302 platformGestureBuilder.deltaUnits());
1303 EXPECT_EQ(12345U, platformGestureBuilder.uniqueTouchEventId());
1304 }
1305
1306 {
1307 WebGestureEvent webGestureEvent;
1308 webGestureEvent.type = WebInputEvent::GestureScrollEnd;
1309 webGestureEvent.x = 0;
1310 webGestureEvent.y = 5;
1311 webGestureEvent.globalX = 10;
1312 webGestureEvent.globalY = 15;
1313 webGestureEvent.sourceDevice = WebGestureDeviceTouchpad;
1314 webGestureEvent.resendingPluginId = 2;
1315 webGestureEvent.data.scrollEnd.inertialPhase =
1316 WebGestureEvent::NonMomentumPhase;
1317 webGestureEvent.data.scrollEnd.synthetic = true;
1318 webGestureEvent.data.scrollEnd.deltaUnits = WebGestureEvent::Page;
1319 webGestureEvent.uniqueTouchEventId = 12345U;
1320
1321 PlatformGestureEventBuilder platformGestureBuilder(view, webGestureEvent);
1322 EXPECT_EQ(PlatformGestureSourceTouchpad, platformGestureBuilder.source());
1323 EXPECT_EQ(2, platformGestureBuilder.resendingPluginId());
1324 EXPECT_EQ(0, platformGestureBuilder.position().x());
1325 EXPECT_EQ(5, platformGestureBuilder.position().y());
1326 EXPECT_EQ(10, platformGestureBuilder.globalPosition().x());
1327 EXPECT_EQ(15, platformGestureBuilder.globalPosition().y());
1328 EXPECT_EQ(ScrollInertialPhaseNonMomentum,
1329 platformGestureBuilder.inertialPhase());
1330 EXPECT_TRUE(platformGestureBuilder.synthetic());
1331 EXPECT_EQ(ScrollGranularity::ScrollByPage,
1332 platformGestureBuilder.deltaUnits());
1333 EXPECT_EQ(12345U, platformGestureBuilder.uniqueTouchEventId());
1334 }
1335 }
1336
1337 } // namespace blink 1246 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698