| OLD | NEW |
| (Empty) |
| 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 | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "cc/proto/gfx_conversions.h" | |
| 6 | |
| 7 #include "cc/proto/point.pb.h" | |
| 8 #include "cc/proto/point3f.pb.h" | |
| 9 #include "cc/proto/pointf.pb.h" | |
| 10 #include "cc/proto/rect.pb.h" | |
| 11 #include "cc/proto/rectf.pb.h" | |
| 12 #include "cc/proto/scroll_offset.pb.h" | |
| 13 #include "cc/proto/size.pb.h" | |
| 14 #include "cc/proto/sizef.pb.h" | |
| 15 #include "cc/proto/transform.pb.h" | |
| 16 #include "cc/proto/vector2d.pb.h" | |
| 17 #include "cc/proto/vector2df.pb.h" | |
| 18 #include "testing/gtest/include/gtest/gtest.h" | |
| 19 #include "ui/gfx/geometry/point.h" | |
| 20 #include "ui/gfx/geometry/point3_f.h" | |
| 21 #include "ui/gfx/geometry/point_f.h" | |
| 22 #include "ui/gfx/geometry/rect.h" | |
| 23 #include "ui/gfx/geometry/rect_f.h" | |
| 24 #include "ui/gfx/geometry/scroll_offset.h" | |
| 25 #include "ui/gfx/geometry/size.h" | |
| 26 #include "ui/gfx/geometry/size_f.h" | |
| 27 #include "ui/gfx/geometry/vector2d_f.h" | |
| 28 #include "ui/gfx/transform.h" | |
| 29 | |
| 30 namespace cc { | |
| 31 namespace { | |
| 32 | |
| 33 TEST(GfxProtoConversionsTest, IntSerializationLimits) { | |
| 34 // Test Point with the minimum int value. | |
| 35 { | |
| 36 gfx::Point point(std::numeric_limits<int>::min(), | |
| 37 std::numeric_limits<int>::min()); | |
| 38 proto::Point proto; | |
| 39 PointToProto(point, &proto); | |
| 40 EXPECT_EQ(point, ProtoToPoint(proto)); | |
| 41 } | |
| 42 | |
| 43 // Test Point with the maximum int value. | |
| 44 { | |
| 45 gfx::Point point(std::numeric_limits<int>::max(), | |
| 46 std::numeric_limits<int>::max()); | |
| 47 proto::Point proto; | |
| 48 PointToProto(point, &proto); | |
| 49 EXPECT_EQ(point, ProtoToPoint(proto)); | |
| 50 } | |
| 51 | |
| 52 // Test Size with the minimum int value. | |
| 53 { | |
| 54 gfx::Size size(std::numeric_limits<int>::min(), | |
| 55 std::numeric_limits<int>::min()); | |
| 56 proto::Size proto; | |
| 57 SizeToProto(size, &proto); | |
| 58 EXPECT_EQ(size, ProtoToSize(proto)); | |
| 59 } | |
| 60 | |
| 61 // Test Size with the maximum int value. | |
| 62 { | |
| 63 gfx::Size size(std::numeric_limits<int>::max(), | |
| 64 std::numeric_limits<int>::max()); | |
| 65 proto::Size proto; | |
| 66 SizeToProto(size, &proto); | |
| 67 EXPECT_EQ(size, ProtoToSize(proto)); | |
| 68 } | |
| 69 } | |
| 70 | |
| 71 TEST(GfxProtoConversionsTest, SerializeDeserializePoint) { | |
| 72 const gfx::Point point(5, 10); | |
| 73 | |
| 74 // Test PointToProto | |
| 75 proto::Point proto; | |
| 76 PointToProto(point, &proto); | |
| 77 EXPECT_EQ(point.x(), proto.x()); | |
| 78 EXPECT_EQ(point.y(), proto.y()); | |
| 79 | |
| 80 // Test protoToPoint | |
| 81 EXPECT_EQ(point, ProtoToPoint(proto)); | |
| 82 } | |
| 83 | |
| 84 TEST(GfxProtoConversionsTest, SerializeDeserializePointF) { | |
| 85 const gfx::PointF point(5.1f, 10.2f); | |
| 86 | |
| 87 // Test PointFToProto | |
| 88 proto::PointF proto; | |
| 89 PointFToProto(point, &proto); | |
| 90 EXPECT_EQ(point.x(), proto.x()); | |
| 91 EXPECT_EQ(point.y(), proto.y()); | |
| 92 | |
| 93 // Test ProtoToPointF | |
| 94 EXPECT_EQ(point, ProtoToPointF(proto)); | |
| 95 } | |
| 96 | |
| 97 TEST(GfxProtoConversionsTest, SerializeDeserializePoint3F) { | |
| 98 const gfx::Point3F point(5.1f, 10.2f, 13.4f); | |
| 99 | |
| 100 // Test PointFToProto | |
| 101 proto::Point3F proto; | |
| 102 Point3FToProto(point, &proto); | |
| 103 EXPECT_EQ(point.x(), proto.x()); | |
| 104 EXPECT_EQ(point.y(), proto.y()); | |
| 105 EXPECT_EQ(point.z(), proto.z()); | |
| 106 | |
| 107 // Test ProtoToPoint3F | |
| 108 EXPECT_EQ(point, ProtoToPoint3F(proto)); | |
| 109 } | |
| 110 | |
| 111 TEST(GfxProtoConversionsTest, SerializeDeserializeSize) { | |
| 112 const gfx::Size size(5, 10); | |
| 113 | |
| 114 // Test SizeToProto | |
| 115 proto::Size proto; | |
| 116 SizeToProto(size, &proto); | |
| 117 EXPECT_EQ(size.width(), proto.width()); | |
| 118 EXPECT_EQ(size.height(), proto.height()); | |
| 119 | |
| 120 // Test ProtoToSize | |
| 121 EXPECT_EQ(size, ProtoToSize(proto)); | |
| 122 } | |
| 123 | |
| 124 TEST(GfxProtoConversionsTest, SerializeDeserializeSizeF) { | |
| 125 const gfx::SizeF size(5.1f, 10.2f); | |
| 126 | |
| 127 // Test SizeFToProto | |
| 128 proto::SizeF proto; | |
| 129 SizeFToProto(size, &proto); | |
| 130 EXPECT_EQ(size.width(), proto.width()); | |
| 131 EXPECT_EQ(size.height(), proto.height()); | |
| 132 | |
| 133 // Test ProtoToSizeF | |
| 134 EXPECT_EQ(size, ProtoToSizeF(proto)); | |
| 135 } | |
| 136 | |
| 137 TEST(GfxProtoConversionsTest, SerializeDeserializeRect) { | |
| 138 const gfx::Rect rect(1, 2, 3, 4); | |
| 139 | |
| 140 // Test RectToProto | |
| 141 proto::Rect proto; | |
| 142 RectToProto(rect, &proto); | |
| 143 EXPECT_EQ(rect.origin().x(), proto.origin().x()); | |
| 144 EXPECT_EQ(rect.origin().y(), proto.origin().y()); | |
| 145 EXPECT_EQ(rect.size().width(), proto.size().width()); | |
| 146 EXPECT_EQ(rect.size().height(), proto.size().height()); | |
| 147 | |
| 148 // Test ProtoToRect | |
| 149 EXPECT_EQ(rect, ProtoToRect(proto)); | |
| 150 } | |
| 151 | |
| 152 TEST(GfxProtoConversionsTest, SerializeDeserializeRectF) { | |
| 153 const gfx::RectF rect(1.4f, 2.3f, 3.2f, 4.1f); | |
| 154 | |
| 155 // Test RectFToProto | |
| 156 proto::RectF proto; | |
| 157 RectFToProto(rect, &proto); | |
| 158 EXPECT_EQ(rect.origin().x(), proto.origin().x()); | |
| 159 EXPECT_EQ(rect.origin().y(), proto.origin().y()); | |
| 160 EXPECT_EQ(rect.size().width(), proto.size().width()); | |
| 161 EXPECT_EQ(rect.size().height(), proto.size().height()); | |
| 162 | |
| 163 // Test ProtoToRectF | |
| 164 EXPECT_EQ(rect, ProtoToRectF(proto)); | |
| 165 } | |
| 166 | |
| 167 TEST(GfxProtoConversionsTest, SerializeDeserializeTransform) { | |
| 168 gfx::Transform transform(1.16f, 2.15f, 3.14f, 4.13f, 5.12f, 6.11f, 7.1f, 8.9f, | |
| 169 9.8f, 10.7f, 11.6f, 12.5f, 13.4f, 14.3f, 15.2f, | |
| 170 16.1f); | |
| 171 | |
| 172 // Test TransformToProto | |
| 173 proto::Transform proto; | |
| 174 TransformToProto(transform, &proto); | |
| 175 EXPECT_EQ(16, proto.matrix_size()); | |
| 176 EXPECT_EQ(transform.matrix().get(0, 0), proto.matrix(0)); | |
| 177 EXPECT_EQ(transform.matrix().get(0, 1), proto.matrix(1)); | |
| 178 EXPECT_EQ(transform.matrix().get(0, 2), proto.matrix(2)); | |
| 179 EXPECT_EQ(transform.matrix().get(0, 3), proto.matrix(3)); | |
| 180 EXPECT_EQ(transform.matrix().get(1, 0), proto.matrix(4)); | |
| 181 EXPECT_EQ(transform.matrix().get(1, 1), proto.matrix(5)); | |
| 182 EXPECT_EQ(transform.matrix().get(1, 2), proto.matrix(6)); | |
| 183 EXPECT_EQ(transform.matrix().get(1, 3), proto.matrix(7)); | |
| 184 EXPECT_EQ(transform.matrix().get(2, 0), proto.matrix(8)); | |
| 185 EXPECT_EQ(transform.matrix().get(2, 1), proto.matrix(9)); | |
| 186 EXPECT_EQ(transform.matrix().get(2, 2), proto.matrix(10)); | |
| 187 EXPECT_EQ(transform.matrix().get(2, 3), proto.matrix(11)); | |
| 188 EXPECT_EQ(transform.matrix().get(3, 0), proto.matrix(12)); | |
| 189 EXPECT_EQ(transform.matrix().get(3, 1), proto.matrix(13)); | |
| 190 EXPECT_EQ(transform.matrix().get(3, 2), proto.matrix(14)); | |
| 191 EXPECT_EQ(transform.matrix().get(3, 3), proto.matrix(15)); | |
| 192 | |
| 193 // Test ProtoToTransform | |
| 194 EXPECT_EQ(transform, ProtoToTransform(proto)); | |
| 195 | |
| 196 // Test for identity transforms. | |
| 197 gfx::Transform transform2; | |
| 198 EXPECT_TRUE(transform2.IsIdentity()); | |
| 199 proto::Transform proto2; | |
| 200 TransformToProto(transform2, &proto2); | |
| 201 EXPECT_EQ(transform2, ProtoToTransform(proto2)); | |
| 202 } | |
| 203 | |
| 204 TEST(GfxProtoConversionsTest, SerializeDeserializeVector2dF) { | |
| 205 // Test Case 1 | |
| 206 const gfx::Vector2dF vector1(5.1f, 10.2f); | |
| 207 | |
| 208 // Test Vector2dFToProto | |
| 209 proto::Vector2dF proto1; | |
| 210 Vector2dFToProto(vector1, &proto1); | |
| 211 EXPECT_EQ(vector1.x(), proto1.x()); | |
| 212 EXPECT_EQ(vector1.y(), proto1.y()); | |
| 213 | |
| 214 // Test ProtoToVector2dF | |
| 215 EXPECT_EQ(vector1, ProtoToVector2dF(proto1)); | |
| 216 | |
| 217 // Test Case 2 | |
| 218 const gfx::Vector2dF vector2(-3.1f, 0.2f); | |
| 219 | |
| 220 // Test Vector2dFToProto | |
| 221 proto::Vector2dF proto2; | |
| 222 Vector2dFToProto(vector2, &proto2); | |
| 223 EXPECT_EQ(vector2.x(), proto2.x()); | |
| 224 EXPECT_EQ(vector2.y(), proto2.y()); | |
| 225 | |
| 226 // Test ProtoToVector2dF | |
| 227 EXPECT_EQ(vector2, ProtoToVector2dF(proto2)); | |
| 228 | |
| 229 // Test Case 3 | |
| 230 const gfx::Vector2dF vector3(2.0f, -1.5f); | |
| 231 | |
| 232 // Test Vector2dFToProto | |
| 233 proto::Vector2dF proto3; | |
| 234 Vector2dFToProto(vector3, &proto3); | |
| 235 EXPECT_EQ(vector3.x(), proto3.x()); | |
| 236 EXPECT_EQ(vector3.y(), proto3.y()); | |
| 237 | |
| 238 // Test ProtoToVector2dF | |
| 239 EXPECT_EQ(vector3, ProtoToVector2dF(proto3)); | |
| 240 } | |
| 241 | |
| 242 TEST(GfxProtoConversionsTest, SerializeDeserializeScrollOffset) { | |
| 243 // Test Case 1 | |
| 244 const gfx::ScrollOffset scroll_offset1(5.1f, 10.2f); | |
| 245 | |
| 246 // Test ScrollOffsetToProto | |
| 247 proto::ScrollOffset proto1; | |
| 248 ScrollOffsetToProto(scroll_offset1, &proto1); | |
| 249 EXPECT_EQ(scroll_offset1.x(), proto1.x()); | |
| 250 EXPECT_EQ(scroll_offset1.y(), proto1.y()); | |
| 251 | |
| 252 // Test ProtoToScrollOffset | |
| 253 EXPECT_EQ(scroll_offset1, ProtoToScrollOffset(proto1)); | |
| 254 | |
| 255 // Test Case 2 | |
| 256 const gfx::ScrollOffset scroll_offset2(-0.1f, 0.2f); | |
| 257 | |
| 258 // Test ScrollOffsetToProto | |
| 259 proto::ScrollOffset proto2; | |
| 260 ScrollOffsetToProto(scroll_offset2, &proto2); | |
| 261 EXPECT_EQ(scroll_offset2.x(), proto2.x()); | |
| 262 EXPECT_EQ(scroll_offset2.y(), proto2.y()); | |
| 263 | |
| 264 // Test ProtoToScrollOffset | |
| 265 EXPECT_EQ(scroll_offset2, ProtoToScrollOffset(proto2)); | |
| 266 | |
| 267 // Test Case 3 | |
| 268 const gfx::ScrollOffset scroll_offset3(4.0f, -3.2f); | |
| 269 | |
| 270 // Test ScrollOffsetToProto | |
| 271 proto::ScrollOffset proto3; | |
| 272 ScrollOffsetToProto(scroll_offset3, &proto3); | |
| 273 EXPECT_EQ(scroll_offset3.x(), proto3.x()); | |
| 274 EXPECT_EQ(scroll_offset3.y(), proto3.y()); | |
| 275 | |
| 276 // Test ProtoToScrollOffset | |
| 277 EXPECT_EQ(scroll_offset3, ProtoToScrollOffset(proto3)); | |
| 278 } | |
| 279 | |
| 280 TEST(GfxProtoConversionsTest, SerializeDeserializeVector2d) { | |
| 281 const gfx::Vector2d vector(5, 10); | |
| 282 | |
| 283 // Test Vector2dToProto | |
| 284 proto::Vector2d proto; | |
| 285 Vector2dToProto(vector, &proto); | |
| 286 EXPECT_EQ(vector.x(), proto.x()); | |
| 287 EXPECT_EQ(vector.y(), proto.y()); | |
| 288 | |
| 289 // Test ProtoToVector2d | |
| 290 EXPECT_EQ(vector, ProtoToVector2d(proto)); | |
| 291 } | |
| 292 | |
| 293 } // namespace | |
| 294 } // namespace cc | |
| OLD | NEW |