| // Copyright 2013 The Flutter 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 "flutter/lib/ui/window/pointer_data.h" | |
| #include <cstring> | |
| #include "gtest/gtest.h" | |
| #include "pointer_data_packet.h" | |
| namespace flutter { | |
| namespace testing { | |
| void CreateSimpleSimulatedPointerData(PointerData& data, // NOLINT | |
| PointerData::Change change, | |
| int64_t device, | |
| double dx, | |
| double dy, | |
| int64_t buttons) { | |
| data.time_stamp = 0; | |
| data.change = change; | |
| data.kind = PointerData::DeviceKind::kTouch; | |
| data.signal_kind = PointerData::SignalKind::kNone; | |
| data.device = device; | |
| data.pointer_identifier = 0; | |
| data.physical_x = dx; | |
| data.physical_y = dy; | |
| data.physical_delta_x = 0.0; | |
| data.physical_delta_y = 0.0; | |
| data.buttons = buttons; | |
| data.obscured = 0; | |
| data.synthesized = 0; | |
| data.pressure = 0.0; | |
| data.pressure_min = 0.0; | |
| data.pressure_max = 0.0; | |
| data.distance = 0.0; | |
| data.distance_max = 0.0; | |
| data.size = 0.0; | |
| data.radius_major = 0.0; | |
| data.radius_minor = 0.0; | |
| data.radius_min = 0.0; | |
| data.radius_max = 0.0; | |
| data.orientation = 0.0; | |
| data.tilt = 0.0; | |
| data.platformData = 0; | |
| data.scroll_delta_x = 0.0; | |
| data.scroll_delta_y = 0.0; | |
| } | |
| TEST(PointerDataPacketTest, CanGetPointerData) { | |
| auto packet = std::make_unique<PointerDataPacket>(1); | |
| PointerData data; | |
| CreateSimpleSimulatedPointerData(data, PointerData::Change::kAdd, 1, 2.0, 3.0, | |
| 4); | |
| packet->SetPointerData(0, data); | |
| PointerData data_recovered = packet->GetPointerData(0); | |
| ASSERT_EQ(data_recovered.physical_x, 2.0); | |
| ASSERT_EQ(data_recovered.physical_y, 3.0); | |
| } | |
| TEST(PointerDataPacketTest, CanGetLength) { | |
| auto packet = std::make_unique<PointerDataPacket>(6); | |
| ASSERT_EQ(packet->GetLength(), (size_t)6); | |
| } | |
| } // namespace testing | |
| } // namespace flutter |