1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "base/memory/scoped_ptr.h"
6 #include "content/renderer/compositor_bindings/web_animation_impl.h"
7 #include "content/renderer/compositor_bindings/web_float_animation_curve_impl.h"
8 #include "testing/gtest/include/gtest/gtest.h"
10 using blink::WebCompositorAnimation;
11 using blink::WebCompositorAnimationCurve;
12 using blink::WebFloatAnimationCurve;
17 TEST(WebCompositorAnimationTest, DefaultSettings) {
18 scoped_ptr<WebCompositorAnimationCurve> curve(
19 new WebFloatAnimationCurveImpl());
20 scoped_ptr<WebCompositorAnimation> animation(new WebCompositorAnimationImpl(
21 *curve, WebCompositorAnimation::TargetPropertyOpacity, 1, 0));
23 // Ensure that the defaults are correct.
24 EXPECT_EQ(1, animation->iterations());
25 EXPECT_EQ(0, animation->startTime());
26 EXPECT_EQ(0, animation->timeOffset());
27 #if WEB_ANIMATION_SUPPORTS_FULL_DIRECTION
28 EXPECT_EQ(WebCompositorAnimation::DirectionNormal, animation->direction());
30 EXPECT_FALSE(animation->alternatesDirection());
34 TEST(WebCompositorAnimationTest, ModifiedSettings) {
35 scoped_ptr<WebFloatAnimationCurve> curve(new WebFloatAnimationCurveImpl());
36 scoped_ptr<WebCompositorAnimation> animation(new WebCompositorAnimationImpl(
37 *curve, WebCompositorAnimation::TargetPropertyOpacity, 1, 0));
38 animation->setIterations(2);
39 animation->setStartTime(2);
40 animation->setTimeOffset(2);
41 #if WEB_ANIMATION_SUPPORTS_FULL_DIRECTION
42 animation->setDirection(WebCompositorAnimation::DirectionReverse);
44 animation->setAlternatesDirection(true);
47 EXPECT_EQ(2, animation->iterations());
48 EXPECT_EQ(2, animation->startTime());
49 EXPECT_EQ(2, animation->timeOffset());
50 #if WEB_ANIMATION_SUPPORTS_FULL_DIRECTION
51 EXPECT_EQ(WebCompositorAnimation::DirectionReverse, animation->direction());
53 EXPECT_TRUE(animation->alternatesDirection());
54 animation->setAlternatesDirection(false);
55 EXPECT_FALSE(animation->alternatesDirection());
60 } // namespace content