OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2013, Google Inc. All rights reserved. | 2 * Copyright (c) 2013, Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 454 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
465 { | 465 { |
466 m_timing.timingFunction = m_linearTimingFunction; | 466 m_timing.timingFunction = m_linearTimingFunction; |
467 EXPECT_TRUE(isCandidateForAnimationOnCompositor(m_timing, *m_keyframeAnimati
onEffect2.get())); | 467 EXPECT_TRUE(isCandidateForAnimationOnCompositor(m_timing, *m_keyframeAnimati
onEffect2.get())); |
468 EXPECT_TRUE(isCandidateForAnimationOnCompositor(m_timing, *m_keyframeAnimati
onEffect5.get())); | 468 EXPECT_TRUE(isCandidateForAnimationOnCompositor(m_timing, *m_keyframeAnimati
onEffect5.get())); |
469 } | 469 } |
470 | 470 |
471 TEST_F(AnimationCompositorAnimationsTest, isCandidateForAnimationOnCompositorTim
ingFunctionCubic) | 471 TEST_F(AnimationCompositorAnimationsTest, isCandidateForAnimationOnCompositorTim
ingFunctionCubic) |
472 { | 472 { |
473 m_timing.timingFunction = m_cubicEaseTimingFunction; | 473 m_timing.timingFunction = m_cubicEaseTimingFunction; |
474 EXPECT_TRUE(isCandidateForAnimationOnCompositor(m_timing, *m_keyframeAnimati
onEffect2.get())); | 474 EXPECT_TRUE(isCandidateForAnimationOnCompositor(m_timing, *m_keyframeAnimati
onEffect2.get())); |
475 EXPECT_TRUE(isCandidateForAnimationOnCompositor(m_timing, *m_keyframeAnimati
onEffect5.get())); | 475 EXPECT_FALSE(isCandidateForAnimationOnCompositor(m_timing, *m_keyframeAnimat
ionEffect5.get())); |
476 | 476 |
477 m_timing.timingFunction = m_cubicCustomTimingFunction; | 477 m_timing.timingFunction = m_cubicCustomTimingFunction; |
478 EXPECT_TRUE(isCandidateForAnimationOnCompositor(m_timing, *m_keyframeAnimati
onEffect2.get())); | 478 EXPECT_TRUE(isCandidateForAnimationOnCompositor(m_timing, *m_keyframeAnimati
onEffect2.get())); |
479 EXPECT_TRUE(isCandidateForAnimationOnCompositor(m_timing, *m_keyframeAnimati
onEffect5.get())); | 479 EXPECT_FALSE(isCandidateForAnimationOnCompositor(m_timing, *m_keyframeAnimat
ionEffect5.get())); |
480 } | 480 } |
481 | 481 |
482 TEST_F(AnimationCompositorAnimationsTest, isCandidateForAnimationOnCompositorTim
ingFunctionSteps) | 482 TEST_F(AnimationCompositorAnimationsTest, isCandidateForAnimationOnCompositorTim
ingFunctionSteps) |
483 { | 483 { |
484 m_timing.timingFunction = m_stepTimingFunction; | 484 m_timing.timingFunction = m_stepTimingFunction; |
485 EXPECT_FALSE(isCandidateForAnimationOnCompositor(m_timing, *m_keyframeAnimat
ionEffect2.get())); | 485 EXPECT_FALSE(isCandidateForAnimationOnCompositor(m_timing, *m_keyframeAnimat
ionEffect2.get())); |
486 EXPECT_FALSE(isCandidateForAnimationOnCompositor(m_timing, *m_keyframeAnimat
ionEffect5.get())); | 486 EXPECT_FALSE(isCandidateForAnimationOnCompositor(m_timing, *m_keyframeAnimat
ionEffect5.get())); |
487 } | 487 } |
488 | 488 |
489 TEST_F(AnimationCompositorAnimationsTest, isCandidateForAnimationOnCompositorTim
ingFunctionChainedLinear) | 489 TEST_F(AnimationCompositorAnimationsTest, isCandidateForAnimationOnCompositorTim
ingFunctionChainedLinear) |
490 { | 490 { |
491 EXPECT_TRUE(isCandidateForAnimationOnCompositor(m_timing, *m_keyframeAnimati
onEffect2.get())); | 491 EXPECT_TRUE(isCandidateForAnimationOnCompositor(m_timing, *m_keyframeAnimati
onEffect2.get())); |
492 EXPECT_TRUE(isCandidateForAnimationOnCompositor(m_timing, *m_keyframeAnimati
onEffect5.get())); | 492 EXPECT_TRUE(isCandidateForAnimationOnCompositor(m_timing, *m_keyframeAnimati
onEffect5.get())); |
493 } | 493 } |
494 | 494 |
495 TEST_F(AnimationCompositorAnimationsTest, isCandidateForAnimationOnCompositorNon
LinearTimingFunctionOnFirstOrLastFrame) | 495 TEST_F(AnimationCompositorAnimationsTest, isCandidateForAnimationOnCompositorNon
LinearTimingFunctionOnFirstFrame) |
496 { | 496 { |
| 497 m_timing.timingFunction = m_cubicEaseTimingFunction; |
| 498 |
| 499 EXPECT_TRUE(isCandidateForAnimationOnCompositor(m_timing, *m_keyframeAnimati
onEffect2.get())); |
| 500 |
497 (*m_keyframeVector2)[0]->setEasing(m_cubicEaseTimingFunction.get()); | 501 (*m_keyframeVector2)[0]->setEasing(m_cubicEaseTimingFunction.get()); |
498 m_keyframeAnimationEffect2 = AnimatableValueKeyframeEffectModel::create(*m_k
eyframeVector2); | 502 m_keyframeAnimationEffect2 = AnimatableValueKeyframeEffectModel::create(*m_k
eyframeVector2); |
499 | |
500 (*m_keyframeVector5)[3]->setEasing(m_cubicEaseTimingFunction.get()); | |
501 m_keyframeAnimationEffect5 = AnimatableValueKeyframeEffectModel::create(*m_k
eyframeVector5); | |
502 | |
503 m_timing.timingFunction = m_cubicCustomTimingFunction; | |
504 | |
505 EXPECT_FALSE(isCandidateForAnimationOnCompositor(m_timing, *m_keyframeAnimat
ionEffect2.get())); | 503 EXPECT_FALSE(isCandidateForAnimationOnCompositor(m_timing, *m_keyframeAnimat
ionEffect2.get())); |
506 EXPECT_FALSE(isCandidateForAnimationOnCompositor(m_timing, *m_keyframeAnimat
ionEffect5.get())); | |
507 | |
508 m_timing.timingFunction = m_cubicEaseTimingFunction; | |
509 EXPECT_TRUE(isCandidateForAnimationOnCompositor(m_timing, *m_keyframeAnimati
onEffect2.get())); | |
510 EXPECT_TRUE(isCandidateForAnimationOnCompositor(m_timing, *m_keyframeAnimati
onEffect5.get())); | |
511 } | 504 } |
512 | 505 |
513 TEST_F(AnimationCompositorAnimationsTest, isCandidateForAnimationOnCompositorTim
ingFunctionChainedCubicMatchingOffsets) | 506 TEST_F(AnimationCompositorAnimationsTest, isCandidateForAnimationOnCompositorTim
ingFunctionChainedCubicMatchingOffsets) |
514 { | 507 { |
515 (*m_keyframeVector2)[0]->setEasing(m_cubicEaseTimingFunction.get()); | 508 (*m_keyframeVector2)[0]->setEasing(m_cubicEaseTimingFunction.get()); |
516 m_keyframeAnimationEffect2 = AnimatableValueKeyframeEffectModel::create(*m_k
eyframeVector2); | 509 m_keyframeAnimationEffect2 = AnimatableValueKeyframeEffectModel::create(*m_k
eyframeVector2); |
517 EXPECT_TRUE(isCandidateForAnimationOnCompositor(m_timing, *m_keyframeAnimati
onEffect2.get())); | 510 EXPECT_TRUE(isCandidateForAnimationOnCompositor(m_timing, *m_keyframeAnimati
onEffect2.get())); |
518 | 511 |
519 (*m_keyframeVector2)[0]->setEasing(m_cubicCustomTimingFunction.get()); | 512 (*m_keyframeVector2)[0]->setEasing(m_cubicCustomTimingFunction.get()); |
520 m_keyframeAnimationEffect2 = AnimatableValueKeyframeEffectModel::create(*m_k
eyframeVector2); | 513 m_keyframeAnimationEffect2 = AnimatableValueKeyframeEffectModel::create(*m_k
eyframeVector2); |
(...skipping 584 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1105 .After(usesMockCurve); | 1098 .After(usesMockCurve); |
1106 | 1099 |
1107 // Go! | 1100 // Go! |
1108 setCompositorForTesting(mockCompositor); | 1101 setCompositorForTesting(mockCompositor); |
1109 Vector<OwnPtr<WebCompositorAnimation> > result; | 1102 Vector<OwnPtr<WebCompositorAnimation> > result; |
1110 getAnimationOnCompositor(m_timing, *effect.get(), result); | 1103 getAnimationOnCompositor(m_timing, *effect.get(), result); |
1111 EXPECT_EQ(1U, result.size()); | 1104 EXPECT_EQ(1U, result.size()); |
1112 result[0].clear(); | 1105 result[0].clear(); |
1113 } | 1106 } |
1114 | 1107 |
1115 TEST_F(AnimationCompositorAnimationsTest, createSimpleOpacityAnimationWithTiming
Function) | |
1116 { | |
1117 // Animation to convert | |
1118 RefPtrWillBeRawPtr<AnimatableValueKeyframeEffectModel> effect = createKeyfra
meEffectModel( | |
1119 createReplaceOpKeyframe(CSSPropertyOpacity, AnimatableDouble::create(2.0
).get(), 0), | |
1120 createReplaceOpKeyframe(CSSPropertyOpacity, AnimatableDouble::create(5.0
).get(), 1.0)); | |
1121 | |
1122 m_timing.timingFunction = m_cubicCustomTimingFunction; | |
1123 | |
1124 WebCompositorSupportMock mockCompositor; | |
1125 | |
1126 // Curve is created | |
1127 WebFloatAnimationCurveMock* mockCurvePtr = new WebFloatAnimationCurveMock; | |
1128 ExpectationSet usesMockCurve; | |
1129 EXPECT_CALL(mockCompositor, createFloatAnimationCurve()) | |
1130 .WillOnce(Return(mockCurvePtr)); | |
1131 | |
1132 usesMockCurve += EXPECT_CALL(*mockCurvePtr, add(WebFloatKeyframe(0.0, 2.0),
WebCompositorAnimationCurve::TimingFunctionTypeLinear)); | |
1133 usesMockCurve += EXPECT_CALL(*mockCurvePtr, add(WebFloatKeyframe(1.0, 5.0)))
; | |
1134 usesMockCurve += EXPECT_CALL(*mockCurvePtr, setTimingFunction(1, 2, 3, 4)); | |
1135 | |
1136 // Create animation | |
1137 WebCompositorAnimationMock* mockAnimationPtr = new WebCompositorAnimationMoc
k(WebCompositorAnimation::TargetPropertyOpacity); | |
1138 ExpectationSet usesMockAnimation; | |
1139 | |
1140 usesMockCurve += EXPECT_CALL(mockCompositor, createAnimation(Ref(*mockCurveP
tr), WebCompositorAnimation::TargetPropertyOpacity, _, _)) | |
1141 .WillOnce(Return(mockAnimationPtr)); | |
1142 | |
1143 usesMockAnimation += EXPECT_CALL(*mockAnimationPtr, setIterations(1)); | |
1144 usesMockAnimation += EXPECT_CALL(*mockAnimationPtr, setTimeOffset(0.0)); | |
1145 usesMockAnimation += EXPECT_CALL(*mockAnimationPtr, setDirection(blink::WebC
ompositorAnimation::DirectionNormal)); | |
1146 usesMockAnimation += EXPECT_CALL(*mockAnimationPtr, setPlaybackRate(1)); | |
1147 | |
1148 EXPECT_CALL(*mockAnimationPtr, delete_()) | |
1149 .Times(1) | |
1150 .After(usesMockAnimation); | |
1151 EXPECT_CALL(*mockCurvePtr, delete_()) | |
1152 .Times(1) | |
1153 .After(usesMockCurve); | |
1154 | |
1155 // Go! | |
1156 setCompositorForTesting(mockCompositor); | |
1157 Vector<OwnPtr<WebCompositorAnimation> > result; | |
1158 getAnimationOnCompositor(m_timing, *effect.get(), result); | |
1159 EXPECT_EQ(1U, result.size()); | |
1160 result[0].clear(); | |
1161 } | |
1162 | |
1163 } // namespace blink | 1108 } // namespace blink |
OLD | NEW |