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