Upstream version 10.38.222.0
[platform/framework/web/crosswalk.git] / src / content / renderer / compositor_bindings / web_animation_unittest.cc
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.
4
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"
9
10 using blink::WebCompositorAnimation;
11 using blink::WebCompositorAnimationCurve;
12 using blink::WebFloatAnimationCurve;
13
14 namespace content {
15 namespace {
16
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));
22
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());
29 #else
30   EXPECT_FALSE(animation->alternatesDirection());
31 #endif
32 }
33
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);
43 #else
44   animation->setAlternatesDirection(true);
45 #endif
46
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());
52 #else
53   EXPECT_TRUE(animation->alternatesDirection());
54   animation->setAlternatesDirection(false);
55   EXPECT_FALSE(animation->alternatesDirection());
56 #endif
57 }
58
59 }  // namespace
60 }  // namespace content
61