OLD | NEW |
1 #include "config.h" | 1 #include "config.h" |
2 #include "core/animation/VisibilityStyleInterpolation.h" | 2 #include "core/animation/VisibilityStyleInterpolation.h" |
3 | 3 |
4 #include "core/css/CSSPrimitiveValue.h" | 4 #include "core/css/CSSPrimitiveValue.h" |
5 #include "core/css/StylePropertySet.h" | 5 #include "core/css/StylePropertySet.h" |
6 | 6 |
7 #include <gtest/gtest.h> | 7 #include <gtest/gtest.h> |
8 | 8 |
9 namespace blink { | 9 namespace blink { |
10 | 10 |
11 class AnimationVisibilityStyleInterpolationTest : public ::testing::Test { | 11 class AnimationVisibilityStyleInterpolationTest : public ::testing::Test { |
12 protected: | 12 protected: |
13 static PassOwnPtrWillBeRawPtr<InterpolableValue> visibilityToInterpolableVal
ue(const CSSValue& value) | 13 static InterpolableValue* visibilityToInterpolableValue(const CSSValue& valu
e) |
14 { | 14 { |
15 return VisibilityStyleInterpolation::visibilityToInterpolableValue(value
); | 15 return VisibilityStyleInterpolation::visibilityToInterpolableValue(value
); |
16 } | 16 } |
17 | 17 |
18 static PassRefPtrWillBeRawPtr<CSSValue> interpolableValueToVisibility(Interp
olableValue* value, CSSValueID notVisible) | 18 static PassRefPtrWillBeRawPtr<CSSValue> interpolableValueToVisibility(Interp
olableValue* value, CSSValueID notVisible) |
19 { | 19 { |
20 return VisibilityStyleInterpolation::interpolableValueToVisibility(value
, notVisible); | 20 return VisibilityStyleInterpolation::interpolableValueToVisibility(value
, notVisible); |
21 } | 21 } |
22 | 22 |
23 static PassRefPtrWillBeRawPtr<CSSValue> roundTrip(PassRefPtrWillBeRawPtr<CSS
Value> value, CSSValueID valueID) | 23 static PassRefPtrWillBeRawPtr<CSSValue> roundTrip(PassRefPtrWillBeRawPtr<CSS
Value> value, CSSValueID valueID) |
24 { | 24 { |
25 return interpolableValueToVisibility(visibilityToInterpolableValue(*valu
e).get(), valueID); | 25 return interpolableValueToVisibility(visibilityToInterpolableValue(*valu
e), valueID); |
26 } | 26 } |
27 | 27 |
28 static void testPrimitiveValue(PassRefPtrWillBeRawPtr<CSSValue> value, CSSVa
lueID valueID) | 28 static void testPrimitiveValue(PassRefPtrWillBeRawPtr<CSSValue> value, CSSVa
lueID valueID) |
29 { | 29 { |
30 EXPECT_TRUE(value->isPrimitiveValue()); | 30 EXPECT_TRUE(value->isPrimitiveValue()); |
31 EXPECT_EQ(valueID, toCSSPrimitiveValue(value.get())->getValueID()); | 31 EXPECT_EQ(valueID, toCSSPrimitiveValue(value.get())->getValueID()); |
32 } | 32 } |
33 | 33 |
34 static InterpolableValue* getCachedValue(Interpolation& interpolation) | 34 static InterpolableValue* getCachedValue(Interpolation& interpolation) |
35 { | 35 { |
36 return interpolation.getCachedValueForTesting(); | 36 return interpolation.getCachedValueForTesting(); |
37 } | 37 } |
38 }; | 38 }; |
39 | 39 |
40 TEST_F(AnimationVisibilityStyleInterpolationTest, ValueIDs) | 40 TEST_F(AnimationVisibilityStyleInterpolationTest, ValueIDs) |
41 { | 41 { |
42 RefPtrWillBeRawPtr<CSSValue> value = roundTrip(CSSPrimitiveValue::createIden
tifier(CSSValueVisible), CSSValueHidden); | 42 RefPtrWillBeRawPtr<CSSValue> value = roundTrip(CSSPrimitiveValue::createIden
tifier(CSSValueVisible), CSSValueHidden); |
43 testPrimitiveValue(value, CSSValueVisible); | 43 testPrimitiveValue(value, CSSValueVisible); |
44 | 44 |
45 value = roundTrip(CSSPrimitiveValue::createIdentifier(CSSValueCollapse), CSS
ValueCollapse); | 45 value = roundTrip(CSSPrimitiveValue::createIdentifier(CSSValueCollapse), CSS
ValueCollapse); |
46 testPrimitiveValue(value, CSSValueCollapse); | 46 testPrimitiveValue(value, CSSValueCollapse); |
47 | 47 |
48 value = roundTrip(CSSPrimitiveValue::createIdentifier(CSSValueHidden), CSSVa
lueHidden); | 48 value = roundTrip(CSSPrimitiveValue::createIdentifier(CSSValueHidden), CSSVa
lueHidden); |
49 testPrimitiveValue(value, CSSValueHidden); | 49 testPrimitiveValue(value, CSSValueHidden); |
50 } | 50 } |
51 | 51 |
52 TEST_F(AnimationVisibilityStyleInterpolationTest, Interpolation) | 52 TEST_F(AnimationVisibilityStyleInterpolationTest, Interpolation) |
53 { | 53 { |
54 RefPtrWillBeRawPtr<Interpolation> interpolation = VisibilityStyleInterpolati
on::create( | 54 Interpolation* interpolation = VisibilityStyleInterpolation::create( |
55 *CSSPrimitiveValue::createIdentifier(CSSValueHidden), | 55 *CSSPrimitiveValue::createIdentifier(CSSValueHidden), |
56 *CSSPrimitiveValue::createIdentifier(CSSValueVisible), | 56 *CSSPrimitiveValue::createIdentifier(CSSValueVisible), |
57 CSSPropertyVisibility); | 57 CSSPropertyVisibility); |
58 | 58 |
59 interpolation->interpolate(0, 0.0); | 59 interpolation->interpolate(0, 0.0); |
60 RefPtrWillBeRawPtr<CSSValue> value = interpolableValueToVisibility(getCached
Value(*interpolation), CSSValueHidden); | 60 RefPtrWillBeRawPtr<CSSValue> value = interpolableValueToVisibility(getCached
Value(*interpolation), CSSValueHidden); |
61 testPrimitiveValue(value, CSSValueHidden); | 61 testPrimitiveValue(value, CSSValueHidden); |
62 | 62 |
63 interpolation->interpolate(0, 0.5); | 63 interpolation->interpolate(0, 0.5); |
64 value = interpolableValueToVisibility(getCachedValue(*interpolation), CSSVal
ueHidden); | 64 value = interpolableValueToVisibility(getCachedValue(*interpolation), CSSVal
ueHidden); |
65 testPrimitiveValue(value, CSSValueVisible); | 65 testPrimitiveValue(value, CSSValueVisible); |
66 } | 66 } |
67 } | 67 } |
OLD | NEW |