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

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

Issue 1120003002: [Oilpan] Migrate most classes under core/animations to Oilpan heap. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Resize expect size of Persistent Created 5 years, 7 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 26 matching lines...) Expand all
37 #include "core/css/CSSPrimitiveValue.h" 37 #include "core/css/CSSPrimitiveValue.h"
38 #include "core/dom/Element.h" 38 #include "core/dom/Element.h"
39 #include <gtest/gtest.h> 39 #include <gtest/gtest.h>
40 40
41 using namespace blink; 41 using namespace blink;
42 42
43 namespace { 43 namespace {
44 44
45 const double duration = 1.0; 45 const double duration = 1.0;
46 46
47 PassRefPtrWillBeRawPtr<AnimatableValue> unknownAnimatableValue(double n) 47 AnimatableValue* unknownAnimatableValue(double n)
48 { 48 {
49 return AnimatableUnknown::create(CSSPrimitiveValue::create(n, CSSPrimitiveVa lue::CSS_UNKNOWN).get()); 49 return AnimatableUnknown::create(CSSPrimitiveValue::create(n, CSSPrimitiveVa lue::CSS_UNKNOWN).get());
50 } 50 }
51 51
52 PassRefPtrWillBeRawPtr<AnimatableValue> pixelAnimatableValue(double n) 52 AnimatableValue* pixelAnimatableValue(double n)
53 { 53 {
54 return AnimatableLength::create(Length(n, Fixed), 1); 54 return AnimatableLength::create(Length(n, Fixed), 1);
55 } 55 }
56 56
57 AnimatableValueKeyframeVector keyframesAtZeroAndOne(PassRefPtrWillBeRawPtr<Anima tableValue> zeroValue, PassRefPtrWillBeRawPtr<AnimatableValue> oneValue) 57 AnimatableValueKeyframeVector keyframesAtZeroAndOne(AnimatableValue* zeroValue, AnimatableValue* oneValue)
58 { 58 {
59 AnimatableValueKeyframeVector keyframes(2); 59 AnimatableValueKeyframeVector keyframes(2);
60 keyframes[0] = AnimatableValueKeyframe::create(); 60 keyframes[0] = AnimatableValueKeyframe::create();
61 keyframes[0]->setOffset(0.0); 61 keyframes[0]->setOffset(0.0);
62 keyframes[0]->setPropertyValue(CSSPropertyLeft, zeroValue.get()); 62 keyframes[0]->setPropertyValue(CSSPropertyLeft, zeroValue);
63 keyframes[1] = AnimatableValueKeyframe::create(); 63 keyframes[1] = AnimatableValueKeyframe::create();
64 keyframes[1]->setOffset(1.0); 64 keyframes[1]->setOffset(1.0);
65 keyframes[1]->setPropertyValue(CSSPropertyLeft, oneValue.get()); 65 keyframes[1]->setPropertyValue(CSSPropertyLeft, oneValue);
66 return keyframes; 66 return keyframes;
67 } 67 }
68 68
69 void expectProperty(CSSPropertyID property, PassRefPtrWillBeRawPtr<Interpolation > interpolationValue) 69 void expectProperty(CSSPropertyID property, Interpolation* interpolationValue)
70 { 70 {
71 LegacyStyleInterpolation* interpolation = toLegacyStyleInterpolation(interpo lationValue.get()); 71 LegacyStyleInterpolation* interpolation = toLegacyStyleInterpolation(interpo lationValue);
72 ASSERT_EQ(property, interpolation->id()); 72 ASSERT_EQ(property, interpolation->id());
73 } 73 }
74 74
75 void expectDoubleValue(double expectedValue, PassRefPtrWillBeRawPtr<Interpolatio n> interpolationValue) 75 void expectDoubleValue(double expectedValue, Interpolation* interpolationValue)
76 { 76 {
77 LegacyStyleInterpolation* interpolation = toLegacyStyleInterpolation(interpo lationValue.get()); 77 LegacyStyleInterpolation* interpolation = toLegacyStyleInterpolation(interpo lationValue);
78 RefPtrWillBeRawPtr<AnimatableValue> value = interpolation->currentValue(); 78 AnimatableValue* value = interpolation->currentValue();
79 79
80 ASSERT_TRUE(value->isLength() || value->isUnknown()); 80 ASSERT_TRUE(value->isLength() || value->isUnknown());
81 81
82 double actualValue; 82 double actualValue;
83 if (value->isLength()) 83 if (value->isLength())
84 actualValue = toAnimatableLength(value.get())->length(1, ValueRangeAll). value(); 84 actualValue = toAnimatableLength(value)->length(1, ValueRangeAll).value( );
85 else 85 else
86 actualValue = toCSSPrimitiveValue(toAnimatableUnknown(value.get())->toCS SValue().get())->getDoubleValue(); 86 actualValue = toCSSPrimitiveValue(toAnimatableUnknown(value)->toCSSValue ().get())->getDoubleValue();
87 87
88 EXPECT_FLOAT_EQ(static_cast<float>(expectedValue), actualValue); 88 EXPECT_FLOAT_EQ(static_cast<float>(expectedValue), actualValue);
89 } 89 }
90 90
91 Interpolation* findValue(WillBeHeapVector<RefPtrWillBeMember<Interpolation>>& va lues, CSSPropertyID id) 91 Interpolation* findValue(HeapVector<Member<Interpolation>>& values, CSSPropertyI D id)
92 { 92 {
93 for (auto& value : values) { 93 for (auto& value : values) {
94 if (toLegacyStyleInterpolation(value.get())->id() == id) 94 if (toLegacyStyleInterpolation(value.get())->id() == id)
95 return value.get(); 95 return value.get();
96 } 96 }
97 return 0; 97 return 0;
98 } 98 }
99 99
100 100
101 TEST(AnimationKeyframeEffectModel, BasicOperation) 101 TEST(AnimationKeyframeEffectModel, BasicOperation)
102 { 102 {
103 AnimatableValueKeyframeVector keyframes = keyframesAtZeroAndOne(unknownAnima tableValue(3.0), unknownAnimatableValue(5.0)); 103 AnimatableValueKeyframeVector keyframes = keyframesAtZeroAndOne(unknownAnima tableValue(3.0), unknownAnimatableValue(5.0));
104 RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableVa lueKeyframeEffectModel::create(keyframes); 104 AnimatableValueKeyframeEffectModel* effect = AnimatableValueKeyframeEffectMo del::create(keyframes);
105 OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation>>> valu es = nullptr; 105 HeapVector<Member<Interpolation>>* values = nullptr;
106 effect->sample(0, 0.6, duration, values); 106 effect->sample(0, 0.6, duration, values);
107 ASSERT_EQ(1UL, values->size()); 107 ASSERT_EQ(1UL, values->size());
108 expectProperty(CSSPropertyLeft, values->at(0)); 108 expectProperty(CSSPropertyLeft, values->at(0));
109 expectDoubleValue(5.0, values->at(0)); 109 expectDoubleValue(5.0, values->at(0));
110 } 110 }
111 111
112 TEST(AnimationKeyframeEffectModel, CompositeReplaceNonInterpolable) 112 TEST(AnimationKeyframeEffectModel, CompositeReplaceNonInterpolable)
113 { 113 {
114 AnimatableValueKeyframeVector keyframes = keyframesAtZeroAndOne(unknownAnima tableValue(3.0), unknownAnimatableValue(5.0)); 114 AnimatableValueKeyframeVector keyframes = keyframesAtZeroAndOne(unknownAnima tableValue(3.0), unknownAnimatableValue(5.0));
115 keyframes[0]->setComposite(EffectModel::CompositeReplace); 115 keyframes[0]->setComposite(EffectModel::CompositeReplace);
116 keyframes[1]->setComposite(EffectModel::CompositeReplace); 116 keyframes[1]->setComposite(EffectModel::CompositeReplace);
117 RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableVa lueKeyframeEffectModel::create(keyframes); 117 AnimatableValueKeyframeEffectModel* effect = AnimatableValueKeyframeEffectMo del::create(keyframes);
118 OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation>>> valu es = nullptr; 118 HeapVector<Member<Interpolation>>* values = nullptr;
119 effect->sample(0, 0.6, duration, values); 119 effect->sample(0, 0.6, duration, values);
120 expectDoubleValue(5.0, values->at(0)); 120 expectDoubleValue(5.0, values->at(0));
121 } 121 }
122 122
123 TEST(AnimationKeyframeEffectModel, CompositeReplace) 123 TEST(AnimationKeyframeEffectModel, CompositeReplace)
124 { 124 {
125 AnimatableValueKeyframeVector keyframes = keyframesAtZeroAndOne(pixelAnimata bleValue(3.0), pixelAnimatableValue(5.0)); 125 AnimatableValueKeyframeVector keyframes = keyframesAtZeroAndOne(pixelAnimata bleValue(3.0), pixelAnimatableValue(5.0));
126 keyframes[0]->setComposite(EffectModel::CompositeReplace); 126 keyframes[0]->setComposite(EffectModel::CompositeReplace);
127 keyframes[1]->setComposite(EffectModel::CompositeReplace); 127 keyframes[1]->setComposite(EffectModel::CompositeReplace);
128 RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableVa lueKeyframeEffectModel::create(keyframes); 128 AnimatableValueKeyframeEffectModel* effect = AnimatableValueKeyframeEffectMo del::create(keyframes);
129 OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation>>> valu es = nullptr; 129 HeapVector<Member<Interpolation>>* values = nullptr;
130 effect->sample(0, 0.6, duration, values); 130 effect->sample(0, 0.6, duration, values);
131 expectDoubleValue(3.0 * 0.4 + 5.0 * 0.6, values->at(0)); 131 expectDoubleValue(3.0 * 0.4 + 5.0 * 0.6, values->at(0));
132 } 132 }
133 133
134 // FIXME: Re-enable this test once compositing of CompositeAdd is supported. 134 // FIXME: Re-enable this test once compositing of CompositeAdd is supported.
135 TEST(AnimationKeyframeEffectModel, DISABLED_CompositeAdd) 135 TEST(AnimationKeyframeEffectModel, DISABLED_CompositeAdd)
136 { 136 {
137 AnimatableValueKeyframeVector keyframes = keyframesAtZeroAndOne(pixelAnimata bleValue(3.0), pixelAnimatableValue(5.0)); 137 AnimatableValueKeyframeVector keyframes = keyframesAtZeroAndOne(pixelAnimata bleValue(3.0), pixelAnimatableValue(5.0));
138 keyframes[0]->setComposite(EffectModel::CompositeAdd); 138 keyframes[0]->setComposite(EffectModel::CompositeAdd);
139 keyframes[1]->setComposite(EffectModel::CompositeAdd); 139 keyframes[1]->setComposite(EffectModel::CompositeAdd);
140 RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableVa lueKeyframeEffectModel::create(keyframes); 140 AnimatableValueKeyframeEffectModel* effect = AnimatableValueKeyframeEffectMo del::create(keyframes);
141 OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation>>> valu es = nullptr; 141 HeapVector<Member<Interpolation>>* values = nullptr;
142 effect->sample(0, 0.6, duration, values); 142 effect->sample(0, 0.6, duration, values);
143 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));
144 } 144 }
145 145
146 TEST(AnimationKeyframeEffectModel, CompositeEaseIn) 146 TEST(AnimationKeyframeEffectModel, CompositeEaseIn)
147 { 147 {
148 AnimatableValueKeyframeVector keyframes = keyframesAtZeroAndOne(pixelAnimata bleValue(3.0), pixelAnimatableValue(5.0)); 148 AnimatableValueKeyframeVector keyframes = keyframesAtZeroAndOne(pixelAnimata bleValue(3.0), pixelAnimatableValue(5.0));
149 keyframes[0]->setComposite(EffectModel::CompositeReplace); 149 keyframes[0]->setComposite(EffectModel::CompositeReplace);
150 keyframes[0]->setEasing(CubicBezierTimingFunction::preset(CubicBezierTimingF unction::EaseIn)); 150 keyframes[0]->setEasing(CubicBezierTimingFunction::preset(CubicBezierTimingF unction::EaseIn));
151 keyframes[1]->setComposite(EffectModel::CompositeReplace); 151 keyframes[1]->setComposite(EffectModel::CompositeReplace);
152 RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableVa lueKeyframeEffectModel::create(keyframes); 152 AnimatableValueKeyframeEffectModel* effect = AnimatableValueKeyframeEffectMo del::create(keyframes);
153 OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation>>> valu es = nullptr; 153 HeapVector<Member<Interpolation>>* values = nullptr;
154 effect->sample(0, 0.6, duration, values); 154 effect->sample(0, 0.6, duration, values);
155 expectDoubleValue(3.8579516, values->at(0)); 155 expectDoubleValue(3.8579516, values->at(0));
156 effect->sample(0, 0.6, duration * 100, values); 156 effect->sample(0, 0.6, duration * 100, values);
157 expectDoubleValue(3.8582394, values->at(0)); 157 expectDoubleValue(3.8582394, values->at(0));
158 } 158 }
159 159
160 TEST(AnimationKeyframeEffectModel, CompositeCubicBezier) 160 TEST(AnimationKeyframeEffectModel, CompositeCubicBezier)
161 { 161 {
162 AnimatableValueKeyframeVector keyframes = keyframesAtZeroAndOne(pixelAnimata bleValue(3.0), pixelAnimatableValue(5.0)); 162 AnimatableValueKeyframeVector keyframes = keyframesAtZeroAndOne(pixelAnimata bleValue(3.0), pixelAnimatableValue(5.0));
163 keyframes[0]->setComposite(EffectModel::CompositeReplace); 163 keyframes[0]->setComposite(EffectModel::CompositeReplace);
164 keyframes[0]->setEasing(CubicBezierTimingFunction::create(0.42, 0, 0.58, 1)) ; 164 keyframes[0]->setEasing(CubicBezierTimingFunction::create(0.42, 0, 0.58, 1)) ;
165 keyframes[1]->setComposite(EffectModel::CompositeReplace); 165 keyframes[1]->setComposite(EffectModel::CompositeReplace);
166 RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableVa lueKeyframeEffectModel::create(keyframes); 166 AnimatableValueKeyframeEffectModel* effect = AnimatableValueKeyframeEffectMo del::create(keyframes);
167 OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation>>> valu es = nullptr; 167 HeapVector<Member<Interpolation>>* values = nullptr;
168 effect->sample(0, 0.6, duration, values); 168 effect->sample(0, 0.6, duration, values);
169 expectDoubleValue(4.3363357, values->at(0)); 169 expectDoubleValue(4.3363357, values->at(0));
170 effect->sample(0, 0.6, duration * 1000, values); 170 effect->sample(0, 0.6, duration * 1000, values);
171 expectDoubleValue(4.3362322, values->at(0)); 171 expectDoubleValue(4.3362322, values->at(0));
172 } 172 }
173 173
174 TEST(AnimationKeyframeEffectModel, ExtrapolateReplaceNonInterpolable) 174 TEST(AnimationKeyframeEffectModel, ExtrapolateReplaceNonInterpolable)
175 { 175 {
176 AnimatableValueKeyframeVector keyframes = keyframesAtZeroAndOne(unknownAnima tableValue(3.0), unknownAnimatableValue(5.0)); 176 AnimatableValueKeyframeVector keyframes = keyframesAtZeroAndOne(unknownAnima tableValue(3.0), unknownAnimatableValue(5.0));
177 keyframes[0]->setComposite(EffectModel::CompositeReplace); 177 keyframes[0]->setComposite(EffectModel::CompositeReplace);
178 keyframes[1]->setComposite(EffectModel::CompositeReplace); 178 keyframes[1]->setComposite(EffectModel::CompositeReplace);
179 RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableVa lueKeyframeEffectModel::create(keyframes); 179 AnimatableValueKeyframeEffectModel* effect = AnimatableValueKeyframeEffectMo del::create(keyframes);
180 OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation>>> valu es = nullptr; 180 HeapVector<Member<Interpolation>>* values = nullptr;
181 effect->sample(0, 1.6, duration, values); 181 effect->sample(0, 1.6, duration, values);
182 expectDoubleValue(5.0, values->at(0)); 182 expectDoubleValue(5.0, values->at(0));
183 } 183 }
184 184
185 TEST(AnimationKeyframeEffectModel, ExtrapolateReplace) 185 TEST(AnimationKeyframeEffectModel, ExtrapolateReplace)
186 { 186 {
187 AnimatableValueKeyframeVector keyframes = keyframesAtZeroAndOne(pixelAnimata bleValue(3.0), pixelAnimatableValue(5.0)); 187 AnimatableValueKeyframeVector keyframes = keyframesAtZeroAndOne(pixelAnimata bleValue(3.0), pixelAnimatableValue(5.0));
188 RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableVa lueKeyframeEffectModel::create(keyframes); 188 AnimatableValueKeyframeEffectModel* effect = AnimatableValueKeyframeEffectMo del::create(keyframes);
189 keyframes[0]->setComposite(EffectModel::CompositeReplace); 189 keyframes[0]->setComposite(EffectModel::CompositeReplace);
190 keyframes[1]->setComposite(EffectModel::CompositeReplace); 190 keyframes[1]->setComposite(EffectModel::CompositeReplace);
191 OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation>>> valu es = nullptr; 191 HeapVector<Member<Interpolation>>* values = nullptr;
192 effect->sample(0, 1.6, duration, values); 192 effect->sample(0, 1.6, duration, values);
193 expectDoubleValue(3.0 * -0.6 + 5.0 * 1.6, values->at(0)); 193 expectDoubleValue(3.0 * -0.6 + 5.0 * 1.6, values->at(0));
194 } 194 }
195 195
196 // FIXME: Re-enable this test once compositing of CompositeAdd is supported. 196 // FIXME: Re-enable this test once compositing of CompositeAdd is supported.
197 TEST(AnimationKeyframeEffectModel, DISABLED_ExtrapolateAdd) 197 TEST(AnimationKeyframeEffectModel, DISABLED_ExtrapolateAdd)
198 { 198 {
199 AnimatableValueKeyframeVector keyframes = keyframesAtZeroAndOne(pixelAnimata bleValue(3.0), pixelAnimatableValue(5.0)); 199 AnimatableValueKeyframeVector keyframes = keyframesAtZeroAndOne(pixelAnimata bleValue(3.0), pixelAnimatableValue(5.0));
200 keyframes[0]->setComposite(EffectModel::CompositeAdd); 200 keyframes[0]->setComposite(EffectModel::CompositeAdd);
201 keyframes[1]->setComposite(EffectModel::CompositeAdd); 201 keyframes[1]->setComposite(EffectModel::CompositeAdd);
202 RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableVa lueKeyframeEffectModel::create(keyframes); 202 AnimatableValueKeyframeEffectModel* effect = AnimatableValueKeyframeEffectMo del::create(keyframes);
203 OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation>>> valu es = nullptr; 203 HeapVector<Member<Interpolation>>* values = nullptr;
204 effect->sample(0, 1.6, duration, values); 204 effect->sample(0, 1.6, duration, values);
205 expectDoubleValue((7.0 + 3.0) * -0.6 + (7.0 + 5.0) * 1.6, values->at(0)); 205 expectDoubleValue((7.0 + 3.0) * -0.6 + (7.0 + 5.0) * 1.6, values->at(0));
206 } 206 }
207 207
208 TEST(AnimationKeyframeEffectModel, ZeroKeyframes) 208 TEST(AnimationKeyframeEffectModel, ZeroKeyframes)
209 { 209 {
210 RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableVa lueKeyframeEffectModel::create(AnimatableValueKeyframeVector()); 210 AnimatableValueKeyframeEffectModel* effect = AnimatableValueKeyframeEffectMo del::create(AnimatableValueKeyframeVector());
211 OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation>>> valu es = nullptr; 211 HeapVector<Member<Interpolation>>* values = nullptr;
212 effect->sample(0, 0.5, duration, values); 212 effect->sample(0, 0.5, duration, values);
213 EXPECT_TRUE(values->isEmpty()); 213 EXPECT_TRUE(values->isEmpty());
214 } 214 }
215 215
216 // FIXME: Re-enable this test once compositing of CompositeAdd is supported. 216 // FIXME: Re-enable this test once compositing of CompositeAdd is supported.
217 TEST(AnimationKeyframeEffectModel, DISABLED_SingleKeyframeAtOffsetZero) 217 TEST(AnimationKeyframeEffectModel, DISABLED_SingleKeyframeAtOffsetZero)
218 { 218 {
219 AnimatableValueKeyframeVector keyframes(1); 219 AnimatableValueKeyframeVector keyframes(1);
220 keyframes[0] = AnimatableValueKeyframe::create(); 220 keyframes[0] = AnimatableValueKeyframe::create();
221 keyframes[0]->setOffset(0.0); 221 keyframes[0]->setOffset(0.0);
222 keyframes[0]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(3.0). get()); 222 keyframes[0]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(3.0)) ;
223 223
224 RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableVa lueKeyframeEffectModel::create(keyframes); 224 AnimatableValueKeyframeEffectModel* effect = AnimatableValueKeyframeEffectMo del::create(keyframes);
225 OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation>>> valu es = nullptr; 225 HeapVector<Member<Interpolation>>* values = nullptr;
226 effect->sample(0, 0.6, duration, values); 226 effect->sample(0, 0.6, duration, values);
227 expectDoubleValue(3.0, values->at(0)); 227 expectDoubleValue(3.0, values->at(0));
228 } 228 }
229 229
230 // FIXME: Re-enable this test once compositing of CompositeAdd is supported. 230 // FIXME: Re-enable this test once compositing of CompositeAdd is supported.
231 TEST(AnimationKeyframeEffectModel, DISABLED_SingleKeyframeAtOffsetOne) 231 TEST(AnimationKeyframeEffectModel, DISABLED_SingleKeyframeAtOffsetOne)
232 { 232 {
233 AnimatableValueKeyframeVector keyframes(1); 233 AnimatableValueKeyframeVector keyframes(1);
234 keyframes[0] = AnimatableValueKeyframe::create(); 234 keyframes[0] = AnimatableValueKeyframe::create();
235 keyframes[0]->setOffset(1.0); 235 keyframes[0]->setOffset(1.0);
236 keyframes[0]->setPropertyValue(CSSPropertyLeft, pixelAnimatableValue(5.0).ge t()); 236 keyframes[0]->setPropertyValue(CSSPropertyLeft, pixelAnimatableValue(5.0));
237 237
238 RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableVa lueKeyframeEffectModel::create(keyframes); 238 AnimatableValueKeyframeEffectModel* effect = AnimatableValueKeyframeEffectMo del::create(keyframes);
239 OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation>>> valu es = nullptr; 239 HeapVector<Member<Interpolation>>* values = nullptr;
240 effect->sample(0, 0.6, duration, values); 240 effect->sample(0, 0.6, duration, values);
241 expectDoubleValue(7.0 * 0.4 + 5.0 * 0.6, values->at(0)); 241 expectDoubleValue(7.0 * 0.4 + 5.0 * 0.6, values->at(0));
242 } 242 }
243 243
244 TEST(AnimationKeyframeEffectModel, MoreThanTwoKeyframes) 244 TEST(AnimationKeyframeEffectModel, MoreThanTwoKeyframes)
245 { 245 {
246 AnimatableValueKeyframeVector keyframes(3); 246 AnimatableValueKeyframeVector keyframes(3);
247 keyframes[0] = AnimatableValueKeyframe::create(); 247 keyframes[0] = AnimatableValueKeyframe::create();
248 keyframes[0]->setOffset(0.0); 248 keyframes[0]->setOffset(0.0);
249 keyframes[0]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(3.0). get()); 249 keyframes[0]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(3.0)) ;
250 keyframes[1] = AnimatableValueKeyframe::create(); 250 keyframes[1] = AnimatableValueKeyframe::create();
251 keyframes[1]->setOffset(0.5); 251 keyframes[1]->setOffset(0.5);
252 keyframes[1]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(4.0). get()); 252 keyframes[1]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(4.0)) ;
253 keyframes[2] = AnimatableValueKeyframe::create(); 253 keyframes[2] = AnimatableValueKeyframe::create();
254 keyframes[2]->setOffset(1.0); 254 keyframes[2]->setOffset(1.0);
255 keyframes[2]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(5.0). get()); 255 keyframes[2]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(5.0)) ;
256 256
257 RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableVa lueKeyframeEffectModel::create(keyframes); 257 AnimatableValueKeyframeEffectModel* effect = AnimatableValueKeyframeEffectMo del::create(keyframes);
258 OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation>>> valu es = nullptr; 258 HeapVector<Member<Interpolation>>* values = nullptr;
259 effect->sample(0, 0.3, duration, values); 259 effect->sample(0, 0.3, duration, values);
260 expectDoubleValue(4.0, values->at(0)); 260 expectDoubleValue(4.0, values->at(0));
261 effect->sample(0, 0.8, duration, values); 261 effect->sample(0, 0.8, duration, values);
262 expectDoubleValue(5.0, values->at(0)); 262 expectDoubleValue(5.0, values->at(0));
263 } 263 }
264 264
265 TEST(AnimationKeyframeEffectModel, EndKeyframeOffsetsUnspecified) 265 TEST(AnimationKeyframeEffectModel, EndKeyframeOffsetsUnspecified)
266 { 266 {
267 AnimatableValueKeyframeVector keyframes(3); 267 AnimatableValueKeyframeVector keyframes(3);
268 keyframes[0] = AnimatableValueKeyframe::create(); 268 keyframes[0] = AnimatableValueKeyframe::create();
269 keyframes[0]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(3.0). get()); 269 keyframes[0]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(3.0)) ;
270 keyframes[1] = AnimatableValueKeyframe::create(); 270 keyframes[1] = AnimatableValueKeyframe::create();
271 keyframes[1]->setOffset(0.5); 271 keyframes[1]->setOffset(0.5);
272 keyframes[1]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(4.0). get()); 272 keyframes[1]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(4.0)) ;
273 keyframes[2] = AnimatableValueKeyframe::create(); 273 keyframes[2] = AnimatableValueKeyframe::create();
274 keyframes[2]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(5.0). get()); 274 keyframes[2]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(5.0)) ;
275 275
276 RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableVa lueKeyframeEffectModel::create(keyframes); 276 AnimatableValueKeyframeEffectModel* effect = AnimatableValueKeyframeEffectMo del::create(keyframes);
277 OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation>>> valu es = nullptr; 277 HeapVector<Member<Interpolation>>* values = nullptr;
278 effect->sample(0, 0.1, duration, values); 278 effect->sample(0, 0.1, duration, values);
279 expectDoubleValue(3.0, values->at(0)); 279 expectDoubleValue(3.0, values->at(0));
280 effect->sample(0, 0.6, duration, values); 280 effect->sample(0, 0.6, duration, values);
281 expectDoubleValue(4.0, values->at(0)); 281 expectDoubleValue(4.0, values->at(0));
282 effect->sample(0, 0.9, duration, values); 282 effect->sample(0, 0.9, duration, values);
283 expectDoubleValue(5.0, values->at(0)); 283 expectDoubleValue(5.0, values->at(0));
284 } 284 }
285 285
286 TEST(AnimationKeyframeEffectModel, SampleOnKeyframe) 286 TEST(AnimationKeyframeEffectModel, SampleOnKeyframe)
287 { 287 {
288 AnimatableValueKeyframeVector keyframes(3); 288 AnimatableValueKeyframeVector keyframes(3);
289 keyframes[0] = AnimatableValueKeyframe::create(); 289 keyframes[0] = AnimatableValueKeyframe::create();
290 keyframes[0]->setOffset(0.0); 290 keyframes[0]->setOffset(0.0);
291 keyframes[0]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(3.0). get()); 291 keyframes[0]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(3.0)) ;
292 keyframes[1] = AnimatableValueKeyframe::create(); 292 keyframes[1] = AnimatableValueKeyframe::create();
293 keyframes[1]->setOffset(0.5); 293 keyframes[1]->setOffset(0.5);
294 keyframes[1]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(4.0). get()); 294 keyframes[1]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(4.0)) ;
295 keyframes[2] = AnimatableValueKeyframe::create(); 295 keyframes[2] = AnimatableValueKeyframe::create();
296 keyframes[2]->setOffset(1.0); 296 keyframes[2]->setOffset(1.0);
297 keyframes[2]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(5.0). get()); 297 keyframes[2]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(5.0)) ;
298 298
299 RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableVa lueKeyframeEffectModel::create(keyframes); 299 AnimatableValueKeyframeEffectModel* effect = AnimatableValueKeyframeEffectMo del::create(keyframes);
300 OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation>>> valu es = nullptr; 300 HeapVector<Member<Interpolation>>* values = nullptr;
301 effect->sample(0, 0.0, duration, values); 301 effect->sample(0, 0.0, duration, values);
302 expectDoubleValue(3.0, values->at(0)); 302 expectDoubleValue(3.0, values->at(0));
303 effect->sample(0, 0.5, duration, values); 303 effect->sample(0, 0.5, duration, values);
304 expectDoubleValue(4.0, values->at(0)); 304 expectDoubleValue(4.0, values->at(0));
305 effect->sample(0, 1.0, duration, values); 305 effect->sample(0, 1.0, duration, values);
306 expectDoubleValue(5.0, values->at(0)); 306 expectDoubleValue(5.0, values->at(0));
307 } 307 }
308 308
309 TEST(AnimationKeyframeEffectModel, MultipleKeyframesWithSameOffset) 309 TEST(AnimationKeyframeEffectModel, MultipleKeyframesWithSameOffset)
310 { 310 {
311 AnimatableValueKeyframeVector keyframes(9); 311 AnimatableValueKeyframeVector keyframes(9);
312 keyframes[0] = AnimatableValueKeyframe::create(); 312 keyframes[0] = AnimatableValueKeyframe::create();
313 keyframes[0]->setOffset(0.0); 313 keyframes[0]->setOffset(0.0);
314 keyframes[0]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(0.0). get()); 314 keyframes[0]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(0.0)) ;
315 keyframes[1] = AnimatableValueKeyframe::create(); 315 keyframes[1] = AnimatableValueKeyframe::create();
316 keyframes[1]->setOffset(0.1); 316 keyframes[1]->setOffset(0.1);
317 keyframes[1]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(1.0). get()); 317 keyframes[1]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(1.0)) ;
318 keyframes[2] = AnimatableValueKeyframe::create(); 318 keyframes[2] = AnimatableValueKeyframe::create();
319 keyframes[2]->setOffset(0.1); 319 keyframes[2]->setOffset(0.1);
320 keyframes[2]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(2.0). get()); 320 keyframes[2]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(2.0)) ;
321 keyframes[3] = AnimatableValueKeyframe::create(); 321 keyframes[3] = AnimatableValueKeyframe::create();
322 keyframes[3]->setOffset(0.5); 322 keyframes[3]->setOffset(0.5);
323 keyframes[3]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(3.0). get()); 323 keyframes[3]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(3.0)) ;
324 keyframes[4] = AnimatableValueKeyframe::create(); 324 keyframes[4] = AnimatableValueKeyframe::create();
325 keyframes[4]->setOffset(0.5); 325 keyframes[4]->setOffset(0.5);
326 keyframes[4]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(4.0). get()); 326 keyframes[4]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(4.0)) ;
327 keyframes[5] = AnimatableValueKeyframe::create(); 327 keyframes[5] = AnimatableValueKeyframe::create();
328 keyframes[5]->setOffset(0.5); 328 keyframes[5]->setOffset(0.5);
329 keyframes[5]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(5.0). get()); 329 keyframes[5]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(5.0)) ;
330 keyframes[6] = AnimatableValueKeyframe::create(); 330 keyframes[6] = AnimatableValueKeyframe::create();
331 keyframes[6]->setOffset(0.9); 331 keyframes[6]->setOffset(0.9);
332 keyframes[6]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(6.0). get()); 332 keyframes[6]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(6.0)) ;
333 keyframes[7] = AnimatableValueKeyframe::create(); 333 keyframes[7] = AnimatableValueKeyframe::create();
334 keyframes[7]->setOffset(0.9); 334 keyframes[7]->setOffset(0.9);
335 keyframes[7]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(7.0). get()); 335 keyframes[7]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(7.0)) ;
336 keyframes[8] = AnimatableValueKeyframe::create(); 336 keyframes[8] = AnimatableValueKeyframe::create();
337 keyframes[8]->setOffset(1.0); 337 keyframes[8]->setOffset(1.0);
338 keyframes[8]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(7.0). get()); 338 keyframes[8]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(7.0)) ;
339 339
340 RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableVa lueKeyframeEffectModel::create(keyframes); 340 AnimatableValueKeyframeEffectModel* effect = AnimatableValueKeyframeEffectMo del::create(keyframes);
341 OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation>>> valu es = nullptr; 341 HeapVector<Member<Interpolation>>* values = nullptr;
342 effect->sample(0, 0.0, duration, values); 342 effect->sample(0, 0.0, duration, values);
343 expectDoubleValue(0.0, values->at(0)); 343 expectDoubleValue(0.0, values->at(0));
344 effect->sample(0, 0.2, duration, values); 344 effect->sample(0, 0.2, duration, values);
345 expectDoubleValue(2.0, values->at(0)); 345 expectDoubleValue(2.0, values->at(0));
346 effect->sample(0, 0.4, duration, values); 346 effect->sample(0, 0.4, duration, values);
347 expectDoubleValue(3.0, values->at(0)); 347 expectDoubleValue(3.0, values->at(0));
348 effect->sample(0, 0.5, duration, values); 348 effect->sample(0, 0.5, duration, values);
349 expectDoubleValue(5.0, values->at(0)); 349 expectDoubleValue(5.0, values->at(0));
350 effect->sample(0, 0.6, duration, values); 350 effect->sample(0, 0.6, duration, values);
351 expectDoubleValue(5.0, values->at(0)); 351 expectDoubleValue(5.0, values->at(0));
352 effect->sample(0, 0.8, duration, values); 352 effect->sample(0, 0.8, duration, values);
353 expectDoubleValue(6.0, values->at(0)); 353 expectDoubleValue(6.0, values->at(0));
354 effect->sample(0, 1.0, duration, values); 354 effect->sample(0, 1.0, duration, values);
355 expectDoubleValue(7.0, values->at(0)); 355 expectDoubleValue(7.0, values->at(0));
356 } 356 }
357 357
358 // FIXME: Re-enable this test once compositing of CompositeAdd is supported. 358 // FIXME: Re-enable this test once compositing of CompositeAdd is supported.
359 TEST(AnimationKeyframeEffectModel, DISABLED_PerKeyframeComposite) 359 TEST(AnimationKeyframeEffectModel, DISABLED_PerKeyframeComposite)
360 { 360 {
361 AnimatableValueKeyframeVector keyframes(2); 361 AnimatableValueKeyframeVector keyframes(2);
362 keyframes[0] = AnimatableValueKeyframe::create(); 362 keyframes[0] = AnimatableValueKeyframe::create();
363 keyframes[0]->setOffset(0.0); 363 keyframes[0]->setOffset(0.0);
364 keyframes[0]->setPropertyValue(CSSPropertyLeft, pixelAnimatableValue(3.0).ge t()); 364 keyframes[0]->setPropertyValue(CSSPropertyLeft, pixelAnimatableValue(3.0));
365 keyframes[1] = AnimatableValueKeyframe::create(); 365 keyframes[1] = AnimatableValueKeyframe::create();
366 keyframes[1]->setOffset(1.0); 366 keyframes[1]->setOffset(1.0);
367 keyframes[1]->setPropertyValue(CSSPropertyLeft, pixelAnimatableValue(5.0).ge t()); 367 keyframes[1]->setPropertyValue(CSSPropertyLeft, pixelAnimatableValue(5.0));
368 keyframes[1]->setComposite(EffectModel::CompositeAdd); 368 keyframes[1]->setComposite(EffectModel::CompositeAdd);
369 369
370 RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableVa lueKeyframeEffectModel::create(keyframes); 370 AnimatableValueKeyframeEffectModel* effect = AnimatableValueKeyframeEffectMo del::create(keyframes);
371 OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation>>> valu es = nullptr; 371 HeapVector<Member<Interpolation>>* values = nullptr;
372 effect->sample(0, 0.6, duration, values); 372 effect->sample(0, 0.6, duration, values);
373 expectDoubleValue(3.0 * 0.4 + (7.0 + 5.0) * 0.6, values->at(0)); 373 expectDoubleValue(3.0 * 0.4 + (7.0 + 5.0) * 0.6, values->at(0));
374 } 374 }
375 375
376 TEST(AnimationKeyframeEffectModel, MultipleProperties) 376 TEST(AnimationKeyframeEffectModel, MultipleProperties)
377 { 377 {
378 AnimatableValueKeyframeVector keyframes(2); 378 AnimatableValueKeyframeVector keyframes(2);
379 keyframes[0] = AnimatableValueKeyframe::create(); 379 keyframes[0] = AnimatableValueKeyframe::create();
380 keyframes[0]->setOffset(0.0); 380 keyframes[0]->setOffset(0.0);
381 keyframes[0]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(3.0). get()); 381 keyframes[0]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(3.0)) ;
382 keyframes[0]->setPropertyValue(CSSPropertyRight, unknownAnimatableValue(4.0) .get()); 382 keyframes[0]->setPropertyValue(CSSPropertyRight, unknownAnimatableValue(4.0) );
383 keyframes[1] = AnimatableValueKeyframe::create(); 383 keyframes[1] = AnimatableValueKeyframe::create();
384 keyframes[1]->setOffset(1.0); 384 keyframes[1]->setOffset(1.0);
385 keyframes[1]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(5.0). get()); 385 keyframes[1]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(5.0)) ;
386 keyframes[1]->setPropertyValue(CSSPropertyRight, unknownAnimatableValue(6.0) .get()); 386 keyframes[1]->setPropertyValue(CSSPropertyRight, unknownAnimatableValue(6.0) );
387 387
388 RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableVa lueKeyframeEffectModel::create(keyframes); 388 AnimatableValueKeyframeEffectModel* effect = AnimatableValueKeyframeEffectMo del::create(keyframes);
389 OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation>>> valu es = nullptr; 389 HeapVector<Member<Interpolation>>* values = nullptr;
390 effect->sample(0, 0.6, duration, values); 390 effect->sample(0, 0.6, duration, values);
391 EXPECT_EQ(2UL, values->size()); 391 EXPECT_EQ(2UL, values->size());
392 Interpolation* leftValue = findValue(*values.get(), CSSPropertyLeft); 392 Interpolation* leftValue = findValue(*values, CSSPropertyLeft);
393 ASSERT_TRUE(leftValue); 393 ASSERT_TRUE(leftValue);
394 expectDoubleValue(5.0, leftValue); 394 expectDoubleValue(5.0, leftValue);
395 Interpolation* rightValue = findValue(*values.get(), CSSPropertyRight); 395 Interpolation* rightValue = findValue(*values, CSSPropertyRight);
396 ASSERT_TRUE(rightValue); 396 ASSERT_TRUE(rightValue);
397 expectDoubleValue(6.0, rightValue); 397 expectDoubleValue(6.0, rightValue);
398 } 398 }
399 399
400 // FIXME: Re-enable this test once compositing of CompositeAdd is supported. 400 // FIXME: Re-enable this test once compositing of CompositeAdd is supported.
401 TEST(AnimationKeyframeEffectModel, DISABLED_RecompositeCompositableValue) 401 TEST(AnimationKeyframeEffectModel, DISABLED_RecompositeCompositableValue)
402 { 402 {
403 AnimatableValueKeyframeVector keyframes = keyframesAtZeroAndOne(pixelAnimata bleValue(3.0), pixelAnimatableValue(5.0)); 403 AnimatableValueKeyframeVector keyframes = keyframesAtZeroAndOne(pixelAnimata bleValue(3.0), pixelAnimatableValue(5.0));
404 keyframes[0]->setComposite(EffectModel::CompositeAdd); 404 keyframes[0]->setComposite(EffectModel::CompositeAdd);
405 keyframes[1]->setComposite(EffectModel::CompositeAdd); 405 keyframes[1]->setComposite(EffectModel::CompositeAdd);
406 RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableVa lueKeyframeEffectModel::create(keyframes); 406 AnimatableValueKeyframeEffectModel* effect = AnimatableValueKeyframeEffectMo del::create(keyframes);
407 OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation>>> valu es = nullptr; 407 HeapVector<Member<Interpolation>>* values = nullptr;
408 effect->sample(0, 0.6, duration, values); 408 effect->sample(0, 0.6, duration, values);
409 expectDoubleValue((7.0 + 3.0) * 0.4 + (7.0 + 5.0) * 0.6, values->at(0)); 409 expectDoubleValue((7.0 + 3.0) * 0.4 + (7.0 + 5.0) * 0.6, values->at(0));
410 expectDoubleValue((9.0 + 3.0) * 0.4 + (9.0 + 5.0) * 0.6, values->at(0)); 410 expectDoubleValue((9.0 + 3.0) * 0.4 + (9.0 + 5.0) * 0.6, values->at(0));
411 } 411 }
412 412
413 TEST(AnimationKeyframeEffectModel, MultipleIterations) 413 TEST(AnimationKeyframeEffectModel, MultipleIterations)
414 { 414 {
415 AnimatableValueKeyframeVector keyframes = keyframesAtZeroAndOne(pixelAnimata bleValue(1.0), pixelAnimatableValue(3.0)); 415 AnimatableValueKeyframeVector keyframes = keyframesAtZeroAndOne(pixelAnimata bleValue(1.0), pixelAnimatableValue(3.0));
416 RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableVa lueKeyframeEffectModel::create(keyframes); 416 AnimatableValueKeyframeEffectModel* effect = AnimatableValueKeyframeEffectMo del::create(keyframes);
417 OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation>>> valu es = nullptr; 417 HeapVector<Member<Interpolation>>* values = nullptr;
418 effect->sample(0, 0.5, duration, values); 418 effect->sample(0, 0.5, duration, values);
419 expectDoubleValue(2.0, values->at(0)); 419 expectDoubleValue(2.0, values->at(0));
420 effect->sample(1, 0.5, duration, values); 420 effect->sample(1, 0.5, duration, values);
421 expectDoubleValue(2.0, values->at(0)); 421 expectDoubleValue(2.0, values->at(0));
422 effect->sample(2, 0.5, duration, values); 422 effect->sample(2, 0.5, duration, values);
423 expectDoubleValue(2.0, values->at(0)); 423 expectDoubleValue(2.0, values->at(0));
424 } 424 }
425 425
426 // FIXME: Re-enable this test once compositing of CompositeAdd is supported. 426 // FIXME: Re-enable this test once compositing of CompositeAdd is supported.
427 TEST(AnimationKeyframeEffectModel, DISABLED_DependsOnUnderlyingValue) 427 TEST(AnimationKeyframeEffectModel, DISABLED_DependsOnUnderlyingValue)
428 { 428 {
429 AnimatableValueKeyframeVector keyframes(3); 429 AnimatableValueKeyframeVector keyframes(3);
430 keyframes[0] = AnimatableValueKeyframe::create(); 430 keyframes[0] = AnimatableValueKeyframe::create();
431 keyframes[0]->setOffset(0.0); 431 keyframes[0]->setOffset(0.0);
432 keyframes[0]->setPropertyValue(CSSPropertyLeft, pixelAnimatableValue(1.0).ge t()); 432 keyframes[0]->setPropertyValue(CSSPropertyLeft, pixelAnimatableValue(1.0));
433 keyframes[0]->setComposite(EffectModel::CompositeAdd); 433 keyframes[0]->setComposite(EffectModel::CompositeAdd);
434 keyframes[1] = AnimatableValueKeyframe::create(); 434 keyframes[1] = AnimatableValueKeyframe::create();
435 keyframes[1]->setOffset(0.5); 435 keyframes[1]->setOffset(0.5);
436 keyframes[1]->setPropertyValue(CSSPropertyLeft, pixelAnimatableValue(1.0).ge t()); 436 keyframes[1]->setPropertyValue(CSSPropertyLeft, pixelAnimatableValue(1.0));
437 keyframes[2] = AnimatableValueKeyframe::create(); 437 keyframes[2] = AnimatableValueKeyframe::create();
438 keyframes[2]->setOffset(1.0); 438 keyframes[2]->setOffset(1.0);
439 keyframes[2]->setPropertyValue(CSSPropertyLeft, pixelAnimatableValue(1.0).ge t()); 439 keyframes[2]->setPropertyValue(CSSPropertyLeft, pixelAnimatableValue(1.0));
440 440
441 RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableVa lueKeyframeEffectModel::create(keyframes); 441 AnimatableValueKeyframeEffectModel* effect = AnimatableValueKeyframeEffectMo del::create(keyframes);
442 OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation>>> valu es = nullptr; 442 HeapVector<Member<Interpolation>>* values = nullptr;
443 effect->sample(0, 0, duration, values); 443 effect->sample(0, 0, duration, values);
444 EXPECT_TRUE(values->at(0)); 444 EXPECT_TRUE(values->at(0));
445 effect->sample(0, 0.1, duration, values); 445 effect->sample(0, 0.1, duration, values);
446 EXPECT_TRUE(values->at(0)); 446 EXPECT_TRUE(values->at(0));
447 effect->sample(0, 0.25, duration, values); 447 effect->sample(0, 0.25, duration, values);
448 EXPECT_TRUE(values->at(0)); 448 EXPECT_TRUE(values->at(0));
449 effect->sample(0, 0.4, duration, values); 449 effect->sample(0, 0.4, duration, values);
450 EXPECT_TRUE(values->at(0)); 450 EXPECT_TRUE(values->at(0));
451 effect->sample(0, 0.5, duration, values); 451 effect->sample(0, 0.5, duration, values);
452 EXPECT_FALSE(values->at(0)); 452 EXPECT_FALSE(values->at(0));
453 effect->sample(0, 0.6, duration, values); 453 effect->sample(0, 0.6, duration, values);
454 EXPECT_FALSE(values->at(0)); 454 EXPECT_FALSE(values->at(0));
455 effect->sample(0, 0.75, duration, values); 455 effect->sample(0, 0.75, duration, values);
456 EXPECT_FALSE(values->at(0)); 456 EXPECT_FALSE(values->at(0));
457 effect->sample(0, 0.8, duration, values); 457 effect->sample(0, 0.8, duration, values);
458 EXPECT_FALSE(values->at(0)); 458 EXPECT_FALSE(values->at(0));
459 effect->sample(0, 1, duration, values); 459 effect->sample(0, 1, duration, values);
460 EXPECT_FALSE(values->at(0)); 460 EXPECT_FALSE(values->at(0));
461 } 461 }
462 462
463 TEST(AnimationKeyframeEffectModel, AddSyntheticKeyframes) 463 TEST(AnimationKeyframeEffectModel, AddSyntheticKeyframes)
464 { 464 {
465 AnimatableValueKeyframeVector keyframes(1); 465 AnimatableValueKeyframeVector keyframes(1);
466 keyframes[0] = AnimatableValueKeyframe::create(); 466 keyframes[0] = AnimatableValueKeyframe::create();
467 keyframes[0]->setOffset(0.5); 467 keyframes[0]->setOffset(0.5);
468 keyframes[0]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(4.0). get()); 468 keyframes[0]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(4.0)) ;
469 469
470 RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableVa lueKeyframeEffectModel::create(keyframes); 470 AnimatableValueKeyframeEffectModel* effect = AnimatableValueKeyframeEffectMo del::create(keyframes);
471 const AnimatableValuePropertySpecificKeyframeVector& propertySpecificKeyfram es = effect->getPropertySpecificKeyframes(PropertyHandle(CSSPropertyLeft)); 471 const AnimatableValuePropertySpecificKeyframeVector& propertySpecificKeyfram es = effect->getPropertySpecificKeyframes(PropertyHandle(CSSPropertyLeft));
472 EXPECT_EQ(3U, propertySpecificKeyframes.size()); 472 EXPECT_EQ(3U, propertySpecificKeyframes.size());
473 EXPECT_DOUBLE_EQ(0.0, propertySpecificKeyframes[0]->offset()); 473 EXPECT_DOUBLE_EQ(0.0, propertySpecificKeyframes[0]->offset());
474 EXPECT_DOUBLE_EQ(0.5, propertySpecificKeyframes[1]->offset()); 474 EXPECT_DOUBLE_EQ(0.5, propertySpecificKeyframes[1]->offset());
475 EXPECT_DOUBLE_EQ(1.0, propertySpecificKeyframes[2]->offset()); 475 EXPECT_DOUBLE_EQ(1.0, propertySpecificKeyframes[2]->offset());
476 } 476 }
477 477
478 TEST(AnimationKeyframeEffectModel, ToKeyframeEffectModel) 478 TEST(AnimationKeyframeEffectModel, ToKeyframeEffectModel)
479 { 479 {
480 AnimatableValueKeyframeVector keyframes(0); 480 AnimatableValueKeyframeVector keyframes(0);
481 RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = AnimatableVa lueKeyframeEffectModel::create(keyframes); 481 AnimatableValueKeyframeEffectModel* effect = AnimatableValueKeyframeEffectMo del::create(keyframes);
482 482
483 EffectModel* baseEffect = effect.get(); 483 EffectModel* baseEffect = effect;
484 EXPECT_TRUE(toAnimatableValueKeyframeEffectModel(baseEffect)); 484 EXPECT_TRUE(toAnimatableValueKeyframeEffectModel(baseEffect));
485 } 485 }
486 486
487 } // namespace 487 } // namespace
488 488
489 namespace blink { 489 namespace blink {
490 490
491 class KeyframeEffectModelTest : public ::testing::Test { 491 class KeyframeEffectModelTest : public ::testing::Test {
492 public: 492 public:
493 static KeyframeVector normalizedKeyframes(const KeyframeVector& keyframes) 493 static KeyframeVector normalizedKeyframes(const KeyframeVector& keyframes)
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
566 EXPECT_DOUBLE_EQ(0.6, result[5]->offset()); 566 EXPECT_DOUBLE_EQ(0.6, result[5]->offset());
567 EXPECT_DOUBLE_EQ(0.7, result[6]->offset()); 567 EXPECT_DOUBLE_EQ(0.7, result[6]->offset());
568 EXPECT_DOUBLE_EQ(0.8, result[7]->offset()); 568 EXPECT_DOUBLE_EQ(0.8, result[7]->offset());
569 EXPECT_DOUBLE_EQ(0.85, result[8]->offset()); 569 EXPECT_DOUBLE_EQ(0.85, result[8]->offset());
570 EXPECT_DOUBLE_EQ(0.9, result[9]->offset()); 570 EXPECT_DOUBLE_EQ(0.9, result[9]->offset());
571 EXPECT_DOUBLE_EQ(0.95, result[10]->offset()); 571 EXPECT_DOUBLE_EQ(0.95, result[10]->offset());
572 EXPECT_DOUBLE_EQ(1.0, result[11]->offset()); 572 EXPECT_DOUBLE_EQ(1.0, result[11]->offset());
573 } 573 }
574 574
575 } // namespace blink 575 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698