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

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

Issue 203463009: Web Animations API: Fix Synthetic keyframes + partial keyframes (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Add asserts that keyframe compositeOperations are replace in ensureInterpolationEffect Created 6 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 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 RefPtrWillBeRawPtr<KeyframeEffectModel> effect = KeyframeEffectModel::create (keyframes); 182 RefPtrWillBeRawPtr<KeyframeEffectModel> effect = KeyframeEffectModel::create (keyframes);
183 expectDoubleValue((7.0 + 3.0) * -0.6 + (7.0 + 5.0) * 1.6, effect->sample(0, 1.6)->at(0)); 183 expectDoubleValue((7.0 + 3.0) * -0.6 + (7.0 + 5.0) * 1.6, effect->sample(0, 1.6)->at(0));
184 } 184 }
185 185
186 TEST(AnimationKeyframeEffectModel, ZeroKeyframes) 186 TEST(AnimationKeyframeEffectModel, ZeroKeyframes)
187 { 187 {
188 RefPtrWillBeRawPtr<KeyframeEffectModel> effect = KeyframeEffectModel::create (KeyframeEffectModel::KeyframeVector()); 188 RefPtrWillBeRawPtr<KeyframeEffectModel> effect = KeyframeEffectModel::create (KeyframeEffectModel::KeyframeVector());
189 EXPECT_TRUE(effect->sample(0, 0.5)->isEmpty()); 189 EXPECT_TRUE(effect->sample(0, 0.5)->isEmpty());
190 } 190 }
191 191
192 TEST(AnimationKeyframeEffectModel, SingleKeyframeAtOffsetZero) 192 TEST(AnimationKeyframeEffectModel, DISABLED_SingleKeyframeAtOffsetZero)
dstockwell 2014/03/20 01:05:11 // FIXME
193 { 193 {
194 KeyframeEffectModel::KeyframeVector keyframes(1); 194 KeyframeEffectModel::KeyframeVector keyframes(1);
195 keyframes[0] = Keyframe::create(); 195 keyframes[0] = Keyframe::create();
196 keyframes[0]->setOffset(0.0); 196 keyframes[0]->setOffset(0.0);
197 keyframes[0]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(3.0). get()); 197 keyframes[0]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(3.0). get());
198 198
199 RefPtrWillBeRawPtr<KeyframeEffectModel> effect = KeyframeEffectModel::create (keyframes); 199 RefPtrWillBeRawPtr<KeyframeEffectModel> effect = KeyframeEffectModel::create (keyframes);
200 expectDoubleValue(3.0, effect->sample(0, 0.6)->at(0)); 200 expectDoubleValue(3.0, effect->sample(0, 0.6)->at(0));
201 } 201 }
202 202
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
260 keyframes[2]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(5.0). get()); 260 keyframes[2]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(5.0). get());
261 261
262 RefPtrWillBeRawPtr<KeyframeEffectModel> effect = KeyframeEffectModel::create (keyframes); 262 RefPtrWillBeRawPtr<KeyframeEffectModel> effect = KeyframeEffectModel::create (keyframes);
263 expectDoubleValue(3.0, effect->sample(0, 0.0)->at(0)); 263 expectDoubleValue(3.0, effect->sample(0, 0.0)->at(0));
264 expectDoubleValue(4.0, effect->sample(0, 0.5)->at(0)); 264 expectDoubleValue(4.0, effect->sample(0, 0.5)->at(0));
265 expectDoubleValue(5.0, effect->sample(0, 1.0)->at(0)); 265 expectDoubleValue(5.0, effect->sample(0, 1.0)->at(0));
266 } 266 }
267 267
268 TEST(AnimationKeyframeEffectModel, MultipleKeyframesWithSameOffset) 268 TEST(AnimationKeyframeEffectModel, MultipleKeyframesWithSameOffset)
269 { 269 {
270 KeyframeEffectModel::KeyframeVector keyframes(7); 270 KeyframeEffectModel::KeyframeVector keyframes(9);
271 keyframes[0] = Keyframe::create(); 271 keyframes[0] = Keyframe::create();
272 keyframes[0]->setOffset(0.1); 272 keyframes[0]->setOffset(0.0);
273 keyframes[0]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(1.0). get()); 273 keyframes[0]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(0.0). get());
274 keyframes[1] = Keyframe::create(); 274 keyframes[1] = Keyframe::create();
275 keyframes[1]->setOffset(0.1); 275 keyframes[1]->setOffset(0.1);
276 keyframes[1]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(2.0). get()); 276 keyframes[1]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(1.0). get());
277 keyframes[2] = Keyframe::create(); 277 keyframes[2] = Keyframe::create();
278 keyframes[2]->setOffset(0.5); 278 keyframes[2]->setOffset(0.1);
279 keyframes[2]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(3.0). get()); 279 keyframes[2]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(2.0). get());
280 keyframes[3] = Keyframe::create(); 280 keyframes[3] = Keyframe::create();
281 keyframes[3]->setOffset(0.5); 281 keyframes[3]->setOffset(0.5);
282 keyframes[3]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(4.0). get()); 282 keyframes[3]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(3.0). get());
283 keyframes[4] = Keyframe::create(); 283 keyframes[4] = Keyframe::create();
284 keyframes[4]->setOffset(0.5); 284 keyframes[4]->setOffset(0.5);
285 keyframes[4]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(5.0). get()); 285 keyframes[4]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(4.0). get());
286 keyframes[5] = Keyframe::create(); 286 keyframes[5] = Keyframe::create();
287 keyframes[5]->setOffset(0.9); 287 keyframes[5]->setOffset(0.5);
288 keyframes[5]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(6.0). get()); 288 keyframes[5]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(5.0). get());
289 keyframes[6] = Keyframe::create(); 289 keyframes[6] = Keyframe::create();
290 keyframes[6]->setOffset(0.9); 290 keyframes[6]->setOffset(0.9);
291 keyframes[6]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(7.0). get()); 291 keyframes[6]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(6.0). get());
292 keyframes[7] = Keyframe::create();
293 keyframes[7]->setOffset(0.9);
294 keyframes[7]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(7.0). get());
295 keyframes[8] = Keyframe::create();
296 keyframes[8]->setOffset(1.0);
297 keyframes[8]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(7.0). get());
292 298
293 RefPtrWillBeRawPtr<KeyframeEffectModel> effect = KeyframeEffectModel::create (keyframes); 299 RefPtrWillBeRawPtr<KeyframeEffectModel> effect = KeyframeEffectModel::create (keyframes);
294 expectDoubleValue(2.0, effect->sample(0, 0.0)->at(0)); 300 expectDoubleValue(0.0, effect->sample(0, 0.0)->at(0));
295 expectDoubleValue(2.0, effect->sample(0, 0.2)->at(0)); 301 expectDoubleValue(2.0, effect->sample(0, 0.2)->at(0));
296 expectDoubleValue(3.0, effect->sample(0, 0.4)->at(0)); 302 expectDoubleValue(3.0, effect->sample(0, 0.4)->at(0));
297 expectDoubleValue(5.0, effect->sample(0, 0.5)->at(0)); 303 expectDoubleValue(5.0, effect->sample(0, 0.5)->at(0));
298 expectDoubleValue(5.0, effect->sample(0, 0.6)->at(0)); 304 expectDoubleValue(5.0, effect->sample(0, 0.6)->at(0));
299 expectDoubleValue(6.0, effect->sample(0, 0.8)->at(0)); 305 expectDoubleValue(6.0, effect->sample(0, 0.8)->at(0));
300 expectDoubleValue(6.0, effect->sample(0, 1.0)->at(0)); 306 expectDoubleValue(7.0, effect->sample(0, 1.0)->at(0));
301 } 307 }
302 308
303 TEST(AnimationKeyframeEffectModel, DISABLED_PerKeyframeComposite) 309 TEST(AnimationKeyframeEffectModel, DISABLED_PerKeyframeComposite)
304 { 310 {
305 KeyframeEffectModel::KeyframeVector keyframes(2); 311 KeyframeEffectModel::KeyframeVector keyframes(2);
306 keyframes[0] = Keyframe::create(); 312 keyframes[0] = Keyframe::create();
307 keyframes[0]->setOffset(0.0); 313 keyframes[0]->setOffset(0.0);
308 keyframes[0]->setPropertyValue(CSSPropertyLeft, pixelAnimatableValue(3.0).ge t()); 314 keyframes[0]->setPropertyValue(CSSPropertyLeft, pixelAnimatableValue(3.0).ge t());
309 keyframes[1] = Keyframe::create(); 315 keyframes[1] = Keyframe::create();
310 keyframes[1]->setOffset(1.0); 316 keyframes[1]->setOffset(1.0);
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
377 EXPECT_TRUE(effect->sample(0, 0.1)->at(0)); 383 EXPECT_TRUE(effect->sample(0, 0.1)->at(0));
378 EXPECT_TRUE(effect->sample(0, 0.25)->at(0)); 384 EXPECT_TRUE(effect->sample(0, 0.25)->at(0));
379 EXPECT_TRUE(effect->sample(0, 0.4)->at(0)); 385 EXPECT_TRUE(effect->sample(0, 0.4)->at(0));
380 EXPECT_FALSE(effect->sample(0, 0.5)->at(0)); 386 EXPECT_FALSE(effect->sample(0, 0.5)->at(0));
381 EXPECT_FALSE(effect->sample(0, 0.6)->at(0)); 387 EXPECT_FALSE(effect->sample(0, 0.6)->at(0));
382 EXPECT_FALSE(effect->sample(0, 0.75)->at(0)); 388 EXPECT_FALSE(effect->sample(0, 0.75)->at(0));
383 EXPECT_FALSE(effect->sample(0, 0.8)->at(0)); 389 EXPECT_FALSE(effect->sample(0, 0.8)->at(0));
384 EXPECT_FALSE(effect->sample(0, 1)->at(0)); 390 EXPECT_FALSE(effect->sample(0, 1)->at(0));
385 } 391 }
386 392
393 TEST(AnimationKeyframeEffectModel, AddSyntheticKeyframes)
394 {
395 KeyframeEffectModel::KeyframeVector keyframes(1);
396 keyframes[0] = Keyframe::create();
397 keyframes[0]->setOffset(0.5);
398 keyframes[0]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(4.0). get());
399
400 RefPtrWillBeRawPtr<KeyframeEffectModel> effect = KeyframeEffectModel::create (keyframes);
401 const KeyframeEffectModel::PropertySpecificKeyframeVector& propertySpecificK eyframes = effect->getPropertySpecificKeyframes(CSSPropertyLeft);
402 EXPECT_EQ(3U, propertySpecificKeyframes.size());
403 EXPECT_DOUBLE_EQ(0.0, propertySpecificKeyframes[0]->offset());
404 EXPECT_DOUBLE_EQ(0.5, propertySpecificKeyframes[1]->offset());
405 EXPECT_DOUBLE_EQ(1.0, propertySpecificKeyframes[2]->offset());
406 }
407
387 TEST(AnimationKeyframeEffectModel, ToKeyframeEffectModel) 408 TEST(AnimationKeyframeEffectModel, ToKeyframeEffectModel)
388 { 409 {
389 KeyframeEffectModel::KeyframeVector keyframes(0); 410 KeyframeEffectModel::KeyframeVector keyframes(0);
390 RefPtrWillBeRawPtr<KeyframeEffectModel> effect = KeyframeEffectModel::create (keyframes); 411 RefPtrWillBeRawPtr<KeyframeEffectModel> effect = KeyframeEffectModel::create (keyframes);
391 412
392 AnimationEffect* baseEffect = effect.get(); 413 AnimationEffect* baseEffect = effect.get();
393 EXPECT_TRUE(toKeyframeEffectModel(baseEffect)); 414 EXPECT_TRUE(toKeyframeEffectModel(baseEffect));
394 } 415 }
395 416
396 } // namespace 417 } // namespace
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
524 EXPECT_DOUBLE_EQ(0.6, result[5]->offset()); 545 EXPECT_DOUBLE_EQ(0.6, result[5]->offset());
525 EXPECT_DOUBLE_EQ(0.7, result[6]->offset()); 546 EXPECT_DOUBLE_EQ(0.7, result[6]->offset());
526 EXPECT_DOUBLE_EQ(0.8, result[7]->offset()); 547 EXPECT_DOUBLE_EQ(0.8, result[7]->offset());
527 EXPECT_DOUBLE_EQ(0.85, result[8]->offset()); 548 EXPECT_DOUBLE_EQ(0.85, result[8]->offset());
528 EXPECT_DOUBLE_EQ(0.9, result[9]->offset()); 549 EXPECT_DOUBLE_EQ(0.9, result[9]->offset());
529 EXPECT_DOUBLE_EQ(0.95, result[10]->offset()); 550 EXPECT_DOUBLE_EQ(0.95, result[10]->offset());
530 EXPECT_DOUBLE_EQ(1.0, result[11]->offset()); 551 EXPECT_DOUBLE_EQ(1.0, result[11]->offset());
531 } 552 }
532 553
533 } // namespace WebCore 554 } // namespace WebCore
OLDNEW
« Source/core/animation/EffectInput.cpp ('K') | « Source/core/animation/KeyframeEffectModel.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698