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

Side by Side Diff: third_party/WebKit/Source/core/animation/DoubleStyleInterpolationTest.cpp

Issue 1686483002: Oilpan: Remove most WillBe types from the code base (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "core/animation/DoubleStyleInterpolation.h" 5 #include "core/animation/DoubleStyleInterpolation.h"
6 6
7 #include "core/css/CSSPrimitiveValue.h" 7 #include "core/css/CSSPrimitiveValue.h"
8 #include "core/css/CSSValueList.h" 8 #include "core/css/CSSValueList.h"
9 #include "core/css/StylePropertySet.h" 9 #include "core/css/StylePropertySet.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
11 #include "wtf/MathExtras.h" 11 #include "wtf/MathExtras.h"
12 12
13 namespace blink { 13 namespace blink {
14 14
15 class AnimationDoubleStyleInterpolationTest : public ::testing::Test { 15 class AnimationDoubleStyleInterpolationTest : public ::testing::Test {
16 protected: 16 protected:
17 static PassOwnPtr<InterpolableValue> doubleToInterpolableValue(const CSSValu e& value) 17 static PassOwnPtr<InterpolableValue> doubleToInterpolableValue(const CSSValu e& value)
18 { 18 {
19 return DoubleStyleInterpolation::doubleToInterpolableValue(value); 19 return DoubleStyleInterpolation::doubleToInterpolableValue(value);
20 } 20 }
21 21
22 static PassOwnPtr<InterpolableValue> motionRotationToInterpolableValue(const CSSValue& value) 22 static PassOwnPtr<InterpolableValue> motionRotationToInterpolableValue(const CSSValue& value)
23 { 23 {
24 return DoubleStyleInterpolation::motionRotationToInterpolableValue(value ); 24 return DoubleStyleInterpolation::motionRotationToInterpolableValue(value );
25 } 25 }
26 26
27 static PassRefPtrWillBeRawPtr<CSSValue> interpolableValueToDouble(Interpolab leValue* value, bool isNumber, InterpolationRange clamp) 27 static RawPtr<CSSValue> interpolableValueToDouble(InterpolableValue* value, bool isNumber, InterpolationRange clamp)
28 { 28 {
29 return DoubleStyleInterpolation::interpolableValueToDouble(value, isNumb er, clamp); 29 return DoubleStyleInterpolation::interpolableValueToDouble(value, isNumb er, clamp);
30 } 30 }
31 31
32 static PassRefPtrWillBeRawPtr<CSSValue> interpolableValueToMotionRotation(In terpolableValue* value, bool flag) 32 static RawPtr<CSSValue> interpolableValueToMotionRotation(InterpolableValue* value, bool flag)
33 { 33 {
34 return DoubleStyleInterpolation::interpolableValueToMotionRotation(value , flag); 34 return DoubleStyleInterpolation::interpolableValueToMotionRotation(value , flag);
35 } 35 }
36 36
37 static PassRefPtrWillBeRawPtr<CSSValue> roundTrip(PassRefPtrWillBeRawPtr<CSS Value> value) 37 static RawPtr<CSSValue> roundTrip(RawPtr<CSSValue> value)
38 { 38 {
39 return interpolableValueToDouble(doubleToInterpolableValue(*value).get() , toCSSPrimitiveValue(value.get())->isNumber(), RangeAll); 39 return interpolableValueToDouble(doubleToInterpolableValue(*value).get() , toCSSPrimitiveValue(value.get())->isNumber(), RangeAll);
40 } 40 }
41 41
42 static PassRefPtrWillBeRawPtr<CSSValue> roundTripMotionRotation(PassRefPtrWi llBeRawPtr<CSSValue> value, bool flag) 42 static RawPtr<CSSValue> roundTripMotionRotation(RawPtr<CSSValue> value, bool flag)
43 { 43 {
44 return interpolableValueToMotionRotation(motionRotationToInterpolableVal ue(*value).get(), flag); 44 return interpolableValueToMotionRotation(motionRotationToInterpolableVal ue(*value).get(), flag);
45 } 45 }
46 46
47 static void testPrimitiveValue(RefPtrWillBeRawPtr<CSSValue> value, double do ubleValue, CSSPrimitiveValue::UnitType unitType) 47 static void testPrimitiveValue(RawPtr<CSSValue> value, double doubleValue, C SSPrimitiveValue::UnitType unitType)
48 { 48 {
49 EXPECT_TRUE(value->isPrimitiveValue()); 49 EXPECT_TRUE(value->isPrimitiveValue());
50 EXPECT_EQ(doubleValue, toCSSPrimitiveValue(value.get())->getDoubleValue( )); 50 EXPECT_EQ(doubleValue, toCSSPrimitiveValue(value.get())->getDoubleValue( ));
51 EXPECT_EQ(unitType, toCSSPrimitiveValue(value.get())->typeWithCalcResolv ed()); 51 EXPECT_EQ(unitType, toCSSPrimitiveValue(value.get())->typeWithCalcResolv ed());
52 } 52 }
53 53
54 static void testValueListMotionRotation(RefPtrWillBeRawPtr<CSSValue> value, double doubleValue, bool flag) 54 static void testValueListMotionRotation(RawPtr<CSSValue> value, double doubl eValue, bool flag)
55 { 55 {
56 EXPECT_TRUE(value->isValueList()); 56 EXPECT_TRUE(value->isValueList());
57 const CSSValueList& list = toCSSValueList(*value); 57 const CSSValueList& list = toCSSValueList(*value);
58 const CSSValue* item; 58 const CSSValue* item;
59 if (flag) { 59 if (flag) {
60 EXPECT_EQ(2U, list.length()); 60 EXPECT_EQ(2U, list.length());
61 item = list.item(0); 61 item = list.item(0);
62 EXPECT_TRUE(item->isPrimitiveValue()); 62 EXPECT_TRUE(item->isPrimitiveValue());
63 EXPECT_EQ(CSSValueAuto, toCSSPrimitiveValue(item)->getValueID()); 63 EXPECT_EQ(CSSValueAuto, toCSSPrimitiveValue(item)->getValueID());
64 item = list.item(1); 64 item = list.item(1);
65 } else { 65 } else {
66 EXPECT_EQ(1U, list.length()); 66 EXPECT_EQ(1U, list.length());
67 item = list.item(0); 67 item = list.item(0);
68 } 68 }
69 EXPECT_TRUE(item->isPrimitiveValue()); 69 EXPECT_TRUE(item->isPrimitiveValue());
70 EXPECT_EQ(doubleValue, toCSSPrimitiveValue(item)->getDoubleValue()); 70 EXPECT_EQ(doubleValue, toCSSPrimitiveValue(item)->getDoubleValue());
71 EXPECT_EQ(CSSPrimitiveValue::UnitType::Degrees, toCSSPrimitiveValue(item )->typeWithCalcResolved()); 71 EXPECT_EQ(CSSPrimitiveValue::UnitType::Degrees, toCSSPrimitiveValue(item )->typeWithCalcResolved());
72 } 72 }
73 73
74 static InterpolableValue* getCachedValue(Interpolation& interpolation) 74 static InterpolableValue* getCachedValue(Interpolation& interpolation)
75 { 75 {
76 return interpolation.getCachedValueForTesting(); 76 return interpolation.getCachedValueForTesting();
77 } 77 }
78 }; 78 };
79 79
80 TEST_F(AnimationDoubleStyleInterpolationTest, ZeroValue) 80 TEST_F(AnimationDoubleStyleInterpolationTest, ZeroValue)
81 { 81 {
82 RefPtrWillBeRawPtr<CSSValue> value = roundTrip(CSSPrimitiveValue::create(0, CSSPrimitiveValue::UnitType::Number)); 82 RawPtr<CSSValue> value = roundTrip(CSSPrimitiveValue::create(0, CSSPrimitive Value::UnitType::Number));
83 testPrimitiveValue(value, 0, CSSPrimitiveValue::UnitType::Number); 83 testPrimitiveValue(value, 0, CSSPrimitiveValue::UnitType::Number);
84 } 84 }
85 85
86 TEST_F(AnimationDoubleStyleInterpolationTest, AngleValue) 86 TEST_F(AnimationDoubleStyleInterpolationTest, AngleValue)
87 { 87 {
88 RefPtrWillBeRawPtr<CSSValue> value = roundTrip(CSSPrimitiveValue::create(10, CSSPrimitiveValue::UnitType::Degrees)); 88 RawPtr<CSSValue> value = roundTrip(CSSPrimitiveValue::create(10, CSSPrimitiv eValue::UnitType::Degrees));
89 testPrimitiveValue(value, 10, CSSPrimitiveValue::UnitType::Degrees); 89 testPrimitiveValue(value, 10, CSSPrimitiveValue::UnitType::Degrees);
90 90
91 value = roundTrip(CSSPrimitiveValue::create(10, CSSPrimitiveValue::UnitType: :Radians)); 91 value = roundTrip(CSSPrimitiveValue::create(10, CSSPrimitiveValue::UnitType: :Radians));
92 testPrimitiveValue(value, rad2deg(10.0), CSSPrimitiveValue::UnitType::Degree s); 92 testPrimitiveValue(value, rad2deg(10.0), CSSPrimitiveValue::UnitType::Degree s);
93 93
94 value = roundTrip(CSSPrimitiveValue::create(10, CSSPrimitiveValue::UnitType: :Gradians)); 94 value = roundTrip(CSSPrimitiveValue::create(10, CSSPrimitiveValue::UnitType: :Gradians));
95 testPrimitiveValue(value, grad2deg(10.0), CSSPrimitiveValue::UnitType::Degre es); 95 testPrimitiveValue(value, grad2deg(10.0), CSSPrimitiveValue::UnitType::Degre es);
96 } 96 }
97 97
98 TEST_F(AnimationDoubleStyleInterpolationTest, Clamping) 98 TEST_F(AnimationDoubleStyleInterpolationTest, Clamping)
99 { 99 {
100 RefPtr<Interpolation> interpolableDouble = DoubleStyleInterpolation::create( 100 RefPtr<Interpolation> interpolableDouble = DoubleStyleInterpolation::create(
101 *CSSPrimitiveValue::create(0, CSSPrimitiveValue::UnitType::Number), 101 *CSSPrimitiveValue::create(0, CSSPrimitiveValue::UnitType::Number),
102 *CSSPrimitiveValue::create(0.6, CSSPrimitiveValue::UnitType::Number), 102 *CSSPrimitiveValue::create(0.6, CSSPrimitiveValue::UnitType::Number),
103 CSSPropertyLineHeight, 103 CSSPropertyLineHeight,
104 true, 104 true,
105 RangeAll); 105 RangeAll);
106 interpolableDouble->interpolate(0, 0.4); 106 interpolableDouble->interpolate(0, 0.4);
107 // progVal = start*(1-prog) + end*prog 107 // progVal = start*(1-prog) + end*prog
108 EXPECT_EQ(0.24, toInterpolableNumber(getCachedValue(*interpolableDouble))->v alue()); 108 EXPECT_EQ(0.24, toInterpolableNumber(getCachedValue(*interpolableDouble))->v alue());
109 } 109 }
110 110
111 TEST_F(AnimationDoubleStyleInterpolationTest, ZeroValueFixedMotionRotation) 111 TEST_F(AnimationDoubleStyleInterpolationTest, ZeroValueFixedMotionRotation)
112 { 112 {
113 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated() ; 113 RawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated();
114 list->append(CSSPrimitiveValue::create(0, CSSPrimitiveValue::UnitType::Degre es)); 114 list->append(CSSPrimitiveValue::create(0, CSSPrimitiveValue::UnitType::Degre es));
115 RefPtrWillBeRawPtr<CSSValue> value = roundTripMotionRotation(list.release(), false); 115 RawPtr<CSSValue> value = roundTripMotionRotation(list.release(), false);
116 testValueListMotionRotation(value, 0, false); 116 testValueListMotionRotation(value, 0, false);
117 } 117 }
118 118
119 TEST_F(AnimationDoubleStyleInterpolationTest, ZeroValueAutoMotionRotation) 119 TEST_F(AnimationDoubleStyleInterpolationTest, ZeroValueAutoMotionRotation)
120 { 120 {
121 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated() ; 121 RawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated();
122 list->append(CSSPrimitiveValue::createIdentifier(CSSValueAuto)); 122 list->append(CSSPrimitiveValue::createIdentifier(CSSValueAuto));
123 list->append(CSSPrimitiveValue::create(0, CSSPrimitiveValue::UnitType::Degre es)); 123 list->append(CSSPrimitiveValue::create(0, CSSPrimitiveValue::UnitType::Degre es));
124 RefPtrWillBeRawPtr<CSSValue> value = roundTripMotionRotation(list.release(), true); 124 RawPtr<CSSValue> value = roundTripMotionRotation(list.release(), true);
125 testValueListMotionRotation(value, 0, true); 125 testValueListMotionRotation(value, 0, true);
126 } 126 }
127 127
128 TEST_F(AnimationDoubleStyleInterpolationTest, ValueFixedMotionRotation) 128 TEST_F(AnimationDoubleStyleInterpolationTest, ValueFixedMotionRotation)
129 { 129 {
130 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated() ; 130 RawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated();
131 list->append(CSSPrimitiveValue::create(90, CSSPrimitiveValue::UnitType::Degr ees)); 131 list->append(CSSPrimitiveValue::create(90, CSSPrimitiveValue::UnitType::Degr ees));
132 RefPtrWillBeRawPtr<CSSValue> value = roundTripMotionRotation(list.release(), false); 132 RawPtr<CSSValue> value = roundTripMotionRotation(list.release(), false);
133 testValueListMotionRotation(value, 90, false); 133 testValueListMotionRotation(value, 90, false);
134 } 134 }
135 135
136 TEST_F(AnimationDoubleStyleInterpolationTest, ValueAutoMotionRotation) 136 TEST_F(AnimationDoubleStyleInterpolationTest, ValueAutoMotionRotation)
137 { 137 {
138 RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated() ; 138 RawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated();
139 list->append(CSSPrimitiveValue::createIdentifier(CSSValueAuto)); 139 list->append(CSSPrimitiveValue::createIdentifier(CSSValueAuto));
140 list->append(CSSPrimitiveValue::create(90, CSSPrimitiveValue::UnitType::Degr ees)); 140 list->append(CSSPrimitiveValue::create(90, CSSPrimitiveValue::UnitType::Degr ees));
141 RefPtrWillBeRawPtr<CSSValue> value = roundTripMotionRotation(list.release(), true); 141 RawPtr<CSSValue> value = roundTripMotionRotation(list.release(), true);
142 testValueListMotionRotation(value, 90, true); 142 testValueListMotionRotation(value, 90, true);
143 } 143 }
144 144
145 } // namespace blink 145 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698