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

Unified Diff: content/common/input/web_input_event_traits_unittest.cc

Issue 1560553002: Framelet Prototype 2016 Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased + Applied Brett's Windows + Fixed security issue Created 4 years, 11 months 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/common/input/web_input_event_traits.cc ('k') | content/common/input/web_touch_event_traits.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/common/input/web_input_event_traits_unittest.cc
diff --git a/content/common/input/web_input_event_traits_unittest.cc b/content/common/input/web_input_event_traits_unittest.cc
deleted file mode 100644
index 6ae3d93661664f7aea47cdc41d5ae2e8f4d65b3e..0000000000000000000000000000000000000000
--- a/content/common/input/web_input_event_traits_unittest.cc
+++ /dev/null
@@ -1,236 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "content/common/input/web_input_event_traits.h"
-
-#include <limits>
-
-#include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/WebKit/public/web/WebInputEvent.h"
-
-using blink::WebGestureEvent;
-using blink::WebInputEvent;
-using blink::WebKeyboardEvent;
-using blink::WebMouseEvent;
-using blink::WebMouseWheelEvent;
-using blink::WebTouchEvent;
-using blink::WebTouchPoint;
-using std::numeric_limits;
-
-namespace content {
-namespace {
-
-class WebInputEventTraitsTest : public testing::Test {
- protected:
- static WebTouchPoint CreateTouchPoint(WebTouchPoint::State state, int id) {
- WebTouchPoint touch;
- touch.state = state;
- touch.id = id;
- return touch;
- }
-
- static WebTouchEvent CreateTouch(WebInputEvent::Type type) {
- return CreateTouch(type, 1);
- }
-
- static WebTouchEvent CreateTouch(WebInputEvent::Type type,
- unsigned touch_count) {
- WebTouchEvent event;
- event.touchesLength = touch_count;
- event.type = type;
- return event;
- }
-
- static WebGestureEvent CreateGesture(WebInputEvent::Type type,
- float x,
- float y) {
- WebGestureEvent event;
- event.type = type;
- event.x = x;
- event.y = y;
- return event;
- }
-
- static WebMouseWheelEvent CreateMouseWheel(float deltaX,
- float deltaY,
- bool canScroll) {
- WebMouseWheelEvent event;
- event.type = WebInputEvent::MouseWheel;
- event.deltaX = deltaX;
- event.deltaY = deltaY;
- event.canScroll = canScroll;
- return event;
- }
-};
-
-TEST_F(WebInputEventTraitsTest, TouchEventCoalescing) {
- WebTouchEvent touch0 = CreateTouch(WebInputEvent::TouchStart);
- WebTouchEvent touch1 = CreateTouch(WebInputEvent::TouchMove);
-
- // Non touch-moves won't coalesce.
- EXPECT_FALSE(WebInputEventTraits::CanCoalesce(touch0, touch0));
-
- // Touches of different types won't coalesce.
- EXPECT_FALSE(WebInputEventTraits::CanCoalesce(touch0, touch1));
-
- // Touch moves with idential touch lengths and touch ids should coalesce.
- EXPECT_TRUE(WebInputEventTraits::CanCoalesce(touch1, touch1));
-
- // Touch moves with different touch ids should not coalesce.
- touch0 = CreateTouch(WebInputEvent::TouchMove);
- touch1 = CreateTouch(WebInputEvent::TouchMove);
- touch0.touches[0].id = 7;
- EXPECT_FALSE(WebInputEventTraits::CanCoalesce(touch0, touch1));
- touch0 = CreateTouch(WebInputEvent::TouchMove, 2);
- touch1 = CreateTouch(WebInputEvent::TouchMove, 2);
- touch0.touches[0].id = 1;
- touch1.touches[0].id = 0;
- EXPECT_FALSE(WebInputEventTraits::CanCoalesce(touch0, touch1));
-
- // Touch moves with different touch lengths should not coalesce.
- touch0 = CreateTouch(WebInputEvent::TouchMove, 1);
- touch1 = CreateTouch(WebInputEvent::TouchMove, 2);
- EXPECT_FALSE(WebInputEventTraits::CanCoalesce(touch0, touch1));
-
- // Touch moves with identical touch ids in different orders should coalesce.
- touch0 = CreateTouch(WebInputEvent::TouchMove, 2);
- touch1 = CreateTouch(WebInputEvent::TouchMove, 2);
- touch0.touches[0] = touch1.touches[1] =
- CreateTouchPoint(WebTouchPoint::StateMoved, 1);
- touch0.touches[1] = touch1.touches[0] =
- CreateTouchPoint(WebTouchPoint::StateMoved, 0);
- EXPECT_TRUE(WebInputEventTraits::CanCoalesce(touch0, touch1));
-
- // Pointers with the same ID's should coalesce.
- touch0 = CreateTouch(WebInputEvent::TouchMove, 2);
- touch1 = CreateTouch(WebInputEvent::TouchMove, 2);
- touch0.touches[0] = touch1.touches[1] =
- CreateTouchPoint(WebTouchPoint::StateMoved, 1);
- WebInputEventTraits::Coalesce(touch0, &touch1);
- ASSERT_EQ(1, touch1.touches[0].id);
- ASSERT_EQ(0, touch1.touches[1].id);
- EXPECT_EQ(WebTouchPoint::StateUndefined, touch1.touches[1].state);
- EXPECT_EQ(WebTouchPoint::StateMoved, touch1.touches[0].state);
-
- // Movement from now-stationary pointers should be preserved.
- touch0 = touch1 = CreateTouch(WebInputEvent::TouchMove, 2);
- touch0.touches[0] = CreateTouchPoint(WebTouchPoint::StateMoved, 1);
- touch1.touches[1] = CreateTouchPoint(WebTouchPoint::StateStationary, 1);
- touch0.touches[1] = CreateTouchPoint(WebTouchPoint::StateStationary, 0);
- touch1.touches[0] = CreateTouchPoint(WebTouchPoint::StateMoved, 0);
- WebInputEventTraits::Coalesce(touch0, &touch1);
- ASSERT_EQ(1, touch1.touches[0].id);
- ASSERT_EQ(0, touch1.touches[1].id);
- EXPECT_EQ(WebTouchPoint::StateMoved, touch1.touches[0].state);
- EXPECT_EQ(WebTouchPoint::StateMoved, touch1.touches[1].state);
-}
-
-TEST_F(WebInputEventTraitsTest, PinchEventCoalescing) {
- WebGestureEvent pinch0 =
- CreateGesture(WebInputEvent::GesturePinchBegin, 1, 1);
- WebGestureEvent pinch1 =
- CreateGesture(WebInputEvent::GesturePinchUpdate, 2, 2);
-
- // Only GesturePinchUpdate's coalesce.
- EXPECT_FALSE(WebInputEventTraits::CanCoalesce(pinch0, pinch0));
-
- // Pinch gestures of different types should not coalesce.
- EXPECT_FALSE(WebInputEventTraits::CanCoalesce(pinch0, pinch1));
-
- // Pinches with different focal points should not coalesce.
- pinch0 = CreateGesture(WebInputEvent::GesturePinchUpdate, 1, 1);
- pinch1 = CreateGesture(WebInputEvent::GesturePinchUpdate, 2, 2);
- EXPECT_FALSE(WebInputEventTraits::CanCoalesce(pinch0, pinch1));
- EXPECT_TRUE(WebInputEventTraits::CanCoalesce(pinch0, pinch0));
-
- // Coalesced scales are multiplicative.
- pinch0 = CreateGesture(WebInputEvent::GesturePinchUpdate, 1, 1);
- pinch0.data.pinchUpdate.scale = 2.f;
- pinch1 = CreateGesture(WebInputEvent::GesturePinchUpdate, 1, 1);
- pinch1.data.pinchUpdate.scale = 3.f;
- EXPECT_TRUE(WebInputEventTraits::CanCoalesce(pinch0, pinch0));
- WebInputEventTraits::Coalesce(pinch0, &pinch1);
- EXPECT_EQ(2.f * 3.f, pinch1.data.pinchUpdate.scale);
-
- // Scales have a minimum value and can never reach 0.
- ASSERT_GT(numeric_limits<float>::min(), 0);
- pinch0 = CreateGesture(WebInputEvent::GesturePinchUpdate, 1, 1);
- pinch0.data.pinchUpdate.scale = numeric_limits<float>::min() * 2.0f;
- pinch1 = CreateGesture(WebInputEvent::GesturePinchUpdate, 1, 1);
- pinch1.data.pinchUpdate.scale = numeric_limits<float>::min() * 5.0f;
- EXPECT_TRUE(WebInputEventTraits::CanCoalesce(pinch0, pinch1));
- WebInputEventTraits::Coalesce(pinch0, &pinch1);
- EXPECT_EQ(numeric_limits<float>::min(), pinch1.data.pinchUpdate.scale);
-
- // Scales have a maximum value and can never reach Infinity.
- pinch0 = CreateGesture(WebInputEvent::GesturePinchUpdate, 1, 1);
- pinch0.data.pinchUpdate.scale = numeric_limits<float>::max() / 2.0f;
- pinch1 = CreateGesture(WebInputEvent::GesturePinchUpdate, 1, 1);
- pinch1.data.pinchUpdate.scale = 10.0f;
- EXPECT_TRUE(WebInputEventTraits::CanCoalesce(pinch0, pinch1));
- WebInputEventTraits::Coalesce(pinch0, &pinch1);
- EXPECT_EQ(numeric_limits<float>::max(), pinch1.data.pinchUpdate.scale);
-}
-
-TEST_F(WebInputEventTraitsTest, WebMouseWheelEventCoalescing) {
- WebMouseWheelEvent mouse_wheel_0 =
- CreateMouseWheel(1, 1, true);
- WebMouseWheelEvent mouse_wheel_1 =
- CreateMouseWheel(2, 2, true);
-
- // WebMouseWheelEvent objects with same values except different deltaX and
- // deltaY should coalesce.
- EXPECT_TRUE(WebInputEventTraits::CanCoalesce(mouse_wheel_0, mouse_wheel_1));
-
- mouse_wheel_0 = CreateMouseWheel(1, 1, true);
- mouse_wheel_1 = CreateMouseWheel(1, 1, false);
-
- // WebMouseWheelEvent objects with different canScroll values should not
- // coalesce.
- EXPECT_FALSE(WebInputEventTraits::CanCoalesce(mouse_wheel_0, mouse_wheel_1));
-
- // WebMouseWheelEvent objects with different modifiers should not coalesce.
- mouse_wheel_0 = CreateMouseWheel(1, 1, true);
- mouse_wheel_1 = CreateMouseWheel(1, 1, true);
- mouse_wheel_0.modifiers = blink::WebInputEvent::ControlKey;
- mouse_wheel_1.modifiers = blink::WebInputEvent::ShiftKey;
- EXPECT_FALSE(WebInputEventTraits::CanCoalesce(mouse_wheel_0, mouse_wheel_1));
-}
-
-// Coalescing preserves the newer timestamp.
-TEST_F(WebInputEventTraitsTest, TimestampCoalescing) {
- WebMouseWheelEvent mouse_wheel_0 = CreateMouseWheel(1, 1, true);
- mouse_wheel_0.timeStampSeconds = 5.0;
- WebMouseWheelEvent mouse_wheel_1 = CreateMouseWheel(2, 2, true);
- mouse_wheel_1.timeStampSeconds = 10.0;
-
- EXPECT_TRUE(WebInputEventTraits::CanCoalesce(mouse_wheel_0, mouse_wheel_1));
- WebInputEventTraits::Coalesce(mouse_wheel_1, &mouse_wheel_0);
- EXPECT_EQ(10.0, mouse_wheel_0.timeStampSeconds);
-}
-
-// Very basic smoke test to ensure stringification doesn't explode.
-TEST_F(WebInputEventTraitsTest, ToString) {
- WebKeyboardEvent key;
- key.type = WebInputEvent::RawKeyDown;
- EXPECT_FALSE(WebInputEventTraits::ToString(key).empty());
-
- WebMouseEvent mouse;
- mouse.type = WebInputEvent::MouseMove;
- EXPECT_FALSE(WebInputEventTraits::ToString(mouse).empty());
-
- WebMouseWheelEvent mouse_wheel;
- mouse_wheel.type = WebInputEvent::MouseWheel;
- EXPECT_FALSE(WebInputEventTraits::ToString(mouse_wheel).empty());
-
- WebGestureEvent gesture =
- CreateGesture(WebInputEvent::GesturePinchBegin, 1, 1);
- EXPECT_FALSE(WebInputEventTraits::ToString(gesture).empty());
-
- WebTouchEvent touch = CreateTouch(WebInputEvent::TouchStart);
- EXPECT_FALSE(WebInputEventTraits::ToString(touch).empty());
-}
-
-} // namespace
-} // namespace content
« no previous file with comments | « content/common/input/web_input_event_traits.cc ('k') | content/common/input/web_touch_event_traits.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698