| // Copyright 2015 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 "cc/proto/skia_conversions.h" | 
 |  | 
 | #include <stddef.h> | 
 |  | 
 | #include "cc/proto/skregion.pb.h" | 
 | #include "cc/proto/skrrect.pb.h" | 
 | #include "cc/proto/skxfermode.pb.h" | 
 | #include "testing/gtest/include/gtest/gtest.h" | 
 | #include "third_party/skia/include/core/SkBlendMode.h" | 
 | #include "third_party/skia/include/core/SkRRect.h" | 
 |  | 
 | namespace cc { | 
 | namespace { | 
 |  | 
 | TEST(SkiaProtoConversionsTest, SerializeDeserializeSkXfermodeMode) { | 
 |   for (size_t i = 0; i < static_cast<size_t>(SkBlendMode::kLastMode); i++) { | 
 |     SkBlendMode mode = static_cast<SkBlendMode>(i); | 
 |     EXPECT_EQ(mode, SkXfermodeModeFromProto(SkXfermodeModeToProto(mode))); | 
 |   } | 
 | } | 
 |  | 
 | TEST(SkiaProtoConversionsTest, SerializeDeserializeSkRRect) { | 
 |   SkRect rect = SkRect::MakeXYWH(0, 10, 15, 20); | 
 |   SkVector radii[4]; | 
 |   radii[0] = SkVector::Make(0.1f, 0.2f); | 
 |   radii[1] = SkVector::Make(0.3f, 0.4f); | 
 |   radii[2] = SkVector::Make(0.5f, 0.6f); | 
 |   radii[3] = SkVector::Make(0.7f, 0.8f); | 
 |  | 
 |   SkRRect rrect; | 
 |   rrect.setRectRadii(rect, radii); | 
 |  | 
 |   // Test RRectToProto | 
 |   proto::SkRRect proto; | 
 |   SkRRectToProto(rrect, &proto); | 
 |   EXPECT_EQ(rrect.rect().x(), proto.rect().origin().x()); | 
 |   EXPECT_EQ(rrect.rect().y(), proto.rect().origin().y()); | 
 |   EXPECT_EQ(rrect.rect().width(), proto.rect().size().width()); | 
 |   EXPECT_EQ(rrect.rect().height(), proto.rect().size().height()); | 
 |  | 
 |   EXPECT_EQ(rrect.radii(SkRRect::kUpperLeft_Corner).x(), | 
 |             proto.radii_upper_left().x()); | 
 |   EXPECT_EQ(rrect.radii(SkRRect::kUpperLeft_Corner).y(), | 
 |             proto.radii_upper_left().y()); | 
 |   EXPECT_EQ(rrect.radii(SkRRect::kUpperRight_Corner).x(), | 
 |             proto.radii_upper_right().x()); | 
 |   EXPECT_EQ(rrect.radii(SkRRect::kUpperRight_Corner).y(), | 
 |             proto.radii_upper_right().y()); | 
 |   EXPECT_EQ(rrect.radii(SkRRect::kLowerRight_Corner).x(), | 
 |             proto.radii_lower_right().x()); | 
 |   EXPECT_EQ(rrect.radii(SkRRect::kLowerRight_Corner).y(), | 
 |             proto.radii_lower_right().y()); | 
 |   EXPECT_EQ(rrect.radii(SkRRect::kLowerLeft_Corner).x(), | 
 |             proto.radii_lower_left().x()); | 
 |   EXPECT_EQ(rrect.radii(SkRRect::kLowerLeft_Corner).y(), | 
 |             proto.radii_lower_left().y()); | 
 |  | 
 |   // Test ProtoToRRect | 
 |   EXPECT_EQ(rrect, ProtoToSkRRect(proto)); | 
 | } | 
 |  | 
 | }  // namespace | 
 | }  // namespace cc |