OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2013, Google Inc. All rights reserved. | 2 * Copyright (c) 2013, Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 11 matching lines...) Expand all Loading... |
22 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | 22 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | 23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
29 */ | 29 */ |
30 | 30 |
31 #include "config.h" | 31 #include "config.h" |
32 #include "core/animation/AnimatableNumber.h" | 32 #include "core/animation/AnimatableLength.h" |
33 | 33 |
34 #include "core/css/CSSCalculationValue.h" | 34 #include "core/css/CSSCalculationValue.h" |
35 #include "core/css/CSSPrimitiveValue.h" | 35 #include "core/css/CSSPrimitiveValue.h" |
36 #include "core/platform/CalculationValue.h" | 36 #include "core/platform/CalculationValue.h" |
37 #include "core/rendering/style/RenderStyle.h" | 37 #include "core/rendering/style/RenderStyle.h" |
38 #include "core/rendering/style/StyleInheritedData.h" | 38 #include "core/rendering/style/StyleInheritedData.h" |
39 #include "wtf/MathExtras.h" | 39 #include "wtf/MathExtras.h" |
40 | 40 |
41 #include <gtest/gtest.h> | 41 #include <gtest/gtest.h> |
42 | 42 |
43 using namespace WebCore; | 43 using namespace WebCore; |
44 | 44 |
45 namespace { | 45 namespace { |
46 | 46 |
47 class AnimatableNumberTest : public ::testing::Test { | 47 class AnimatableLengthTest : public ::testing::Test { |
48 protected: | 48 protected: |
49 virtual void SetUp() | 49 virtual void SetUp() |
50 { | 50 { |
51 style = RenderStyle::createDefaultStyle(); | 51 style = RenderStyle::createDefaultStyle(); |
52 } | 52 } |
53 | 53 |
54 PassRefPtr<AnimatableNumber> create(double value) | 54 PassRefPtr<AnimatableLength> create(double value, CSSPrimitiveValue::UnitTyp
es type) |
55 { | 55 { |
56 return create(value, CSSPrimitiveValue::CSS_NUMBER); | 56 return AnimatableLength::create(CSSPrimitiveValue::create(value, type).g
et()); |
57 } | 57 } |
58 | 58 |
59 PassRefPtr<AnimatableNumber> create(double value, CSSPrimitiveValue::UnitTyp
es type) | 59 PassRefPtr<AnimatableLength> create(double valueLeft, CSSPrimitiveValue::Uni
tTypes typeLeft, double valueRight, CSSPrimitiveValue::UnitTypes typeRight) |
60 { | 60 { |
61 return AnimatableNumber::create(CSSPrimitiveValue::create(value, type).g
et()); | 61 return AnimatableLength::create(createCalc(valueLeft, typeLeft, valueRig
ht, typeRight).get()); |
62 } | |
63 | |
64 PassRefPtr<AnimatableNumber> create(double valueLeft, CSSPrimitiveValue::Uni
tTypes typeLeft, double valueRight, CSSPrimitiveValue::UnitTypes typeRight) | |
65 { | |
66 return AnimatableNumber::create(createCalc(valueLeft, typeLeft, valueRig
ht, typeRight).get()); | |
67 } | 62 } |
68 | 63 |
69 PassRefPtr<CSSCalcValue> createCalc(double valueLeft, CSSPrimitiveValue::Uni
tTypes typeLeft, double valueRight, CSSPrimitiveValue::UnitTypes typeRight) | 64 PassRefPtr<CSSCalcValue> createCalc(double valueLeft, CSSPrimitiveValue::Uni
tTypes typeLeft, double valueRight, CSSPrimitiveValue::UnitTypes typeRight) |
70 { | 65 { |
71 return CSSCalcValue::create(CSSCalcValue::createExpressionNode( | 66 return CSSCalcValue::create(CSSCalcValue::createExpressionNode( |
72 CSSCalcValue::createExpressionNode(CSSPrimitiveValue::create(valueLe
ft, typeLeft), valueLeft == trunc(valueLeft)), | 67 CSSCalcValue::createExpressionNode(CSSPrimitiveValue::create(valueLe
ft, typeLeft), valueLeft == trunc(valueLeft)), |
73 CSSCalcValue::createExpressionNode(CSSPrimitiveValue::create(valueRi
ght, typeRight), valueRight == trunc(valueRight)), | 68 CSSCalcValue::createExpressionNode(CSSPrimitiveValue::create(valueRi
ght, typeRight), valueRight == trunc(valueRight)), |
74 CalcAdd | 69 CalcAdd |
75 )); | 70 )); |
76 } | 71 } |
77 | 72 |
78 bool testToCSSValue(CSSValue* cssValue) | 73 bool testToCSSValue(CSSValue* cssValue) |
79 { | 74 { |
80 return testToCSSValue(cssValue, cssValue); | 75 return testToCSSValue(cssValue, cssValue); |
81 } | 76 } |
82 bool testToCSSValue(CSSValue* cssValueExpected, CSSValue* cssValue) | 77 bool testToCSSValue(CSSValue* cssValueExpected, CSSValue* cssValue) |
83 { | 78 { |
84 return AnimatableNumber::create(cssValue)->toCSSValue()->equals(*cssValu
eExpected); | 79 return AnimatableLength::create(cssValue)->toCSSValue()->equals(*cssValu
eExpected); |
85 } | 80 } |
86 bool testInterpolate(CSSValue* cssValueExpected, AnimatableNumber* numberA,
AnimatableNumber* numberB, double fraction) | 81 bool testInterpolate(CSSValue* cssValueExpected, AnimatableLength* numberA,
AnimatableLength* numberB, double fraction) |
87 { | 82 { |
88 return toAnimatableNumber(AnimatableValue::interpolate(numberA, numberB,
fraction).get())->toCSSValue()->equals(*cssValueExpected); | 83 return toAnimatableLength(AnimatableValue::interpolate(numberA, numberB,
fraction).get())->toCSSValue()->equals(*cssValueExpected); |
89 } | 84 } |
90 bool testAdd(CSSValue* cssValueExpected, AnimatableNumber* numberA, Animatab
leNumber* numberB) | 85 bool testAdd(CSSValue* cssValueExpected, AnimatableLength* numberA, Animatab
leLength* numberB) |
91 { | 86 { |
92 return toAnimatableNumber(AnimatableValue::add(numberA, numberB).get())-
>toCSSValue()->equals(*cssValueExpected); | 87 return toAnimatableLength(AnimatableValue::add(numberA, numberB).get())-
>toCSSValue()->equals(*cssValueExpected); |
93 } | 88 } |
94 | 89 |
95 RefPtr<RenderStyle> style; | 90 RefPtr<RenderStyle> style; |
96 }; | 91 }; |
97 | 92 |
98 TEST_F(AnimatableNumberTest, CanCreateFrom) | 93 TEST_F(AnimatableLengthTest, CanCreateFrom) |
99 { | 94 { |
100 EXPECT_TRUE(AnimatableNumber::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_NUMBER).get())); | 95 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_PX).get())); |
101 EXPECT_TRUE(AnimatableNumber::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_PX).get())); | 96 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_CM).get())); |
102 EXPECT_TRUE(AnimatableNumber::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_CM).get())); | 97 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_MM).get())); |
103 EXPECT_TRUE(AnimatableNumber::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_MM).get())); | 98 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_IN).get())); |
104 EXPECT_TRUE(AnimatableNumber::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_IN).get())); | 99 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_PT).get())); |
105 EXPECT_TRUE(AnimatableNumber::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_PT).get())); | 100 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_PC).get())); |
106 EXPECT_TRUE(AnimatableNumber::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_PC).get())); | 101 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_EMS).get())); |
107 EXPECT_TRUE(AnimatableNumber::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_EMS).get())); | 102 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_EXS).get())); |
108 EXPECT_TRUE(AnimatableNumber::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_EXS).get())); | 103 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_REMS).get())); |
109 EXPECT_TRUE(AnimatableNumber::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_REMS).get())); | 104 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_PERCENTAGE).get())); |
110 EXPECT_TRUE(AnimatableNumber::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_DEG).get())); | 105 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_VW).get())); |
111 EXPECT_TRUE(AnimatableNumber::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_RAD).get())); | 106 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_VH).get())); |
112 EXPECT_TRUE(AnimatableNumber::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_GRAD).get())); | 107 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_VMIN).get())); |
113 EXPECT_TRUE(AnimatableNumber::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_TURN).get())); | 108 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_VMAX).get())); |
114 EXPECT_TRUE(AnimatableNumber::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_PERCENTAGE).get())); | |
115 EXPECT_TRUE(AnimatableNumber::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_VW).get())); | |
116 EXPECT_TRUE(AnimatableNumber::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_VH).get())); | |
117 EXPECT_TRUE(AnimatableNumber::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_VMIN).get())); | |
118 EXPECT_TRUE(AnimatableNumber::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_VMAX).get())); | |
119 EXPECT_TRUE(AnimatableNumber::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_MS).get())); | |
120 EXPECT_TRUE(AnimatableNumber::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_S).get())); | |
121 EXPECT_TRUE(AnimatableNumber::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_HZ).get())); | |
122 EXPECT_TRUE(AnimatableNumber::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_KHZ).get())); | |
123 EXPECT_TRUE(AnimatableNumber::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_DPPX).get())); | |
124 EXPECT_TRUE(AnimatableNumber::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_DPI).get())); | |
125 EXPECT_TRUE(AnimatableNumber::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_DPCM).get())); | |
126 | 109 |
127 EXPECT_TRUE(AnimatableNumber::canCreateFrom(createCalc(3, CSSPrimitiveValue:
:CSS_PX, 5, CSSPrimitiveValue::CSS_CM).get())); | 110 EXPECT_TRUE(AnimatableLength::canCreateFrom(createCalc(3, CSSPrimitiveValue:
:CSS_PX, 5, CSSPrimitiveValue::CSS_CM).get())); |
128 EXPECT_TRUE(AnimatableNumber::canCreateFrom(CSSPrimitiveValue::create(create
Calc(3, CSSPrimitiveValue::CSS_PX, 5, CSSPrimitiveValue::CSS_CM)).get())); | 111 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(create
Calc(3, CSSPrimitiveValue::CSS_PX, 5, CSSPrimitiveValue::CSS_CM)).get())); |
129 | 112 |
130 EXPECT_FALSE(AnimatableNumber::canCreateFrom(CSSPrimitiveValue::create("NaN"
, CSSPrimitiveValue::CSS_STRING).get())); | 113 EXPECT_FALSE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create("NaN"
, CSSPrimitiveValue::CSS_STRING).get())); |
131 } | 114 } |
132 | 115 |
133 TEST_F(AnimatableNumberTest, Create) | 116 TEST_F(AnimatableLengthTest, Create) |
134 { | 117 { |
135 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_NUMBER).get()
)); | |
136 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_PX).get())); | 118 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_PX).get())); |
137 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_CM).get())); | 119 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_CM).get())); |
138 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_MM).get())); | 120 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_MM).get())); |
139 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_IN).get())); | 121 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_IN).get())); |
140 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_PT).get())); | 122 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_PT).get())); |
141 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_PC).get())); | 123 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_PC).get())); |
142 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_EMS).get())); | 124 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_EMS).get())); |
143 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_EXS).get())); | 125 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_EXS).get())); |
144 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_REMS).get()))
; | 126 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_REMS).get()))
; |
145 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_DEG).get())); | |
146 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_RAD).get())); | |
147 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_GRAD).get()))
; | |
148 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_TURN).get()))
; | |
149 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_PERCENTAGE).g
et())); | 127 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_PERCENTAGE).g
et())); |
150 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_VW).get())); | 128 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_VW).get())); |
151 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_VH).get())); | 129 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_VH).get())); |
152 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_VMIN).get()))
; | 130 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_VMIN).get()))
; |
153 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_VMAX).get()))
; | 131 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_VMAX).get()))
; |
154 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_MS).get())); | |
155 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_S).get())); | |
156 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_HZ).get())); | |
157 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_KHZ).get())); | |
158 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_DPPX).get()))
; | |
159 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_DPI).get())); | |
160 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_DPCM).get()))
; | |
161 | 132 |
162 EXPECT_TRUE(static_cast<bool>( | 133 EXPECT_TRUE(static_cast<bool>( |
163 AnimatableNumber::create(createCalc(3, CSSPrimitiveValue::CSS_PX, 5, CSS
PrimitiveValue::CSS_CM).get()).get() | 134 AnimatableLength::create(createCalc(3, CSSPrimitiveValue::CSS_PX, 5, CSS
PrimitiveValue::CSS_CM).get()).get() |
164 )); | 135 )); |
165 EXPECT_TRUE(static_cast<bool>( | 136 EXPECT_TRUE(static_cast<bool>( |
166 AnimatableNumber::create(CSSPrimitiveValue::create(createCalc(3, CSSPrim
itiveValue::CSS_PX, 5, CSSPrimitiveValue::CSS_CM)).get()).get() | 137 AnimatableLength::create(CSSPrimitiveValue::create(createCalc(3, CSSPrim
itiveValue::CSS_PX, 5, CSSPrimitiveValue::CSS_CM)).get()).get() |
167 )); | 138 )); |
168 } | 139 } |
169 | 140 |
170 TEST_F(AnimatableNumberTest, ToCSSValue) | 141 TEST_F(AnimatableLengthTest, ToCSSValue) |
171 { | 142 { |
172 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::
CSS_NUMBER).get())); | |
173 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::
CSS_PX).get())); | 143 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::
CSS_PX).get())); |
174 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::
CSS_CM).get())); | 144 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::
CSS_CM).get())); |
175 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::
CSS_MM).get())); | 145 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::
CSS_MM).get())); |
176 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::
CSS_IN).get())); | 146 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::
CSS_IN).get())); |
177 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::
CSS_PT).get())); | 147 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::
CSS_PT).get())); |
178 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::
CSS_PC).get())); | 148 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::
CSS_PC).get())); |
179 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::
CSS_EMS).get())); | 149 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::
CSS_EMS).get())); |
180 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::
CSS_EXS).get())); | 150 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::
CSS_EXS).get())); |
181 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::
CSS_REMS).get())); | 151 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::
CSS_REMS).get())); |
182 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::
CSS_DEG).get())); | |
183 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::
CSS_RAD).get())); | |
184 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::
CSS_GRAD).get())); | |
185 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::
CSS_TURN).get())); | |
186 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::
CSS_PERCENTAGE).get())); | 152 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::
CSS_PERCENTAGE).get())); |
187 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::
CSS_VW).get())); | 153 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::
CSS_VW).get())); |
188 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::
CSS_VH).get())); | 154 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::
CSS_VH).get())); |
189 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::
CSS_VMIN).get())); | 155 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::
CSS_VMIN).get())); |
190 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::
CSS_VMAX).get())); | 156 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::
CSS_VMAX).get())); |
191 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::
CSS_MS).get())); | |
192 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::
CSS_S).get())); | |
193 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::
CSS_HZ).get())); | |
194 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::
CSS_KHZ).get())); | |
195 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::
CSS_DPPX).get())); | |
196 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::
CSS_DPI).get())); | |
197 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::
CSS_DPCM).get())); | |
198 | 157 |
199 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(createCalc(3, CSSPrimit
iveValue::CSS_PX, 5, CSSPrimitiveValue::CSS_IN)).get())); | 158 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(createCalc(3, CSSPrimit
iveValue::CSS_PX, 5, CSSPrimitiveValue::CSS_IN)).get())); |
200 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(createCalc(3, CSSPrimit
iveValue::CSS_PX, 5, CSSPrimitiveValue::CSS_IN)).get(), | 159 EXPECT_TRUE(testToCSSValue(CSSPrimitiveValue::create(createCalc(3, CSSPrimit
iveValue::CSS_PX, 5, CSSPrimitiveValue::CSS_IN)).get(), |
201 createCalc(3, CSSPrimitiveValue::CSS_PX, 5, CSSPrimitiveValue::CSS_IN).g
et())); | 160 createCalc(3, CSSPrimitiveValue::CSS_PX, 5, CSSPrimitiveValue::CSS_IN).g
et())); |
202 } | 161 } |
203 | 162 |
204 TEST_F(AnimatableNumberTest, ToLength) | 163 TEST_F(AnimatableLengthTest, ToLength) |
205 { | 164 { |
206 EXPECT_EQ(Length(-5, WebCore::Fixed), create(-5, CSSPrimitiveValue::CSS_PX)-
>toLength(style.get(), style.get(), 1)); | 165 EXPECT_EQ(Length(-5, WebCore::Fixed), create(-5, CSSPrimitiveValue::CSS_PX)-
>toLength(style.get(), style.get(), 1)); |
207 EXPECT_EQ(Length(-15, WebCore::Fixed), create(-5, CSSPrimitiveValue::CSS_PX)
->toLength(style.get(), style.get(), 3)); | 166 EXPECT_EQ(Length(-15, WebCore::Fixed), create(-5, CSSPrimitiveValue::CSS_PX)
->toLength(style.get(), style.get(), 3)); |
208 EXPECT_EQ(Length(0, WebCore::Fixed), create(-5, CSSPrimitiveValue::CSS_PX)->
toLength(style.get(), style.get(), 1, NonNegativeValues)); | 167 EXPECT_EQ(Length(0, WebCore::Fixed), create(-5, CSSPrimitiveValue::CSS_PX)->
toLength(style.get(), style.get(), 1, NonNegativeValues)); |
209 EXPECT_EQ(Length(0, WebCore::Fixed), create(-5, CSSPrimitiveValue::CSS_PX)->
toLength(style.get(), style.get(), 3, NonNegativeValues)); | 168 EXPECT_EQ(Length(0, WebCore::Fixed), create(-5, CSSPrimitiveValue::CSS_PX)->
toLength(style.get(), style.get(), 3, NonNegativeValues)); |
210 | 169 |
211 EXPECT_EQ(Length(-5, Percent), create(-5, CSSPrimitiveValue::CSS_PERCENTAGE)
->toLength(style.get(), style.get(), 1)); | 170 EXPECT_EQ(Length(-5, Percent), create(-5, CSSPrimitiveValue::CSS_PERCENTAGE)
->toLength(style.get(), style.get(), 1)); |
212 EXPECT_EQ(Length(-5, Percent), create(-5, CSSPrimitiveValue::CSS_PERCENTAGE)
->toLength(style.get(), style.get(), 3)); | 171 EXPECT_EQ(Length(-5, Percent), create(-5, CSSPrimitiveValue::CSS_PERCENTAGE)
->toLength(style.get(), style.get(), 3)); |
213 EXPECT_EQ(Length(0, Percent), create(-5, CSSPrimitiveValue::CSS_PERCENTAGE)-
>toLength(style.get(), style.get(), 1, NonNegativeValues)); | 172 EXPECT_EQ(Length(0, Percent), create(-5, CSSPrimitiveValue::CSS_PERCENTAGE)-
>toLength(style.get(), style.get(), 1, NonNegativeValues)); |
214 EXPECT_EQ(Length(0, Percent), create(-5, CSSPrimitiveValue::CSS_PERCENTAGE)-
>toLength(style.get(), style.get(), 3, NonNegativeValues)); | 173 EXPECT_EQ(Length(0, Percent), create(-5, CSSPrimitiveValue::CSS_PERCENTAGE)-
>toLength(style.get(), style.get(), 3, NonNegativeValues)); |
(...skipping 25 matching lines...) Expand all Loading... |
240 EXPECT_EQ( | 199 EXPECT_EQ( |
241 Length(CalculationValue::create( | 200 Length(CalculationValue::create( |
242 adoptPtr(new CalcExpressionBinaryOperation( | 201 adoptPtr(new CalcExpressionBinaryOperation( |
243 adoptPtr(new CalcExpressionNumber(-15)), | 202 adoptPtr(new CalcExpressionNumber(-15)), |
244 adoptPtr(new CalcExpressionLength(Length(-5, Percent))), | 203 adoptPtr(new CalcExpressionLength(Length(-5, Percent))), |
245 CalcAdd)), | 204 CalcAdd)), |
246 CalculationRangeNonNegative)), | 205 CalculationRangeNonNegative)), |
247 create(-5, CSSPrimitiveValue::CSS_PX, -5, CSSPrimitiveValue::CSS_PERCENT
AGE)->toLength(style.get(), style.get(), 3, NonNegativeValues)); | 206 create(-5, CSSPrimitiveValue::CSS_PX, -5, CSSPrimitiveValue::CSS_PERCENT
AGE)->toLength(style.get(), style.get(), 3, NonNegativeValues)); |
248 } | 207 } |
249 | 208 |
250 TEST_F(AnimatableNumberTest, Interpolate) | 209 TEST_F(AnimatableLengthTest, Interpolate) |
251 { | 210 { |
252 RefPtr<AnimatableNumber> from10 = create(10); | 211 RefPtr<AnimatableLength> from10px = create(10, CSSPrimitiveValue::CSS_PX); |
253 RefPtr<AnimatableNumber> to20 = create(20); | 212 RefPtr<AnimatableLength> to20pxAsInches = create(20.0 / 96, CSSPrimitiveValu
e::CSS_IN); |
254 EXPECT_TRUE(testInterpolate(CSSPrimitiveValue::create(5, CSSPrimitiveValue:
:CSS_NUMBER).get(), from10.get(), to20.get(), -0.5)); | |
255 EXPECT_TRUE(testInterpolate(CSSPrimitiveValue::create(10, CSSPrimitiveValue:
:CSS_NUMBER).get(), from10.get(), to20.get(), 0)); | |
256 EXPECT_TRUE(testInterpolate(CSSPrimitiveValue::create(14, CSSPrimitiveValue:
:CSS_NUMBER).get(), from10.get(), to20.get(), 0.4)); | |
257 EXPECT_TRUE(testInterpolate(CSSPrimitiveValue::create(15, CSSPrimitiveValue:
:CSS_NUMBER).get(), from10.get(), to20.get(), 0.5)); | |
258 EXPECT_TRUE(testInterpolate(CSSPrimitiveValue::create(16, CSSPrimitiveValue:
:CSS_NUMBER).get(), from10.get(), to20.get(), 0.6)); | |
259 EXPECT_TRUE(testInterpolate(CSSPrimitiveValue::create(20, CSSPrimitiveValue:
:CSS_NUMBER).get(), from10.get(), to20.get(), 1)); | |
260 EXPECT_TRUE(testInterpolate(CSSPrimitiveValue::create(25, CSSPrimitiveValue:
:CSS_NUMBER).get(), from10.get(), to20.get(), 1.5)); | |
261 | |
262 RefPtr<AnimatableNumber> from10px = create(10, CSSPrimitiveValue::CSS_PX); | |
263 RefPtr<AnimatableNumber> to20pxAsInches = create(20.0 / 96, CSSPrimitiveValu
e::CSS_IN); | |
264 EXPECT_TRUE(testInterpolate(CSSPrimitiveValue::create(5, CSSPrimitiveValue:
:CSS_PX).get(), from10px.get(), to20pxAsInches.get(), -0.5)); | 213 EXPECT_TRUE(testInterpolate(CSSPrimitiveValue::create(5, CSSPrimitiveValue:
:CSS_PX).get(), from10px.get(), to20pxAsInches.get(), -0.5)); |
265 EXPECT_TRUE(testInterpolate(CSSPrimitiveValue::create(10, CSSPrimitiveValue:
:CSS_PX).get(), from10px.get(), to20pxAsInches.get(), 0)); | 214 EXPECT_TRUE(testInterpolate(CSSPrimitiveValue::create(10, CSSPrimitiveValue:
:CSS_PX).get(), from10px.get(), to20pxAsInches.get(), 0)); |
266 EXPECT_TRUE(testInterpolate(CSSPrimitiveValue::create(14, CSSPrimitiveValue:
:CSS_PX).get(), from10px.get(), to20pxAsInches.get(), 0.4)); | 215 EXPECT_TRUE(testInterpolate(CSSPrimitiveValue::create(14, CSSPrimitiveValue:
:CSS_PX).get(), from10px.get(), to20pxAsInches.get(), 0.4)); |
267 EXPECT_TRUE(testInterpolate(CSSPrimitiveValue::create(15, CSSPrimitiveValue:
:CSS_PX).get(), from10px.get(), to20pxAsInches.get(), 0.5)); | 216 EXPECT_TRUE(testInterpolate(CSSPrimitiveValue::create(15, CSSPrimitiveValue:
:CSS_PX).get(), from10px.get(), to20pxAsInches.get(), 0.5)); |
268 EXPECT_TRUE(testInterpolate(CSSPrimitiveValue::create(16, CSSPrimitiveValue:
:CSS_PX).get(), from10px.get(), to20pxAsInches.get(), 0.6)); | 217 EXPECT_TRUE(testInterpolate(CSSPrimitiveValue::create(16, CSSPrimitiveValue:
:CSS_PX).get(), from10px.get(), to20pxAsInches.get(), 0.6)); |
269 EXPECT_TRUE(testInterpolate(CSSPrimitiveValue::create(20.0 / 96, CSSPrimitiv
eValue::CSS_IN).get(), from10px.get(), to20pxAsInches.get(), 1)); | 218 EXPECT_TRUE(testInterpolate(CSSPrimitiveValue::create(20.0 / 96, CSSPrimitiv
eValue::CSS_IN).get(), from10px.get(), to20pxAsInches.get(), 1)); |
270 EXPECT_TRUE(testInterpolate(CSSPrimitiveValue::create(25, CSSPrimitiveValue:
:CSS_PX).get(), from10px.get(), to20pxAsInches.get(), 1.5)); | 219 EXPECT_TRUE(testInterpolate(CSSPrimitiveValue::create(25, CSSPrimitiveValue:
:CSS_PX).get(), from10px.get(), to20pxAsInches.get(), 1.5)); |
271 | 220 |
272 RefPtr<AnimatableNumber> from10em = create(10, CSSPrimitiveValue::CSS_EMS); | 221 RefPtr<AnimatableLength> from10em = create(10, CSSPrimitiveValue::CSS_EMS); |
273 RefPtr<AnimatableNumber> to20rem = create(20, CSSPrimitiveValue::CSS_REMS); | 222 RefPtr<AnimatableLength> to20rem = create(20, CSSPrimitiveValue::CSS_REMS); |
274 EXPECT_TRUE(testInterpolate(CSSPrimitiveValue::create(createCalc(15, CSSPrim
itiveValue::CSS_EMS, -10, CSSPrimitiveValue::CSS_REMS)).get(), | 223 EXPECT_TRUE(testInterpolate(CSSPrimitiveValue::create(createCalc(15, CSSPrim
itiveValue::CSS_EMS, -10, CSSPrimitiveValue::CSS_REMS)).get(), |
275 from10em.get(), to20rem.get(), -0.5)); | 224 from10em.get(), to20rem.get(), -0.5)); |
276 EXPECT_TRUE(testInterpolate(CSSPrimitiveValue::create(10, CSSPrimitiveValue:
:CSS_EMS).get(), | 225 EXPECT_TRUE(testInterpolate(CSSPrimitiveValue::create(10, CSSPrimitiveValue:
:CSS_EMS).get(), |
277 from10em.get(), to20rem.get(), 0)); | 226 from10em.get(), to20rem.get(), 0)); |
278 EXPECT_TRUE(testInterpolate(CSSPrimitiveValue::create(createCalc(6, CSSPrimi
tiveValue::CSS_EMS, 8, CSSPrimitiveValue::CSS_REMS)).get(), | 227 EXPECT_TRUE(testInterpolate(CSSPrimitiveValue::create(createCalc(6, CSSPrimi
tiveValue::CSS_EMS, 8, CSSPrimitiveValue::CSS_REMS)).get(), |
279 from10em.get(), to20rem.get(), 0.4)); | 228 from10em.get(), to20rem.get(), 0.4)); |
280 EXPECT_TRUE(testInterpolate(CSSPrimitiveValue::create(createCalc(5, CSSPrimi
tiveValue::CSS_EMS, 10, CSSPrimitiveValue::CSS_REMS)).get(), | 229 EXPECT_TRUE(testInterpolate(CSSPrimitiveValue::create(createCalc(5, CSSPrimi
tiveValue::CSS_EMS, 10, CSSPrimitiveValue::CSS_REMS)).get(), |
281 from10em.get(), to20rem.get(), 0.5)); | 230 from10em.get(), to20rem.get(), 0.5)); |
282 EXPECT_TRUE(testInterpolate(CSSPrimitiveValue::create(createCalc(4, CSSPrimi
tiveValue::CSS_EMS, 12, CSSPrimitiveValue::CSS_REMS)).get(), | 231 EXPECT_TRUE(testInterpolate(CSSPrimitiveValue::create(createCalc(4, CSSPrimi
tiveValue::CSS_EMS, 12, CSSPrimitiveValue::CSS_REMS)).get(), |
283 from10em.get(), to20rem.get(), 0.6)); | 232 from10em.get(), to20rem.get(), 0.6)); |
284 EXPECT_TRUE(testInterpolate(CSSPrimitiveValue::create(20, CSSPrimitiveValue:
:CSS_REMS).get(), | 233 EXPECT_TRUE(testInterpolate(CSSPrimitiveValue::create(20, CSSPrimitiveValue:
:CSS_REMS).get(), |
285 from10em.get(), to20rem.get(), 1)); | 234 from10em.get(), to20rem.get(), 1)); |
286 EXPECT_TRUE(testInterpolate(CSSPrimitiveValue::create(createCalc(-5, CSSPrim
itiveValue::CSS_EMS, 30, CSSPrimitiveValue::CSS_REMS)).get(), | 235 EXPECT_TRUE(testInterpolate(CSSPrimitiveValue::create(createCalc(-5, CSSPrim
itiveValue::CSS_EMS, 30, CSSPrimitiveValue::CSS_REMS)).get(), |
287 from10em.get(), to20rem.get(), 1.5)); | 236 from10em.get(), to20rem.get(), 1.5)); |
288 } | 237 } |
289 | 238 |
290 TEST_F(AnimatableNumberTest, Add) | 239 TEST_F(AnimatableLengthTest, Add) |
291 { | 240 { |
292 EXPECT_TRUE(testAdd(CSSPrimitiveValue::create(10, CSSPrimitiveValue::CSS_NUM
BER).get(), create(4).get(), create(6).get())); | |
293 EXPECT_TRUE(testAdd(CSSPrimitiveValue::create(10, CSSPrimitiveValue::CSS_NUM
BER).get(), create(0).get(), create(10).get())); | |
294 EXPECT_TRUE(testAdd(CSSPrimitiveValue::create(10, CSSPrimitiveValue::CSS_PX)
.get(), create(10, CSSPrimitiveValue::CSS_PX).get(), create(0, CSSPrimitiveValue
::CSS_MM).get())); | 241 EXPECT_TRUE(testAdd(CSSPrimitiveValue::create(10, CSSPrimitiveValue::CSS_PX)
.get(), create(10, CSSPrimitiveValue::CSS_PX).get(), create(0, CSSPrimitiveValue
::CSS_MM).get())); |
295 EXPECT_TRUE(testAdd(CSSPrimitiveValue::create(100, CSSPrimitiveValue::CSS_PX
).get(), create(4, CSSPrimitiveValue::CSS_PX).get(), create(1, CSSPrimitiveValue
::CSS_IN).get())); | 242 EXPECT_TRUE(testAdd(CSSPrimitiveValue::create(100, CSSPrimitiveValue::CSS_PX
).get(), create(4, CSSPrimitiveValue::CSS_PX).get(), create(1, CSSPrimitiveValue
::CSS_IN).get())); |
296 EXPECT_TRUE(testAdd( | 243 EXPECT_TRUE(testAdd( |
297 CSSPrimitiveValue::create(createCalc(10, CSSPrimitiveValue::CSS_EMS, 20,
CSSPrimitiveValue::CSS_REMS)).get(), | 244 CSSPrimitiveValue::create(createCalc(10, CSSPrimitiveValue::CSS_EMS, 20,
CSSPrimitiveValue::CSS_REMS)).get(), |
298 create(10, CSSPrimitiveValue::CSS_EMS).get(), | 245 create(10, CSSPrimitiveValue::CSS_EMS).get(), |
299 create(20, CSSPrimitiveValue::CSS_REMS).get())); | 246 create(20, CSSPrimitiveValue::CSS_REMS).get())); |
300 EXPECT_TRUE(testAdd( | 247 EXPECT_TRUE(testAdd( |
301 CSSPrimitiveValue::create(10, CSSPrimitiveValue::CSS_EMS).get(), | 248 CSSPrimitiveValue::create(10, CSSPrimitiveValue::CSS_EMS).get(), |
302 create(10, CSSPrimitiveValue::CSS_EMS).get(), | 249 create(10, CSSPrimitiveValue::CSS_EMS).get(), |
303 create(0, CSSPrimitiveValue::CSS_REMS).get())); | 250 create(0, CSSPrimitiveValue::CSS_REMS).get())); |
304 EXPECT_TRUE(testAdd( | 251 EXPECT_TRUE(testAdd( |
305 CSSPrimitiveValue::create(20, CSSPrimitiveValue::CSS_REMS).get(), | 252 CSSPrimitiveValue::create(20, CSSPrimitiveValue::CSS_REMS).get(), |
306 create(0, CSSPrimitiveValue::CSS_EMS).get(), | 253 create(0, CSSPrimitiveValue::CSS_EMS).get(), |
307 create(20, CSSPrimitiveValue::CSS_REMS).get())); | 254 create(20, CSSPrimitiveValue::CSS_REMS).get())); |
308 } | 255 } |
309 | 256 |
310 } | 257 } |
OLD | NEW |