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

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

Issue 210783002: Oilpan: Move Interpolation's hierarchy to oilpan's heap (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: 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 | Annotate | Revision Log
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 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 KeyframeEffectModel::KeyframeVector keyframes(2); 59 KeyframeEffectModel::KeyframeVector keyframes(2);
60 keyframes[0] = Keyframe::create(); 60 keyframes[0] = Keyframe::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.get());
63 keyframes[1] = Keyframe::create(); 63 keyframes[1] = Keyframe::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.get());
66 return keyframes; 66 return keyframes;
67 } 67 }
68 68
69 void expectProperty(CSSPropertyID property, PassRefPtr<Interpolation> interpolat ionValue) 69 void expectProperty(CSSPropertyID property, PassRefPtrWillBeRawPtr<Interpolation > interpolationValue)
70 { 70 {
71 LegacyStyleInterpolation* interpolation = toLegacyStyleInterpolation(interpo lationValue.get()); 71 LegacyStyleInterpolation* interpolation = toLegacyStyleInterpolation(interpo lationValue.get());
72 ASSERT_EQ(property, interpolation->id()); 72 ASSERT_EQ(property, interpolation->id());
73 } 73 }
74 74
75 void expectDoubleValue(double expectedValue, PassRefPtr<Interpolation> interpola tionValue) 75 void expectDoubleValue(double expectedValue, PassRefPtrWillBeRawPtr<Interpolatio n> interpolationValue)
76 { 76 {
77 LegacyStyleInterpolation* interpolation = toLegacyStyleInterpolation(interpo lationValue.get()); 77 LegacyStyleInterpolation* interpolation = toLegacyStyleInterpolation(interpo lationValue.get());
78 RefPtrWillBeRawPtr<AnimatableValue> value = interpolation->currentValue(); 78 RefPtrWillBeRawPtr<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 = toCSSPrimitiveValue(toAnimatableLength(value.get())->toCSS Value().get())->getDoubleValue(); 84 actualValue = toCSSPrimitiveValue(toAnimatableLength(value.get())->toCSS Value().get())->getDoubleValue();
85 else 85 else
86 actualValue = toCSSPrimitiveValue(toAnimatableUnknown(value.get())->toCS SValue().get())->getDoubleValue(); 86 actualValue = toCSSPrimitiveValue(toAnimatableUnknown(value.get())->toCS SValue().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(Vector<RefPtr<Interpolation> >& values, CSSPropertyID i d) 91 Interpolation* findValue(WillBeHeapVector<RefPtrWillBeMember<Interpolation> >& v alues, CSSPropertyID id)
92 { 92 {
93 for (size_t i = 0; i < values.size(); ++i) { 93 for (size_t i = 0; i < values.size(); ++i) {
94 LegacyStyleInterpolation* value = toLegacyStyleInterpolation(values.at(i ).get()); 94 LegacyStyleInterpolation* value = toLegacyStyleInterpolation(values.at(i ).get());
95 if (value->id() == id) 95 if (value->id() == id)
96 return value; 96 return value;
97 } 97 }
98 return 0; 98 return 0;
99 } 99 }
100 100
101 101
102 TEST(AnimationKeyframeEffectModel, BasicOperation) 102 TEST(AnimationKeyframeEffectModel, BasicOperation)
103 { 103 {
104 KeyframeEffectModel::KeyframeVector keyframes = keyframesAtZeroAndOne(unknow nAnimatableValue(3.0), unknownAnimatableValue(5.0)); 104 KeyframeEffectModel::KeyframeVector keyframes = keyframesAtZeroAndOne(unknow nAnimatableValue(3.0), unknownAnimatableValue(5.0));
105 RefPtrWillBeRawPtr<KeyframeEffectModel> effect = KeyframeEffectModel::create (keyframes); 105 RefPtrWillBeRawPtr<KeyframeEffectModel> effect = KeyframeEffectModel::create (keyframes);
106 OwnPtr<Vector<RefPtr<Interpolation> > > values = effect->sample(0, 0.6, dura tion); 106 OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation> > > va lues = effect->sample(0, 0.6, duration);
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 KeyframeEffectModel::KeyframeVector keyframes = keyframesAtZeroAndOne(unknow nAnimatableValue(3.0), unknownAnimatableValue(5.0)); 114 KeyframeEffectModel::KeyframeVector keyframes = keyframesAtZeroAndOne(unknow nAnimatableValue(3.0), unknownAnimatableValue(5.0));
115 keyframes[0]->setComposite(AnimationEffect::CompositeReplace); 115 keyframes[0]->setComposite(AnimationEffect::CompositeReplace);
116 keyframes[1]->setComposite(AnimationEffect::CompositeReplace); 116 keyframes[1]->setComposite(AnimationEffect::CompositeReplace);
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after
336 keyframes[0] = Keyframe::create(); 336 keyframes[0] = Keyframe::create();
337 keyframes[0]->setOffset(0.0); 337 keyframes[0]->setOffset(0.0);
338 keyframes[0]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(3.0). get()); 338 keyframes[0]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(3.0). get());
339 keyframes[0]->setPropertyValue(CSSPropertyRight, unknownAnimatableValue(4.0) .get()); 339 keyframes[0]->setPropertyValue(CSSPropertyRight, unknownAnimatableValue(4.0) .get());
340 keyframes[1] = Keyframe::create(); 340 keyframes[1] = Keyframe::create();
341 keyframes[1]->setOffset(1.0); 341 keyframes[1]->setOffset(1.0);
342 keyframes[1]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(5.0). get()); 342 keyframes[1]->setPropertyValue(CSSPropertyLeft, unknownAnimatableValue(5.0). get());
343 keyframes[1]->setPropertyValue(CSSPropertyRight, unknownAnimatableValue(6.0) .get()); 343 keyframes[1]->setPropertyValue(CSSPropertyRight, unknownAnimatableValue(6.0) .get());
344 344
345 RefPtrWillBeRawPtr<KeyframeEffectModel> effect = KeyframeEffectModel::create (keyframes); 345 RefPtrWillBeRawPtr<KeyframeEffectModel> effect = KeyframeEffectModel::create (keyframes);
346 OwnPtr<Vector<RefPtr<Interpolation> > > values = effect->sample(0, 0.6, dura tion); 346 OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation> > > va lues = effect->sample(0, 0.6, duration);
347 EXPECT_EQ(2UL, values->size()); 347 EXPECT_EQ(2UL, values->size());
348 Interpolation* leftValue = findValue(*values.get(), CSSPropertyLeft); 348 Interpolation* leftValue = findValue(*values.get(), CSSPropertyLeft);
349 ASSERT_TRUE(leftValue); 349 ASSERT_TRUE(leftValue);
350 expectDoubleValue(5.0, leftValue); 350 expectDoubleValue(5.0, leftValue);
351 Interpolation* rightValue = findValue(*values.get(), CSSPropertyRight); 351 Interpolation* rightValue = findValue(*values.get(), CSSPropertyRight);
352 ASSERT_TRUE(rightValue); 352 ASSERT_TRUE(rightValue);
353 expectDoubleValue(6.0, rightValue); 353 expectDoubleValue(6.0, rightValue);
354 } 354 }
355 355
356 // FIXME: Re-enable this test once compositing of CompositeAdd is supported. 356 // FIXME: Re-enable this test once compositing of CompositeAdd is supported.
357 TEST(AnimationKeyframeEffectModel, DISABLED_RecompositeCompositableValue) 357 TEST(AnimationKeyframeEffectModel, DISABLED_RecompositeCompositableValue)
358 { 358 {
359 KeyframeEffectModel::KeyframeVector keyframes = keyframesAtZeroAndOne(pixelA nimatableValue(3.0), pixelAnimatableValue(5.0)); 359 KeyframeEffectModel::KeyframeVector keyframes = keyframesAtZeroAndOne(pixelA nimatableValue(3.0), pixelAnimatableValue(5.0));
360 keyframes[0]->setComposite(AnimationEffect::CompositeAdd); 360 keyframes[0]->setComposite(AnimationEffect::CompositeAdd);
361 keyframes[1]->setComposite(AnimationEffect::CompositeAdd); 361 keyframes[1]->setComposite(AnimationEffect::CompositeAdd);
362 RefPtrWillBeRawPtr<KeyframeEffectModel> effect = KeyframeEffectModel::create (keyframes); 362 RefPtrWillBeRawPtr<KeyframeEffectModel> effect = KeyframeEffectModel::create (keyframes);
363 OwnPtr<Vector<RefPtr<Interpolation> > > values = effect->sample(0, 0.6, dura tion); 363 OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation> > > va lues = effect->sample(0, 0.6, duration);
364 expectDoubleValue((7.0 + 3.0) * 0.4 + (7.0 + 5.0) * 0.6, values->at(0)); 364 expectDoubleValue((7.0 + 3.0) * 0.4 + (7.0 + 5.0) * 0.6, values->at(0));
365 expectDoubleValue((9.0 + 3.0) * 0.4 + (9.0 + 5.0) * 0.6, values->at(0)); 365 expectDoubleValue((9.0 + 3.0) * 0.4 + (9.0 + 5.0) * 0.6, values->at(0));
366 } 366 }
367 367
368 TEST(AnimationKeyframeEffectModel, MultipleIterations) 368 TEST(AnimationKeyframeEffectModel, MultipleIterations)
369 { 369 {
370 KeyframeEffectModel::KeyframeVector keyframes = keyframesAtZeroAndOne(pixelA nimatableValue(1.0), pixelAnimatableValue(3.0)); 370 KeyframeEffectModel::KeyframeVector keyframes = keyframesAtZeroAndOne(pixelA nimatableValue(1.0), pixelAnimatableValue(3.0));
371 RefPtrWillBeRawPtr<KeyframeEffectModel> effect = KeyframeEffectModel::create (keyframes); 371 RefPtrWillBeRawPtr<KeyframeEffectModel> effect = KeyframeEffectModel::create (keyframes);
372 expectDoubleValue(2.0, effect->sample(0, 0.5, duration)->at(0)); 372 expectDoubleValue(2.0, effect->sample(0, 0.5, duration)->at(0));
373 expectDoubleValue(2.0, effect->sample(1, 0.5, duration)->at(0)); 373 expectDoubleValue(2.0, effect->sample(1, 0.5, duration)->at(0));
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
556 EXPECT_DOUBLE_EQ(0.6, result[5]->offset()); 556 EXPECT_DOUBLE_EQ(0.6, result[5]->offset());
557 EXPECT_DOUBLE_EQ(0.7, result[6]->offset()); 557 EXPECT_DOUBLE_EQ(0.7, result[6]->offset());
558 EXPECT_DOUBLE_EQ(0.8, result[7]->offset()); 558 EXPECT_DOUBLE_EQ(0.8, result[7]->offset());
559 EXPECT_DOUBLE_EQ(0.85, result[8]->offset()); 559 EXPECT_DOUBLE_EQ(0.85, result[8]->offset());
560 EXPECT_DOUBLE_EQ(0.9, result[9]->offset()); 560 EXPECT_DOUBLE_EQ(0.9, result[9]->offset());
561 EXPECT_DOUBLE_EQ(0.95, result[10]->offset()); 561 EXPECT_DOUBLE_EQ(0.95, result[10]->offset());
562 EXPECT_DOUBLE_EQ(1.0, result[11]->offset()); 562 EXPECT_DOUBLE_EQ(1.0, result[11]->offset());
563 } 563 }
564 564
565 } // namespace WebCore 565 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/animation/KeyframeEffectModel.cpp ('k') | Source/core/animation/css/CSSAnimations.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698