OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 <memory> | 5 #include <memory> |
6 #include <vector> | 6 #include <vector> |
7 | 7 |
8 #include "base/logging.h" | 8 #include "base/logging.h" |
9 #include "blimp/common/proto/blimp_message.pb.h" | 9 #include "blimp/common/proto/blimp_message.pb.h" |
10 #include "blimp/common/proto/input.pb.h" | 10 #include "blimp/common/proto/input.pb.h" |
(...skipping 16 matching lines...) Expand all Loading... |
27 EXPECT_EQ(BlimpMessage::kInput, proto->feature_case()); | 27 EXPECT_EQ(BlimpMessage::kInput, proto->feature_case()); |
28 | 28 |
29 std::unique_ptr<blink::WebGestureEvent> new_event = | 29 std::unique_ptr<blink::WebGestureEvent> new_event = |
30 processor.ProcessMessage(proto->input()); | 30 processor.ProcessMessage(proto->input()); |
31 EXPECT_NE(nullptr, new_event.get()); | 31 EXPECT_NE(nullptr, new_event.get()); |
32 | 32 |
33 EXPECT_EQ(event.size, new_event->size); | 33 EXPECT_EQ(event.size, new_event->size); |
34 EXPECT_EQ(0, memcmp(&event, new_event.get(), event.size)); | 34 EXPECT_EQ(0, memcmp(&event, new_event.get(), event.size)); |
35 } | 35 } |
36 | 36 |
37 blink::WebGestureEvent BuildBaseTestEvent() { | 37 blink::WebGestureEvent BuildBaseTestEvent(blink::WebInputEvent::Type type) { |
38 blink::WebGestureEvent event; | 38 blink::WebGestureEvent event(type, blink::WebInputEvent::NoModifiers, |
39 event.timeStampSeconds = 1.23; | 39 blink::WebInputEvent::TimeStampForTesting); |
40 event.x = 2; | 40 event.x = 2; |
41 event.y = 3; | 41 event.y = 3; |
42 event.globalX = 4; | 42 event.globalX = 4; |
43 event.globalY = 5; | 43 event.globalY = 5; |
44 event.sourceDevice = blink::WebGestureDevice::WebGestureDeviceTouchscreen; | 44 event.sourceDevice = blink::WebGestureDevice::WebGestureDeviceTouchscreen; |
45 return event; | 45 return event; |
46 } | 46 } |
47 | 47 |
48 } // namespace | 48 } // namespace |
49 | 49 |
50 TEST(InputMessageTest, TestGestureScrollBeginRoundTrip) { | 50 TEST(InputMessageTest, TestGestureScrollBeginRoundTrip) { |
51 blink::WebGestureEvent event = BuildBaseTestEvent(); | 51 blink::WebGestureEvent event = |
52 event.type = blink::WebInputEvent::Type::GestureScrollBegin; | 52 BuildBaseTestEvent(blink::WebInputEvent::Type::GestureScrollBegin); |
53 event.data.scrollBegin.deltaXHint = 2.34f; | 53 event.data.scrollBegin.deltaXHint = 2.34f; |
54 event.data.scrollBegin.deltaYHint = 3.45f; | 54 event.data.scrollBegin.deltaYHint = 3.45f; |
55 event.data.scrollBegin.targetViewport = true; | 55 event.data.scrollBegin.targetViewport = true; |
56 ValidateWebGestureEventRoundTripping(event); | 56 ValidateWebGestureEventRoundTripping(event); |
57 } | 57 } |
58 | 58 |
59 TEST(InputMessageTest, TestGestureScrollEndRoundTrip) { | 59 TEST(InputMessageTest, TestGestureScrollEndRoundTrip) { |
60 blink::WebGestureEvent event = BuildBaseTestEvent(); | 60 blink::WebGestureEvent event = |
61 event.type = blink::WebInputEvent::Type::GestureScrollEnd; | 61 BuildBaseTestEvent(blink::WebInputEvent::Type::GestureScrollEnd); |
62 ValidateWebGestureEventRoundTripping(event); | 62 ValidateWebGestureEventRoundTripping(event); |
63 } | 63 } |
64 | 64 |
65 TEST(InputMessageTest, TestGestureScrollUpdateRoundTrip) { | 65 TEST(InputMessageTest, TestGestureScrollUpdateRoundTrip) { |
66 blink::WebGestureEvent event = BuildBaseTestEvent(); | 66 blink::WebGestureEvent event = |
67 event.type = blink::WebInputEvent::Type::GestureScrollUpdate; | 67 BuildBaseTestEvent(blink::WebInputEvent::Type::GestureScrollUpdate); |
68 event.data.scrollUpdate.deltaX = 2.34f; | 68 event.data.scrollUpdate.deltaX = 2.34f; |
69 event.data.scrollUpdate.deltaY = 3.45f; | 69 event.data.scrollUpdate.deltaY = 3.45f; |
70 event.data.scrollUpdate.velocityX = 4.56f; | 70 event.data.scrollUpdate.velocityX = 4.56f; |
71 event.data.scrollUpdate.velocityY = 5.67f; | 71 event.data.scrollUpdate.velocityY = 5.67f; |
72 event.data.scrollUpdate.previousUpdateInSequencePrevented = true; | 72 event.data.scrollUpdate.previousUpdateInSequencePrevented = true; |
73 event.data.scrollUpdate.preventPropagation = true; | 73 event.data.scrollUpdate.preventPropagation = true; |
74 event.data.scrollUpdate.inertialPhase = blink::WebGestureEvent::MomentumPhase; | 74 event.data.scrollUpdate.inertialPhase = blink::WebGestureEvent::MomentumPhase; |
75 ValidateWebGestureEventRoundTripping(event); | 75 ValidateWebGestureEventRoundTripping(event); |
76 } | 76 } |
77 | 77 |
78 TEST(InputMessageTest, TestGestureFlingStartRoundTrip) { | 78 TEST(InputMessageTest, TestGestureFlingStartRoundTrip) { |
79 blink::WebGestureEvent event = BuildBaseTestEvent(); | 79 blink::WebGestureEvent event = |
80 event.type = blink::WebInputEvent::Type::GestureFlingStart; | 80 BuildBaseTestEvent(blink::WebInputEvent::Type::GestureFlingStart); |
81 event.data.flingStart.velocityX = 2.34f; | 81 event.data.flingStart.velocityX = 2.34f; |
82 event.data.flingStart.velocityY = 3.45f; | 82 event.data.flingStart.velocityY = 3.45f; |
83 event.data.flingStart.targetViewport = true; | 83 event.data.flingStart.targetViewport = true; |
84 ValidateWebGestureEventRoundTripping(event); | 84 ValidateWebGestureEventRoundTripping(event); |
85 } | 85 } |
86 | 86 |
87 TEST(InputMessageTest, TestGestureFlingCancelRoundTrip) { | 87 TEST(InputMessageTest, TestGestureFlingCancelRoundTrip) { |
88 blink::WebGestureEvent event = BuildBaseTestEvent(); | 88 blink::WebGestureEvent event = |
89 event.type = blink::WebInputEvent::Type::GestureFlingCancel; | 89 BuildBaseTestEvent(blink::WebInputEvent::Type::GestureFlingCancel); |
90 event.data.flingCancel.preventBoosting = true; | 90 event.data.flingCancel.preventBoosting = true; |
91 ValidateWebGestureEventRoundTripping(event); | 91 ValidateWebGestureEventRoundTripping(event); |
92 } | 92 } |
93 | 93 |
94 TEST(InputMessageTest, TestGestureTapRoundTrip) { | 94 TEST(InputMessageTest, TestGestureTapRoundTrip) { |
95 blink::WebGestureEvent event = BuildBaseTestEvent(); | 95 blink::WebGestureEvent event = |
96 event.type = blink::WebGestureEvent::Type::GestureTap; | 96 BuildBaseTestEvent(blink::WebGestureEvent::Type::GestureTap); |
97 event.data.tap.tapCount = 3; | 97 event.data.tap.tapCount = 3; |
98 event.data.tap.width = 2.34f; | 98 event.data.tap.width = 2.34f; |
99 event.data.tap.height = 3.45f; | 99 event.data.tap.height = 3.45f; |
100 ValidateWebGestureEventRoundTripping(event); | 100 ValidateWebGestureEventRoundTripping(event); |
101 } | 101 } |
102 | 102 |
103 TEST(InputMessageTest, TestGesturePinchBeginRoundTrip) { | 103 TEST(InputMessageTest, TestGesturePinchBeginRoundTrip) { |
104 blink::WebGestureEvent event = BuildBaseTestEvent(); | 104 blink::WebGestureEvent event = |
105 event.type = blink::WebInputEvent::Type::GesturePinchBegin; | 105 BuildBaseTestEvent(blink::WebInputEvent::Type::GesturePinchBegin); |
106 ValidateWebGestureEventRoundTripping(event); | 106 ValidateWebGestureEventRoundTripping(event); |
107 } | 107 } |
108 | 108 |
109 TEST(InputMessageTest, TestGesturePinchEndRoundTrip) { | 109 TEST(InputMessageTest, TestGesturePinchEndRoundTrip) { |
110 blink::WebGestureEvent event = BuildBaseTestEvent(); | 110 blink::WebGestureEvent event = |
111 event.type = blink::WebInputEvent::Type::GesturePinchEnd; | 111 BuildBaseTestEvent(blink::WebInputEvent::Type::GesturePinchEnd); |
112 ValidateWebGestureEventRoundTripping(event); | 112 ValidateWebGestureEventRoundTripping(event); |
113 } | 113 } |
114 | 114 |
115 TEST(InputMessageTest, TestGesturePinchUpdateRoundTrip) { | 115 TEST(InputMessageTest, TestGesturePinchUpdateRoundTrip) { |
116 blink::WebGestureEvent event = BuildBaseTestEvent(); | 116 blink::WebGestureEvent event = |
117 event.type = blink::WebInputEvent::Type::GesturePinchUpdate; | 117 BuildBaseTestEvent(blink::WebInputEvent::Type::GesturePinchUpdate); |
118 event.data.pinchUpdate.zoomDisabled = true; | 118 event.data.pinchUpdate.zoomDisabled = true; |
119 event.data.pinchUpdate.scale = 2.34f; | 119 event.data.pinchUpdate.scale = 2.34f; |
120 ValidateWebGestureEventRoundTripping(event); | 120 ValidateWebGestureEventRoundTripping(event); |
121 } | 121 } |
122 | 122 |
123 TEST(InputMessageTest, TestUnsupportedInputEventSerializationFails) { | 123 TEST(InputMessageTest, TestUnsupportedInputEventSerializationFails) { |
124 // We currently do not support MouseWheel events. If that changes update | 124 // We currently do not support MouseWheel events. If that changes update |
125 // this test. | 125 // this test. |
126 blink::WebGestureEvent event; | 126 blink::WebGestureEvent event(blink::WebInputEvent::Type::MouseWheel, |
127 event.type = blink::WebInputEvent::Type::MouseWheel; | 127 blink::WebInputEvent::NoModifiers, |
| 128 blink::WebInputEvent::TimeStampForTesting); |
128 InputMessageGenerator generator; | 129 InputMessageGenerator generator; |
129 EXPECT_EQ(nullptr, generator.GenerateMessage(event).get()); | 130 EXPECT_EQ(nullptr, generator.GenerateMessage(event).get()); |
130 } | 131 } |
131 | 132 |
132 TEST(InputMessageConverterTest, TestTextInputTypeToProtoConversion) { | 133 TEST(InputMessageConverterTest, TestTextInputTypeToProtoConversion) { |
133 for (size_t i = ui::TextInputType::TEXT_INPUT_TYPE_TEXT; | 134 for (size_t i = ui::TextInputType::TEXT_INPUT_TYPE_TEXT; |
134 i < ui::TextInputType::TEXT_INPUT_TYPE_MAX; i++) { | 135 i < ui::TextInputType::TEXT_INPUT_TYPE_MAX; i++) { |
135 ui::TextInputType type = static_cast<ui::TextInputType>(i); | 136 ui::TextInputType type = static_cast<ui::TextInputType>(i); |
136 EXPECT_EQ(type, InputMessageConverter::TextInputTypeFromProto( | 137 EXPECT_EQ(type, InputMessageConverter::TextInputTypeFromProto( |
137 InputMessageConverter::TextInputTypeToProto(type))); | 138 InputMessageConverter::TextInputTypeToProto(type))); |
138 } | 139 } |
139 } | 140 } |
140 | 141 |
141 TEST(InputMessageTest, TestGestureTapDownRoundTrip) { | 142 TEST(InputMessageTest, TestGestureTapDownRoundTrip) { |
142 blink::WebGestureEvent event = BuildBaseTestEvent(); | 143 blink::WebGestureEvent event = |
143 event.type = blink::WebGestureEvent::Type::GestureTapDown; | 144 BuildBaseTestEvent(blink::WebGestureEvent::Type::GestureTapDown); |
144 event.data.tapDown.width = 2.3f; | 145 event.data.tapDown.width = 2.3f; |
145 event.data.tapDown.height = 3.4f; | 146 event.data.tapDown.height = 3.4f; |
146 ValidateWebGestureEventRoundTripping(event); | 147 ValidateWebGestureEventRoundTripping(event); |
147 } | 148 } |
148 | 149 |
149 TEST(InputMessageTest, TestGestureTapCancelRoundTrip) { | 150 TEST(InputMessageTest, TestGestureTapCancelRoundTrip) { |
150 blink::WebGestureEvent event = BuildBaseTestEvent(); | 151 blink::WebGestureEvent event = |
151 event.type = blink::WebGestureEvent::Type::GestureTapCancel; | 152 BuildBaseTestEvent(blink::WebGestureEvent::Type::GestureTapCancel); |
152 ValidateWebGestureEventRoundTripping(event); | 153 ValidateWebGestureEventRoundTripping(event); |
153 } | 154 } |
154 | 155 |
155 TEST(InputMessageTest, TestGestureTapUnconfirmedRoundTrip) { | 156 TEST(InputMessageTest, TestGestureTapUnconfirmedRoundTrip) { |
156 blink::WebGestureEvent event = BuildBaseTestEvent(); | 157 blink::WebGestureEvent event = |
157 event.type = blink::WebGestureEvent::Type::GestureTapUnconfirmed; | 158 BuildBaseTestEvent(blink::WebGestureEvent::Type::GestureTapUnconfirmed); |
158 event.data.tap.tapCount = 2; | 159 event.data.tap.tapCount = 2; |
159 event.data.tap.width = 2.3f; | 160 event.data.tap.width = 2.3f; |
160 event.data.tap.height = 3.4f; | 161 event.data.tap.height = 3.4f; |
161 ValidateWebGestureEventRoundTripping(event); | 162 ValidateWebGestureEventRoundTripping(event); |
162 } | 163 } |
163 | 164 |
164 TEST(InputMessageTest, TestGestureShowPressRoundTrip) { | 165 TEST(InputMessageTest, TestGestureShowPressRoundTrip) { |
165 blink::WebGestureEvent event = BuildBaseTestEvent(); | 166 blink::WebGestureEvent event = |
166 event.type = blink::WebGestureEvent::Type::GestureShowPress; | 167 BuildBaseTestEvent(blink::WebGestureEvent::Type::GestureShowPress); |
167 event.data.showPress.width = 2.3f; | 168 event.data.showPress.width = 2.3f; |
168 event.data.showPress.height = 3.4f; | 169 event.data.showPress.height = 3.4f; |
169 ValidateWebGestureEventRoundTripping(event); | 170 ValidateWebGestureEventRoundTripping(event); |
170 } | 171 } |
171 | 172 |
172 } // namespace blimp | 173 } // namespace blimp |
OLD | NEW |