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

Side by Side Diff: third_party/WebKit/Source/core/animation/KeyframeEffectModelTest.cpp

Issue 2750293003: Delete unused AnimatableValue code (Closed)
Patch Set: Fix unit tests Created 3 years, 9 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
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 13 matching lines...) Expand all
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 "core/animation/KeyframeEffectModel.h" 31 #include "core/animation/KeyframeEffectModel.h"
32 32
33 #include "core/animation/LegacyStyleInterpolation.h" 33 #include "core/animation/LegacyStyleInterpolation.h"
34 #include "core/animation/animatable/AnimatableLength.h" 34 #include "core/animation/animatable/AnimatableDouble.h"
35 #include "core/animation/animatable/AnimatableUnknown.h" 35 #include "core/animation/animatable/AnimatableUnknown.h"
36 #include "core/css/CSSPrimitiveValue.h" 36 #include "core/css/CSSPrimitiveValue.h"
37 #include "core/dom/Element.h" 37 #include "core/dom/Element.h"
38 #include "testing/gtest/include/gtest/gtest.h" 38 #include "testing/gtest/include/gtest/gtest.h"
39 39
40 namespace blink { 40 namespace blink {
41 41
42 const double duration = 1.0; 42 const double duration = 1.0;
43 43
44 PassRefPtr<AnimatableValue> unknownAnimatableValue(double n) { 44 PassRefPtr<AnimatableValue> unknownAnimatableValue(double n) {
45 return AnimatableUnknown::create( 45 return AnimatableUnknown::create(
46 CSSPrimitiveValue::create(n, CSSPrimitiveValue::UnitType::Unknown)); 46 CSSPrimitiveValue::create(n, CSSPrimitiveValue::UnitType::Unknown));
47 } 47 }
48 48
49 PassRefPtr<AnimatableValue> pixelAnimatableValue(double n) {
50 return AnimatableLength::create(Length(n, Fixed), 1);
51 }
52
53 AnimatableValueKeyframeVector keyframesAtZeroAndOne( 49 AnimatableValueKeyframeVector keyframesAtZeroAndOne(
54 PassRefPtr<AnimatableValue> zeroValue, 50 PassRefPtr<AnimatableValue> zeroValue,
55 PassRefPtr<AnimatableValue> oneValue) { 51 PassRefPtr<AnimatableValue> oneValue) {
56 AnimatableValueKeyframeVector keyframes(2); 52 AnimatableValueKeyframeVector keyframes(2);
57 keyframes[0] = AnimatableValueKeyframe::create(); 53 keyframes[0] = AnimatableValueKeyframe::create();
58 keyframes[0]->setOffset(0.0); 54 keyframes[0]->setOffset(0.0);
59 keyframes[0]->setPropertyValue(CSSPropertyLeft, zeroValue.get()); 55 keyframes[0]->setPropertyValue(CSSPropertyLeft, zeroValue.get());
60 keyframes[1] = AnimatableValueKeyframe::create(); 56 keyframes[1] = AnimatableValueKeyframe::create();
61 keyframes[1]->setOffset(1.0); 57 keyframes[1]->setOffset(1.0);
62 keyframes[1]->setPropertyValue(CSSPropertyLeft, oneValue.get()); 58 keyframes[1]->setPropertyValue(CSSPropertyLeft, oneValue.get());
63 return keyframes; 59 return keyframes;
64 } 60 }
65 61
66 void expectProperty(CSSPropertyID property, 62 void expectProperty(CSSPropertyID property,
67 PassRefPtr<Interpolation> interpolationValue) { 63 PassRefPtr<Interpolation> interpolationValue) {
68 LegacyStyleInterpolation* interpolation = 64 LegacyStyleInterpolation* interpolation =
69 toLegacyStyleInterpolation(interpolationValue.get()); 65 toLegacyStyleInterpolation(interpolationValue.get());
70 ASSERT_EQ(property, interpolation->id()); 66 ASSERT_EQ(property, interpolation->id());
71 } 67 }
72 68
73 void expectDoubleValue(double expectedValue, 69 void expectDoubleValue(double expectedValue,
74 PassRefPtr<Interpolation> interpolationValue) { 70 PassRefPtr<Interpolation> interpolationValue) {
75 LegacyStyleInterpolation* interpolation = 71 LegacyStyleInterpolation* interpolation =
76 toLegacyStyleInterpolation(interpolationValue.get()); 72 toLegacyStyleInterpolation(interpolationValue.get());
77 RefPtr<AnimatableValue> value = interpolation->currentValue(); 73 RefPtr<AnimatableValue> value = interpolation->currentValue();
78 74
79 ASSERT_TRUE(value->isLength() || value->isUnknown()); 75 ASSERT_TRUE(value->isDouble() || value->isUnknown());
80 76
81 double actualValue; 77 double actualValue;
82 if (value->isLength()) 78 if (value->isDouble())
83 actualValue = 79 actualValue = toAnimatableDouble(value.get())->toDouble();
84 toAnimatableLength(value.get())->getLength(1, ValueRangeAll).value();
85 else 80 else
86 actualValue = 81 actualValue =
87 toCSSPrimitiveValue(toAnimatableUnknown(value.get())->toCSSValue()) 82 toCSSPrimitiveValue(toAnimatableUnknown(value.get())->toCSSValue())
88 ->getDoubleValue(); 83 ->getDoubleValue();
89 84
90 EXPECT_FLOAT_EQ(static_cast<float>(expectedValue), actualValue); 85 EXPECT_FLOAT_EQ(static_cast<float>(expectedValue), actualValue);
91 } 86 }
92 87
93 Interpolation* findValue(Vector<RefPtr<Interpolation>>& values, 88 Interpolation* findValue(Vector<RefPtr<Interpolation>>& values,
94 CSSPropertyID id) { 89 CSSPropertyID id) {
(...skipping 23 matching lines...) Expand all
118 keyframes[1]->setComposite(EffectModel::CompositeReplace); 113 keyframes[1]->setComposite(EffectModel::CompositeReplace);
119 AnimatableValueKeyframeEffectModel* effect = 114 AnimatableValueKeyframeEffectModel* effect =
120 AnimatableValueKeyframeEffectModel::create(keyframes); 115 AnimatableValueKeyframeEffectModel::create(keyframes);
121 Vector<RefPtr<Interpolation>> values; 116 Vector<RefPtr<Interpolation>> values;
122 effect->sample(0, 0.6, duration, values); 117 effect->sample(0, 0.6, duration, values);
123 expectDoubleValue(5.0, values.at(0)); 118 expectDoubleValue(5.0, values.at(0));
124 } 119 }
125 120
126 TEST(AnimationKeyframeEffectModel, CompositeReplace) { 121 TEST(AnimationKeyframeEffectModel, CompositeReplace) {
127 AnimatableValueKeyframeVector keyframes = keyframesAtZeroAndOne( 122 AnimatableValueKeyframeVector keyframes = keyframesAtZeroAndOne(
128 pixelAnimatableValue(3.0), pixelAnimatableValue(5.0)); 123 AnimatableDouble::create(3.0), AnimatableDouble::create(5.0));
129 keyframes[0]->setComposite(EffectModel::CompositeReplace); 124 keyframes[0]->setComposite(EffectModel::CompositeReplace);
130 keyframes[1]->setComposite(EffectModel::CompositeReplace); 125 keyframes[1]->setComposite(EffectModel::CompositeReplace);
131 AnimatableValueKeyframeEffectModel* effect = 126 AnimatableValueKeyframeEffectModel* effect =
132 AnimatableValueKeyframeEffectModel::create(keyframes); 127 AnimatableValueKeyframeEffectModel::create(keyframes);
133 Vector<RefPtr<Interpolation>> values; 128 Vector<RefPtr<Interpolation>> values;
134 effect->sample(0, 0.6, duration, values); 129 effect->sample(0, 0.6, duration, values);
135 expectDoubleValue(3.0 * 0.4 + 5.0 * 0.6, values.at(0)); 130 expectDoubleValue(3.0 * 0.4 + 5.0 * 0.6, values.at(0));
136 } 131 }
137 132
138 // FIXME: Re-enable this test once compositing of CompositeAdd is supported. 133 // FIXME: Re-enable this test once compositing of CompositeAdd is supported.
139 TEST(AnimationKeyframeEffectModel, DISABLED_CompositeAdd) { 134 TEST(AnimationKeyframeEffectModel, DISABLED_CompositeAdd) {
140 AnimatableValueKeyframeVector keyframes = keyframesAtZeroAndOne( 135 AnimatableValueKeyframeVector keyframes = keyframesAtZeroAndOne(
141 pixelAnimatableValue(3.0), pixelAnimatableValue(5.0)); 136 AnimatableDouble::create(3.0), AnimatableDouble::create(5.0));
142 keyframes[0]->setComposite(EffectModel::CompositeAdd); 137 keyframes[0]->setComposite(EffectModel::CompositeAdd);
143 keyframes[1]->setComposite(EffectModel::CompositeAdd); 138 keyframes[1]->setComposite(EffectModel::CompositeAdd);
144 AnimatableValueKeyframeEffectModel* effect = 139 AnimatableValueKeyframeEffectModel* effect =
145 AnimatableValueKeyframeEffectModel::create(keyframes); 140 AnimatableValueKeyframeEffectModel::create(keyframes);
146 Vector<RefPtr<Interpolation>> values; 141 Vector<RefPtr<Interpolation>> values;
147 effect->sample(0, 0.6, duration, values); 142 effect->sample(0, 0.6, duration, values);
148 expectDoubleValue((7.0 + 3.0) * 0.4 + (7.0 + 5.0) * 0.6, values.at(0)); 143 expectDoubleValue((7.0 + 3.0) * 0.4 + (7.0 + 5.0) * 0.6, values.at(0));
149 } 144 }
150 145
151 TEST(AnimationKeyframeEffectModel, CompositeEaseIn) { 146 TEST(AnimationKeyframeEffectModel, CompositeEaseIn) {
152 AnimatableValueKeyframeVector keyframes = keyframesAtZeroAndOne( 147 AnimatableValueKeyframeVector keyframes = keyframesAtZeroAndOne(
153 pixelAnimatableValue(3.0), pixelAnimatableValue(5.0)); 148 AnimatableDouble::create(3.0), AnimatableDouble::create(5.0));
154 keyframes[0]->setComposite(EffectModel::CompositeReplace); 149 keyframes[0]->setComposite(EffectModel::CompositeReplace);
155 keyframes[0]->setEasing(CubicBezierTimingFunction::preset( 150 keyframes[0]->setEasing(CubicBezierTimingFunction::preset(
156 CubicBezierTimingFunction::EaseType::EASE_IN)); 151 CubicBezierTimingFunction::EaseType::EASE_IN));
157 keyframes[1]->setComposite(EffectModel::CompositeReplace); 152 keyframes[1]->setComposite(EffectModel::CompositeReplace);
158 AnimatableValueKeyframeEffectModel* effect = 153 AnimatableValueKeyframeEffectModel* effect =
159 AnimatableValueKeyframeEffectModel::create(keyframes); 154 AnimatableValueKeyframeEffectModel::create(keyframes);
160 Vector<RefPtr<Interpolation>> values; 155 Vector<RefPtr<Interpolation>> values;
161 effect->sample(0, 0.6, duration, values); 156 effect->sample(0, 0.6, duration, values);
162 expectDoubleValue(3.8579516, values.at(0)); 157 expectDoubleValue(3.8579516, values.at(0));
163 effect->sample(0, 0.6, duration * 100, values); 158 effect->sample(0, 0.6, duration * 100, values);
164 expectDoubleValue(3.8582394, values.at(0)); 159 expectDoubleValue(3.8582394, values.at(0));
165 } 160 }
166 161
167 TEST(AnimationKeyframeEffectModel, CompositeCubicBezier) { 162 TEST(AnimationKeyframeEffectModel, CompositeCubicBezier) {
168 AnimatableValueKeyframeVector keyframes = keyframesAtZeroAndOne( 163 AnimatableValueKeyframeVector keyframes = keyframesAtZeroAndOne(
169 pixelAnimatableValue(3.0), pixelAnimatableValue(5.0)); 164 AnimatableDouble::create(3.0), AnimatableDouble::create(5.0));
170 keyframes[0]->setComposite(EffectModel::CompositeReplace); 165 keyframes[0]->setComposite(EffectModel::CompositeReplace);
171 keyframes[0]->setEasing(CubicBezierTimingFunction::create(0.42, 0, 0.58, 1)); 166 keyframes[0]->setEasing(CubicBezierTimingFunction::create(0.42, 0, 0.58, 1));
172 keyframes[1]->setComposite(EffectModel::CompositeReplace); 167 keyframes[1]->setComposite(EffectModel::CompositeReplace);
173 AnimatableValueKeyframeEffectModel* effect = 168 AnimatableValueKeyframeEffectModel* effect =
174 AnimatableValueKeyframeEffectModel::create(keyframes); 169 AnimatableValueKeyframeEffectModel::create(keyframes);
175 Vector<RefPtr<Interpolation>> values; 170 Vector<RefPtr<Interpolation>> values;
176 effect->sample(0, 0.6, duration, values); 171 effect->sample(0, 0.6, duration, values);
177 expectDoubleValue(4.3363357, values.at(0)); 172 expectDoubleValue(4.3363357, values.at(0));
178 effect->sample(0, 0.6, duration * 1000, values); 173 effect->sample(0, 0.6, duration * 1000, values);
179 expectDoubleValue(4.3362322, values.at(0)); 174 expectDoubleValue(4.3362322, values.at(0));
180 } 175 }
181 176
182 TEST(AnimationKeyframeEffectModel, ExtrapolateReplaceNonInterpolable) { 177 TEST(AnimationKeyframeEffectModel, ExtrapolateReplaceNonInterpolable) {
183 AnimatableValueKeyframeVector keyframes = keyframesAtZeroAndOne( 178 AnimatableValueKeyframeVector keyframes = keyframesAtZeroAndOne(
184 unknownAnimatableValue(3.0), unknownAnimatableValue(5.0)); 179 unknownAnimatableValue(3.0), unknownAnimatableValue(5.0));
185 keyframes[0]->setComposite(EffectModel::CompositeReplace); 180 keyframes[0]->setComposite(EffectModel::CompositeReplace);
186 keyframes[1]->setComposite(EffectModel::CompositeReplace); 181 keyframes[1]->setComposite(EffectModel::CompositeReplace);
187 AnimatableValueKeyframeEffectModel* effect = 182 AnimatableValueKeyframeEffectModel* effect =
188 AnimatableValueKeyframeEffectModel::create(keyframes); 183 AnimatableValueKeyframeEffectModel::create(keyframes);
189 Vector<RefPtr<Interpolation>> values; 184 Vector<RefPtr<Interpolation>> values;
190 effect->sample(0, 1.6, duration, values); 185 effect->sample(0, 1.6, duration, values);
191 expectDoubleValue(5.0, values.at(0)); 186 expectDoubleValue(5.0, values.at(0));
192 } 187 }
193 188
194 TEST(AnimationKeyframeEffectModel, ExtrapolateReplace) { 189 TEST(AnimationKeyframeEffectModel, ExtrapolateReplace) {
195 AnimatableValueKeyframeVector keyframes = keyframesAtZeroAndOne( 190 AnimatableValueKeyframeVector keyframes = keyframesAtZeroAndOne(
196 pixelAnimatableValue(3.0), pixelAnimatableValue(5.0)); 191 AnimatableDouble::create(3.0), AnimatableDouble::create(5.0));
197 AnimatableValueKeyframeEffectModel* effect = 192 AnimatableValueKeyframeEffectModel* effect =
198 AnimatableValueKeyframeEffectModel::create(keyframes); 193 AnimatableValueKeyframeEffectModel::create(keyframes);
199 keyframes[0]->setComposite(EffectModel::CompositeReplace); 194 keyframes[0]->setComposite(EffectModel::CompositeReplace);
200 keyframes[1]->setComposite(EffectModel::CompositeReplace); 195 keyframes[1]->setComposite(EffectModel::CompositeReplace);
201 Vector<RefPtr<Interpolation>> values; 196 Vector<RefPtr<Interpolation>> values;
202 effect->sample(0, 1.6, duration, values); 197 effect->sample(0, 1.6, duration, values);
203 expectDoubleValue(3.0 * -0.6 + 5.0 * 1.6, values.at(0)); 198 expectDoubleValue(3.0 * -0.6 + 5.0 * 1.6, values.at(0));
204 } 199 }
205 200
206 // FIXME: Re-enable this test once compositing of CompositeAdd is supported. 201 // FIXME: Re-enable this test once compositing of CompositeAdd is supported.
207 TEST(AnimationKeyframeEffectModel, DISABLED_ExtrapolateAdd) { 202 TEST(AnimationKeyframeEffectModel, DISABLED_ExtrapolateAdd) {
208 AnimatableValueKeyframeVector keyframes = keyframesAtZeroAndOne( 203 AnimatableValueKeyframeVector keyframes = keyframesAtZeroAndOne(
209 pixelAnimatableValue(3.0), pixelAnimatableValue(5.0)); 204 AnimatableDouble::create(3.0), AnimatableDouble::create(5.0));
210 keyframes[0]->setComposite(EffectModel::CompositeAdd); 205 keyframes[0]->setComposite(EffectModel::CompositeAdd);
211 keyframes[1]->setComposite(EffectModel::CompositeAdd); 206 keyframes[1]->setComposite(EffectModel::CompositeAdd);
212 AnimatableValueKeyframeEffectModel* effect = 207 AnimatableValueKeyframeEffectModel* effect =
213 AnimatableValueKeyframeEffectModel::create(keyframes); 208 AnimatableValueKeyframeEffectModel::create(keyframes);
214 Vector<RefPtr<Interpolation>> values; 209 Vector<RefPtr<Interpolation>> values;
215 effect->sample(0, 1.6, duration, values); 210 effect->sample(0, 1.6, duration, values);
216 expectDoubleValue((7.0 + 3.0) * -0.6 + (7.0 + 5.0) * 1.6, values.at(0)); 211 expectDoubleValue((7.0 + 3.0) * -0.6 + (7.0 + 5.0) * 1.6, values.at(0));
217 } 212 }
218 213
219 TEST(AnimationKeyframeEffectModel, ZeroKeyframes) { 214 TEST(AnimationKeyframeEffectModel, ZeroKeyframes) {
(...skipping 19 matching lines...) Expand all
239 effect->sample(0, 0.6, duration, values); 234 effect->sample(0, 0.6, duration, values);
240 expectDoubleValue(3.0, values.at(0)); 235 expectDoubleValue(3.0, values.at(0));
241 } 236 }
242 237
243 // FIXME: Re-enable this test once compositing of CompositeAdd is supported. 238 // FIXME: Re-enable this test once compositing of CompositeAdd is supported.
244 TEST(AnimationKeyframeEffectModel, DISABLED_SingleKeyframeAtOffsetOne) { 239 TEST(AnimationKeyframeEffectModel, DISABLED_SingleKeyframeAtOffsetOne) {
245 AnimatableValueKeyframeVector keyframes(1); 240 AnimatableValueKeyframeVector keyframes(1);
246 keyframes[0] = AnimatableValueKeyframe::create(); 241 keyframes[0] = AnimatableValueKeyframe::create();
247 keyframes[0]->setOffset(1.0); 242 keyframes[0]->setOffset(1.0);
248 keyframes[0]->setPropertyValue(CSSPropertyLeft, 243 keyframes[0]->setPropertyValue(CSSPropertyLeft,
249 pixelAnimatableValue(5.0).get()); 244 AnimatableDouble::create(5.0).get());
250 245
251 AnimatableValueKeyframeEffectModel* effect = 246 AnimatableValueKeyframeEffectModel* effect =
252 AnimatableValueKeyframeEffectModel::create(keyframes); 247 AnimatableValueKeyframeEffectModel::create(keyframes);
253 Vector<RefPtr<Interpolation>> values; 248 Vector<RefPtr<Interpolation>> values;
254 effect->sample(0, 0.6, duration, values); 249 effect->sample(0, 0.6, duration, values);
255 expectDoubleValue(7.0 * 0.4 + 5.0 * 0.6, values.at(0)); 250 expectDoubleValue(7.0 * 0.4 + 5.0 * 0.6, values.at(0));
256 } 251 }
257 252
258 TEST(AnimationKeyframeEffectModel, MoreThanTwoKeyframes) { 253 TEST(AnimationKeyframeEffectModel, MoreThanTwoKeyframes) {
259 AnimatableValueKeyframeVector keyframes(3); 254 AnimatableValueKeyframeVector keyframes(3);
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
386 effect->sample(0, 1.0, duration, values); 381 effect->sample(0, 1.0, duration, values);
387 expectDoubleValue(7.0, values.at(0)); 382 expectDoubleValue(7.0, values.at(0));
388 } 383 }
389 384
390 // FIXME: Re-enable this test once compositing of CompositeAdd is supported. 385 // FIXME: Re-enable this test once compositing of CompositeAdd is supported.
391 TEST(AnimationKeyframeEffectModel, DISABLED_PerKeyframeComposite) { 386 TEST(AnimationKeyframeEffectModel, DISABLED_PerKeyframeComposite) {
392 AnimatableValueKeyframeVector keyframes(2); 387 AnimatableValueKeyframeVector keyframes(2);
393 keyframes[0] = AnimatableValueKeyframe::create(); 388 keyframes[0] = AnimatableValueKeyframe::create();
394 keyframes[0]->setOffset(0.0); 389 keyframes[0]->setOffset(0.0);
395 keyframes[0]->setPropertyValue(CSSPropertyLeft, 390 keyframes[0]->setPropertyValue(CSSPropertyLeft,
396 pixelAnimatableValue(3.0).get()); 391 AnimatableDouble::create(3.0).get());
397 keyframes[1] = AnimatableValueKeyframe::create(); 392 keyframes[1] = AnimatableValueKeyframe::create();
398 keyframes[1]->setOffset(1.0); 393 keyframes[1]->setOffset(1.0);
399 keyframes[1]->setPropertyValue(CSSPropertyLeft, 394 keyframes[1]->setPropertyValue(CSSPropertyLeft,
400 pixelAnimatableValue(5.0).get()); 395 AnimatableDouble::create(5.0).get());
401 keyframes[1]->setComposite(EffectModel::CompositeAdd); 396 keyframes[1]->setComposite(EffectModel::CompositeAdd);
402 397
403 AnimatableValueKeyframeEffectModel* effect = 398 AnimatableValueKeyframeEffectModel* effect =
404 AnimatableValueKeyframeEffectModel::create(keyframes); 399 AnimatableValueKeyframeEffectModel::create(keyframes);
405 Vector<RefPtr<Interpolation>> values; 400 Vector<RefPtr<Interpolation>> values;
406 effect->sample(0, 0.6, duration, values); 401 effect->sample(0, 0.6, duration, values);
407 expectDoubleValue(3.0 * 0.4 + (7.0 + 5.0) * 0.6, values.at(0)); 402 expectDoubleValue(3.0 * 0.4 + (7.0 + 5.0) * 0.6, values.at(0));
408 } 403 }
409 404
410 TEST(AnimationKeyframeEffectModel, MultipleProperties) { 405 TEST(AnimationKeyframeEffectModel, MultipleProperties) {
(...skipping 20 matching lines...) Expand all
431 ASSERT_TRUE(leftValue); 426 ASSERT_TRUE(leftValue);
432 expectDoubleValue(5.0, leftValue); 427 expectDoubleValue(5.0, leftValue);
433 Interpolation* rightValue = findValue(values, CSSPropertyRight); 428 Interpolation* rightValue = findValue(values, CSSPropertyRight);
434 ASSERT_TRUE(rightValue); 429 ASSERT_TRUE(rightValue);
435 expectDoubleValue(6.0, rightValue); 430 expectDoubleValue(6.0, rightValue);
436 } 431 }
437 432
438 // FIXME: Re-enable this test once compositing of CompositeAdd is supported. 433 // FIXME: Re-enable this test once compositing of CompositeAdd is supported.
439 TEST(AnimationKeyframeEffectModel, DISABLED_RecompositeCompositableValue) { 434 TEST(AnimationKeyframeEffectModel, DISABLED_RecompositeCompositableValue) {
440 AnimatableValueKeyframeVector keyframes = keyframesAtZeroAndOne( 435 AnimatableValueKeyframeVector keyframes = keyframesAtZeroAndOne(
441 pixelAnimatableValue(3.0), pixelAnimatableValue(5.0)); 436 AnimatableDouble::create(3.0), AnimatableDouble::create(5.0));
442 keyframes[0]->setComposite(EffectModel::CompositeAdd); 437 keyframes[0]->setComposite(EffectModel::CompositeAdd);
443 keyframes[1]->setComposite(EffectModel::CompositeAdd); 438 keyframes[1]->setComposite(EffectModel::CompositeAdd);
444 AnimatableValueKeyframeEffectModel* effect = 439 AnimatableValueKeyframeEffectModel* effect =
445 AnimatableValueKeyframeEffectModel::create(keyframes); 440 AnimatableValueKeyframeEffectModel::create(keyframes);
446 Vector<RefPtr<Interpolation>> values; 441 Vector<RefPtr<Interpolation>> values;
447 effect->sample(0, 0.6, duration, values); 442 effect->sample(0, 0.6, duration, values);
448 expectDoubleValue((7.0 + 3.0) * 0.4 + (7.0 + 5.0) * 0.6, values.at(0)); 443 expectDoubleValue((7.0 + 3.0) * 0.4 + (7.0 + 5.0) * 0.6, values.at(0));
449 expectDoubleValue((9.0 + 3.0) * 0.4 + (9.0 + 5.0) * 0.6, values.at(1)); 444 expectDoubleValue((9.0 + 3.0) * 0.4 + (9.0 + 5.0) * 0.6, values.at(1));
450 } 445 }
451 446
452 TEST(AnimationKeyframeEffectModel, MultipleIterations) { 447 TEST(AnimationKeyframeEffectModel, MultipleIterations) {
453 AnimatableValueKeyframeVector keyframes = keyframesAtZeroAndOne( 448 AnimatableValueKeyframeVector keyframes = keyframesAtZeroAndOne(
454 pixelAnimatableValue(1.0), pixelAnimatableValue(3.0)); 449 AnimatableDouble::create(1.0), AnimatableDouble::create(3.0));
455 AnimatableValueKeyframeEffectModel* effect = 450 AnimatableValueKeyframeEffectModel* effect =
456 AnimatableValueKeyframeEffectModel::create(keyframes); 451 AnimatableValueKeyframeEffectModel::create(keyframes);
457 Vector<RefPtr<Interpolation>> values; 452 Vector<RefPtr<Interpolation>> values;
458 effect->sample(0, 0.5, duration, values); 453 effect->sample(0, 0.5, duration, values);
459 expectDoubleValue(2.0, values.at(0)); 454 expectDoubleValue(2.0, values.at(0));
460 effect->sample(1, 0.5, duration, values); 455 effect->sample(1, 0.5, duration, values);
461 expectDoubleValue(2.0, values.at(0)); 456 expectDoubleValue(2.0, values.at(0));
462 effect->sample(2, 0.5, duration, values); 457 effect->sample(2, 0.5, duration, values);
463 expectDoubleValue(2.0, values.at(0)); 458 expectDoubleValue(2.0, values.at(0));
464 } 459 }
465 460
466 // FIXME: Re-enable this test once compositing of CompositeAdd is supported. 461 // FIXME: Re-enable this test once compositing of CompositeAdd is supported.
467 TEST(AnimationKeyframeEffectModel, DISABLED_DependsOnUnderlyingValue) { 462 TEST(AnimationKeyframeEffectModel, DISABLED_DependsOnUnderlyingValue) {
468 AnimatableValueKeyframeVector keyframes(3); 463 AnimatableValueKeyframeVector keyframes(3);
469 keyframes[0] = AnimatableValueKeyframe::create(); 464 keyframes[0] = AnimatableValueKeyframe::create();
470 keyframes[0]->setOffset(0.0); 465 keyframes[0]->setOffset(0.0);
471 keyframes[0]->setPropertyValue(CSSPropertyLeft, 466 keyframes[0]->setPropertyValue(CSSPropertyLeft,
472 pixelAnimatableValue(1.0).get()); 467 AnimatableDouble::create(1.0).get());
473 keyframes[0]->setComposite(EffectModel::CompositeAdd); 468 keyframes[0]->setComposite(EffectModel::CompositeAdd);
474 keyframes[1] = AnimatableValueKeyframe::create(); 469 keyframes[1] = AnimatableValueKeyframe::create();
475 keyframes[1]->setOffset(0.5); 470 keyframes[1]->setOffset(0.5);
476 keyframes[1]->setPropertyValue(CSSPropertyLeft, 471 keyframes[1]->setPropertyValue(CSSPropertyLeft,
477 pixelAnimatableValue(1.0).get()); 472 AnimatableDouble::create(1.0).get());
478 keyframes[2] = AnimatableValueKeyframe::create(); 473 keyframes[2] = AnimatableValueKeyframe::create();
479 keyframes[2]->setOffset(1.0); 474 keyframes[2]->setOffset(1.0);
480 keyframes[2]->setPropertyValue(CSSPropertyLeft, 475 keyframes[2]->setPropertyValue(CSSPropertyLeft,
481 pixelAnimatableValue(1.0).get()); 476 AnimatableDouble::create(1.0).get());
482 477
483 AnimatableValueKeyframeEffectModel* effect = 478 AnimatableValueKeyframeEffectModel* effect =
484 AnimatableValueKeyframeEffectModel::create(keyframes); 479 AnimatableValueKeyframeEffectModel::create(keyframes);
485 Vector<RefPtr<Interpolation>> values; 480 Vector<RefPtr<Interpolation>> values;
486 effect->sample(0, 0, duration, values); 481 effect->sample(0, 0, duration, values);
487 EXPECT_TRUE(values.at(0)); 482 EXPECT_TRUE(values.at(0));
488 effect->sample(0, 0.1, duration, values); 483 effect->sample(0, 0.1, duration, values);
489 EXPECT_TRUE(values.at(0)); 484 EXPECT_TRUE(values.at(0));
490 effect->sample(0, 0.25, duration, values); 485 effect->sample(0, 0.25, duration, values);
491 EXPECT_TRUE(values.at(0)); 486 EXPECT_TRUE(values.at(0));
492 effect->sample(0, 0.4, duration, values); 487 effect->sample(0, 0.4, duration, values);
493 EXPECT_TRUE(values.at(0)); 488 EXPECT_TRUE(values.at(0));
494 effect->sample(0, 0.5, duration, values); 489 effect->sample(0, 0.5, duration, values);
495 EXPECT_FALSE(values.at(0)); 490 EXPECT_FALSE(values.at(0));
496 effect->sample(0, 0.6, duration, values); 491 effect->sample(0, 0.6, duration, values);
497 EXPECT_FALSE(values.at(0)); 492 EXPECT_FALSE(values.at(0));
498 effect->sample(0, 0.75, duration, values); 493 effect->sample(0, 0.75, duration, values);
499 EXPECT_FALSE(values.at(0)); 494 EXPECT_FALSE(values.at(0));
500 effect->sample(0, 0.8, duration, values); 495 effect->sample(0, 0.8, duration, values);
501 EXPECT_FALSE(values.at(0)); 496 EXPECT_FALSE(values.at(0));
502 effect->sample(0, 1, duration, values); 497 effect->sample(0, 1, duration, values);
503 EXPECT_FALSE(values.at(0)); 498 EXPECT_FALSE(values.at(0));
504 } 499 }
505 500
506 TEST(AnimationKeyframeEffectModel, AddSyntheticKeyframes) { 501 TEST(AnimationKeyframeEffectModel, AddSyntheticKeyframes) {
507 AnimatableValueKeyframeVector keyframes(1); 502 StringKeyframeVector keyframes(1);
508 keyframes[0] = AnimatableValueKeyframe::create(); 503 keyframes[0] = StringKeyframe::create();
509 keyframes[0]->setOffset(0.5); 504 keyframes[0]->setOffset(0.5);
510 keyframes[0]->setPropertyValue(CSSPropertyLeft, 505 keyframes[0]->setCSSPropertyValue(CSSPropertyLeft, "4px", nullptr);
511 unknownAnimatableValue(4.0).get());
512 506
513 AnimatableValueKeyframeEffectModel* effect = 507 StringKeyframeEffectModel* effect =
514 AnimatableValueKeyframeEffectModel::create(keyframes); 508 StringKeyframeEffectModel::create(keyframes);
515 const AnimatableValuePropertySpecificKeyframeVector& 509 const StringPropertySpecificKeyframeVector& propertySpecificKeyframes =
516 propertySpecificKeyframes = 510 effect->getPropertySpecificKeyframes(PropertyHandle(CSSPropertyLeft));
517 effect->getPropertySpecificKeyframes(PropertyHandle(CSSPropertyLeft));
518 EXPECT_EQ(3U, propertySpecificKeyframes.size()); 511 EXPECT_EQ(3U, propertySpecificKeyframes.size());
519 EXPECT_DOUBLE_EQ(0.0, propertySpecificKeyframes[0]->offset()); 512 EXPECT_DOUBLE_EQ(0.0, propertySpecificKeyframes[0]->offset());
520 EXPECT_DOUBLE_EQ(0.5, propertySpecificKeyframes[1]->offset()); 513 EXPECT_DOUBLE_EQ(0.5, propertySpecificKeyframes[1]->offset());
521 EXPECT_DOUBLE_EQ(1.0, propertySpecificKeyframes[2]->offset()); 514 EXPECT_DOUBLE_EQ(1.0, propertySpecificKeyframes[2]->offset());
522 } 515 }
523 516
524 TEST(AnimationKeyframeEffectModel, ToKeyframeEffectModel) { 517 TEST(AnimationKeyframeEffectModel, ToKeyframeEffectModel) {
525 AnimatableValueKeyframeVector keyframes(0); 518 AnimatableValueKeyframeVector keyframes(0);
526 AnimatableValueKeyframeEffectModel* effect = 519 AnimatableValueKeyframeEffectModel* effect =
527 AnimatableValueKeyframeEffectModel::create(keyframes); 520 AnimatableValueKeyframeEffectModel::create(keyframes);
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
608 EXPECT_DOUBLE_EQ(0.6, result[5]->offset()); 601 EXPECT_DOUBLE_EQ(0.6, result[5]->offset());
609 EXPECT_DOUBLE_EQ(0.7, result[6]->offset()); 602 EXPECT_DOUBLE_EQ(0.7, result[6]->offset());
610 EXPECT_DOUBLE_EQ(0.8, result[7]->offset()); 603 EXPECT_DOUBLE_EQ(0.8, result[7]->offset());
611 EXPECT_DOUBLE_EQ(0.85, result[8]->offset()); 604 EXPECT_DOUBLE_EQ(0.85, result[8]->offset());
612 EXPECT_DOUBLE_EQ(0.9, result[9]->offset()); 605 EXPECT_DOUBLE_EQ(0.9, result[9]->offset());
613 EXPECT_DOUBLE_EQ(0.95, result[10]->offset()); 606 EXPECT_DOUBLE_EQ(0.95, result[10]->offset());
614 EXPECT_DOUBLE_EQ(1.0, result[11]->offset()); 607 EXPECT_DOUBLE_EQ(1.0, result[11]->offset());
615 } 608 }
616 609
617 } // namespace blink 610 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698