Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(927)

Side by Side Diff: Source/core/animation/LengthPoint3DStyleInterpolationTest.cpp

Issue 851633002: Animation: Add template for ListStyleInterpolation (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Add else to shadowToInterpolableValue Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2014 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 "config.h"
6 #include "core/animation/LengthPoint3DStyleInterpolation.h"
7
8 #include "core/animation/LengthStyleInterpolation.h"
9 #include "core/css/CSSCalculationValue.h"
10 #include "core/css/StylePropertySet.h"
11
12 #include "stdio.h"
13
14 #include <gtest/gtest.h>
15
16 namespace blink {
17
18 class AnimationLengthPoint3DStyleInterpolationTest : public ::testing::Test {
19 protected:
20 static PassOwnPtrWillBeRawPtr<InterpolableValue> lengthPoint3DToInterpolable Value(const CSSValue& value)
21 {
22 return LengthPoint3DStyleInterpolation::lengthPoint3DtoInterpolableValue (value);
23 }
24
25 static PassRefPtrWillBeRawPtr<CSSValue> interpolableValueToLengthPoint3D(Int erpolableValue* value)
26 {
27 return LengthPoint3DStyleInterpolation::interpolableValueToLengthPoint3D (value);
28 }
29
30 static PassRefPtrWillBeRawPtr<CSSValue> roundTrip(PassRefPtrWillBeRawPtr<CSS Value> value)
31 {
32 return interpolableValueToLengthPoint3D(lengthPoint3DToInterpolableValue (*value).get());
33 }
34
35 static void testPrimitiveValue(RefPtrWillBeRawPtr<CSSValue> value, double x, double y, double z, CSSPrimitiveValue::UnitType unitTypeX, CSSPrimitiveValue::U nitType unitTypeY, CSSPrimitiveValue::UnitType unitTypeZ)
36 {
37 EXPECT_TRUE(value->isValueList());
38 if (unitTypeZ == CSSPrimitiveValue::CSS_UNKNOWN) {
39 const int sizeOfList = 2;
40 const CSSPrimitiveValue* length[sizeOfList] = {
41 toCSSPrimitiveValue(toCSSValueList(*value).item(0)),
42 toCSSPrimitiveValue(toCSSValueList(*value).item(1)) };
43
44 EXPECT_EQ(length[0]->getDoubleValue(), x);
45 EXPECT_EQ(length[1]->getDoubleValue(), y);
46
47 EXPECT_EQ(unitTypeX, length[0]->primitiveType());
48 EXPECT_EQ(unitTypeY, length[1]->primitiveType());
49 } else {
50 const int sizeOfList = 3;
51 const CSSPrimitiveValue* length[sizeOfList] = {
52 toCSSPrimitiveValue(toCSSValueList(*value).item(0)),
53 toCSSPrimitiveValue(toCSSValueList(*value).item(1)),
54 toCSSPrimitiveValue(toCSSValueList(*value).item(2)) };
55
56 EXPECT_EQ(length[0]->getDoubleValue(), x);
57 EXPECT_EQ(length[1]->getDoubleValue(), y);
58 EXPECT_EQ(length[2]->getDoubleValue(), z);
59
60 EXPECT_EQ(unitTypeX, length[0]->primitiveType());
61 EXPECT_EQ(unitTypeY, length[1]->primitiveType());
62 EXPECT_EQ(unitTypeZ, length[2]->primitiveType());
63 }
64 }
65 };
66
67 TEST_F(AnimationLengthPoint3DStyleInterpolationTest, MultipleValuePoint2D)
68 {
69 RefPtrWillBeRawPtr<CSSValueList> lengthPoint2DPx = CSSValueList::createComma Separated();
70 lengthPoint2DPx->append(CSSPrimitiveValue::create(10, CSSPrimitiveValue::CSS _PX));
71 lengthPoint2DPx->append(CSSPrimitiveValue::create(30, CSSPrimitiveValue::CSS _PERCENTAGE));
72 RefPtrWillBeRawPtr<CSSValue> value = roundTrip(lengthPoint2DPx.release());
73 testPrimitiveValue(value, 10, 30, 0, CSSPrimitiveValue::CSS_PX, CSSPrimitive Value::CSS_PERCENTAGE, CSSPrimitiveValue::CSS_UNKNOWN);
74 }
75
76 TEST_F(AnimationLengthPoint3DStyleInterpolationTest, ZeroPoint3D)
77 {
78 RefPtrWillBeRawPtr<CSSValueList> lengthPoint3D = CSSValueList::createCommaSe parated();
79 lengthPoint3D->append(CSSPrimitiveValue::create(0, CSSPrimitiveValue::CSS_PX ));
80 lengthPoint3D->append(CSSPrimitiveValue::create(0, CSSPrimitiveValue::CSS_EM S));
81 lengthPoint3D->append(CSSPrimitiveValue::create(0, CSSPrimitiveValue::CSS_PE RCENTAGE));
82 RefPtrWillBeRawPtr<CSSValue> value = roundTrip(lengthPoint3D.release());
83 testPrimitiveValue(value, 0, 0, 0, CSSPrimitiveValue::CSS_PX, CSSPrimitiveVa lue::CSS_EMS, CSSPrimitiveValue::CSS_PERCENTAGE);
84 }
85
86 TEST_F(AnimationLengthPoint3DStyleInterpolationTest, SingleUnitPoint3D)
87 {
88 RefPtrWillBeRawPtr<CSSValueList> lengthPoint3D = CSSValueList::createCommaSe parated();
89 lengthPoint3D->append(CSSPrimitiveValue::create(10, CSSPrimitiveValue::CSS_P X));
90 lengthPoint3D->append(CSSPrimitiveValue::create(10, CSSPrimitiveValue::CSS_P ERCENTAGE));
91 lengthPoint3D->append(CSSPrimitiveValue::create(10, CSSPrimitiveValue::CSS_E MS));
92 RefPtrWillBeRawPtr<CSSValue> value = roundTrip(lengthPoint3D.release());
93 testPrimitiveValue(value, 10, 10, 10, CSSPrimitiveValue::CSS_PX, CSSPrimitiv eValue::CSS_PERCENTAGE, CSSPrimitiveValue::CSS_EMS);
94 }
95
96 TEST_F(AnimationLengthPoint3DStyleInterpolationTest, MultipleValuePoint3D)
97 {
98 RefPtrWillBeRawPtr<CSSValueList> lengthPoint3DPx = CSSValueList::createComma Separated();
99 lengthPoint3DPx->append(CSSPrimitiveValue::create(10, CSSPrimitiveValue::CSS _PX));
100 lengthPoint3DPx->append(CSSPrimitiveValue::create(30, CSSPrimitiveValue::CSS _PERCENTAGE));
101 lengthPoint3DPx->append(CSSPrimitiveValue::create(20, CSSPrimitiveValue::CSS _EMS));
102 RefPtrWillBeRawPtr<CSSValue> value = roundTrip(lengthPoint3DPx.release());
103 testPrimitiveValue(value, 10, 30, 20, CSSPrimitiveValue::CSS_PX, CSSPrimitiv eValue::CSS_PERCENTAGE, CSSPrimitiveValue::CSS_EMS);
104 }
105
106 TEST_F(AnimationLengthPoint3DStyleInterpolationTest, NegativeValuePoint3D)
107 {
108 RefPtrWillBeRawPtr<CSSValueList> lengthPoint3DPx = CSSValueList::createComma Separated();
109 lengthPoint3DPx->append(CSSPrimitiveValue::create(-10, CSSPrimitiveValue::CS S_PX));
110 lengthPoint3DPx->append(CSSPrimitiveValue::create(-30, CSSPrimitiveValue::CS S_PERCENTAGE));
111 lengthPoint3DPx->append(CSSPrimitiveValue::create(-20, CSSPrimitiveValue::CS S_EMS));
112 RefPtrWillBeRawPtr<CSSValue> value = roundTrip(lengthPoint3DPx.release());
113 testPrimitiveValue(value, -10, -30, -20, CSSPrimitiveValue::CSS_PX, CSSPrimi tiveValue::CSS_PERCENTAGE, CSSPrimitiveValue::CSS_EMS);
114 }
115
116 }
OLDNEW
« no previous file with comments | « Source/core/animation/LengthPoint3DStyleInterpolation.cpp ('k') | Source/core/animation/LengthStyleInterpolation.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698