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

Side by Side Diff: Source/core/animation/AnimatableLengthTest.cpp

Issue 64293008: Wrap CSS length conversion arguments in an object (Closed) Base URL: https://chromium.googlesource.com/chromium/blink@master
Patch Set: don't make it noncopyable ; clang doesn't do the RVO stuffs? Created 7 years 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
« no previous file with comments | « Source/core/animation/AnimatableLength.cpp ('k') | Source/core/core.gypi » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 17 matching lines...) Expand all
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 */ 29 */
30 30
31 #include "config.h" 31 #include "config.h"
32 32
33 #include "core/animation/AnimatableLength.h" 33 #include "core/animation/AnimatableLength.h"
34 34
35 #include "core/animation/AnimatableValueTestHelper.h" 35 #include "core/animation/AnimatableValueTestHelper.h"
36 #include "core/css/CSSCalculationValue.h" 36 #include "core/css/CSSCalculationValue.h"
37 #include "core/css/CSSPrimitiveValue.h" 37 #include "core/css/CSSPrimitiveValue.h"
38 #include "core/css/CSSToLengthConversionData.h"
38 #include "core/rendering/style/RenderStyle.h" 39 #include "core/rendering/style/RenderStyle.h"
39 #include "core/rendering/style/StyleInheritedData.h" 40 #include "core/rendering/style/StyleInheritedData.h"
40 #include "platform/CalculationValue.h" 41 #include "platform/CalculationValue.h"
41 #include "wtf/MathExtras.h" 42 #include "wtf/MathExtras.h"
42 43
43 #include <gtest/gtest.h> 44 #include <gtest/gtest.h>
44 45
45 #define EXPECT_ROUNDTRIP(a, f) EXPECT_REFV_EQ(a, f(a.get())) 46 #define EXPECT_ROUNDTRIP(a, f) EXPECT_REFV_EQ(a, f(a.get()))
46 47
47 namespace WebCore { 48 namespace WebCore {
48 49
49 class AnimationAnimatableLengthTest : public ::testing::Test { 50 class AnimationAnimatableLengthTest : public ::testing::Test {
50 protected: 51 protected:
51 virtual void SetUp() 52 AnimationAnimatableLengthTest()
53 : style(RenderStyle::createDefaultStyle())
54 , conversionDataZoom1(style.get(), style.get(), 1.0f)
55 , conversionDataZoom3(style.get(), style.get(), 3.0f)
52 { 56 {
53 style = RenderStyle::createDefaultStyle();
54 } 57 }
55 58
56 PassRefPtr<AnimatableLength> create(double value, CSSPrimitiveValue::UnitTyp es type) 59 PassRefPtr<AnimatableLength> create(double value, CSSPrimitiveValue::UnitTyp es type)
57 { 60 {
58 return AnimatableLength::create(CSSPrimitiveValue::create(value, type).g et()); 61 return AnimatableLength::create(CSSPrimitiveValue::create(value, type).g et());
59 } 62 }
60 63
61 PassRefPtr<AnimatableLength> create(double valueLeft, CSSPrimitiveValue::Uni tTypes typeLeft, double valueRight, CSSPrimitiveValue::UnitTypes typeRight) 64 PassRefPtr<AnimatableLength> create(double valueLeft, CSSPrimitiveValue::Uni tTypes typeLeft, double valueRight, CSSPrimitiveValue::UnitTypes typeRight)
62 { 65 {
63 return AnimatableLength::create(createCalc(valueLeft, typeLeft, valueRig ht, typeRight).get()); 66 return AnimatableLength::create(createCalc(valueLeft, typeLeft, valueRig ht, typeRight).get());
(...skipping 17 matching lines...) Expand all
81 { 84 {
82 return a->commonUnitType(b.get()); 85 return a->commonUnitType(b.get());
83 } 86 }
84 87
85 bool isUnitlessZero(PassRefPtr<AnimatableLength> a) 88 bool isUnitlessZero(PassRefPtr<AnimatableLength> a)
86 { 89 {
87 return a->isUnitlessZero(); 90 return a->isUnitlessZero();
88 } 91 }
89 92
90 RefPtr<RenderStyle> style; 93 RefPtr<RenderStyle> style;
94 CSSToLengthConversionData conversionDataZoom1;
95 CSSToLengthConversionData conversionDataZoom3;
91 }; 96 };
92 97
93 TEST_F(AnimationAnimatableLengthTest, CanCreateFrom) 98 TEST_F(AnimationAnimatableLengthTest, CanCreateFrom)
94 { 99 {
95 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS PrimitiveValue::CSS_PX).get())); 100 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS PrimitiveValue::CSS_PX).get()));
96 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS PrimitiveValue::CSS_CM).get())); 101 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS PrimitiveValue::CSS_CM).get()));
97 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS PrimitiveValue::CSS_MM).get())); 102 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS PrimitiveValue::CSS_MM).get()));
98 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS PrimitiveValue::CSS_IN).get())); 103 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS PrimitiveValue::CSS_IN).get()));
99 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS PrimitiveValue::CSS_PT).get())); 104 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS PrimitiveValue::CSS_PT).get()));
100 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS PrimitiveValue::CSS_PC).get())); 105 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS PrimitiveValue::CSS_PC).get()));
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
157 EXPECT_ROUNDTRIP(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::CSS_VMIN), toCSSValue); 162 EXPECT_ROUNDTRIP(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::CSS_VMIN), toCSSValue);
158 EXPECT_ROUNDTRIP(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::CSS_VMAX), toCSSValue); 163 EXPECT_ROUNDTRIP(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::CSS_VMAX), toCSSValue);
159 164
160 EXPECT_ROUNDTRIP(CSSPrimitiveValue::create(createCalc(3, CSSPrimitiveValue:: CSS_PX, 5, CSSPrimitiveValue::CSS_IN)), toCSSValue); 165 EXPECT_ROUNDTRIP(CSSPrimitiveValue::create(createCalc(3, CSSPrimitiveValue:: CSS_PX, 5, CSSPrimitiveValue::CSS_IN)), toCSSValue);
161 EXPECT_ROUNDTRIP(CSSPrimitiveValue::create(createCalc(3, CSSPrimitiveValue:: CSS_PX, 5, CSSPrimitiveValue::CSS_IN)), toCSSValue); 166 EXPECT_ROUNDTRIP(CSSPrimitiveValue::create(createCalc(3, CSSPrimitiveValue:: CSS_PX, 5, CSSPrimitiveValue::CSS_IN)), toCSSValue);
162 } 167 }
163 168
164 169
165 TEST_F(AnimationAnimatableLengthTest, ToLength) 170 TEST_F(AnimationAnimatableLengthTest, ToLength)
166 { 171 {
167 EXPECT_EQ(Length(-5, WebCore::Fixed), create(-5, CSSPrimitiveValue::CSS_PX)- >toLength(style.get(), style.get(), 1)); 172 EXPECT_EQ(Length(-5, WebCore::Fixed), create(-5, CSSPrimitiveValue::CSS_PX)- >toLength(conversionDataZoom1));
168 EXPECT_EQ(Length(-15, WebCore::Fixed), create(-5, CSSPrimitiveValue::CSS_PX) ->toLength(style.get(), style.get(), 3)); 173 EXPECT_EQ(Length(-15, WebCore::Fixed), create(-5, CSSPrimitiveValue::CSS_PX) ->toLength(conversionDataZoom3));
169 EXPECT_EQ(Length(0, WebCore::Fixed), create(-5, CSSPrimitiveValue::CSS_PX)-> toLength(style.get(), style.get(), 1, NonNegativeValues)); 174 EXPECT_EQ(Length(0, WebCore::Fixed), create(-5, CSSPrimitiveValue::CSS_PX)-> toLength(conversionDataZoom1, NonNegativeValues));
170 EXPECT_EQ(Length(0, WebCore::Fixed), create(-5, CSSPrimitiveValue::CSS_PX)-> toLength(style.get(), style.get(), 3, NonNegativeValues)); 175 EXPECT_EQ(Length(0, WebCore::Fixed), create(-5, CSSPrimitiveValue::CSS_PX)-> toLength(conversionDataZoom3, NonNegativeValues));
171 176
172 EXPECT_EQ(Length(-5, Percent), create(-5, CSSPrimitiveValue::CSS_PERCENTAGE) ->toLength(style.get(), style.get(), 1)); 177 EXPECT_EQ(Length(-5, Percent), create(-5, CSSPrimitiveValue::CSS_PERCENTAGE) ->toLength(conversionDataZoom1));
173 EXPECT_EQ(Length(-5, Percent), create(-5, CSSPrimitiveValue::CSS_PERCENTAGE) ->toLength(style.get(), style.get(), 3)); 178 EXPECT_EQ(Length(-5, Percent), create(-5, CSSPrimitiveValue::CSS_PERCENTAGE) ->toLength(conversionDataZoom3));
174 EXPECT_EQ(Length(0, Percent), create(-5, CSSPrimitiveValue::CSS_PERCENTAGE)- >toLength(style.get(), style.get(), 1, NonNegativeValues)); 179 EXPECT_EQ(Length(0, Percent), create(-5, CSSPrimitiveValue::CSS_PERCENTAGE)- >toLength(conversionDataZoom1, NonNegativeValues));
175 EXPECT_EQ(Length(0, Percent), create(-5, CSSPrimitiveValue::CSS_PERCENTAGE)- >toLength(style.get(), style.get(), 3, NonNegativeValues)); 180 EXPECT_EQ(Length(0, Percent), create(-5, CSSPrimitiveValue::CSS_PERCENTAGE)- >toLength(conversionDataZoom3, NonNegativeValues));
176 181
177 EXPECT_EQ( 182 EXPECT_EQ(
178 Length(CalculationValue::create( 183 Length(CalculationValue::create(
179 adoptPtr(new CalcExpressionBinaryOperation( 184 adoptPtr(new CalcExpressionBinaryOperation(
180 adoptPtr(new CalcExpressionLength(Length(-5, WebCore::Fixed))), 185 adoptPtr(new CalcExpressionLength(Length(-5, WebCore::Fixed))),
181 adoptPtr(new CalcExpressionLength(Length(-5, Percent))), 186 adoptPtr(new CalcExpressionLength(Length(-5, Percent))),
182 CalcAdd)), 187 CalcAdd)),
183 ValueRangeAll)), 188 ValueRangeAll)),
184 create(-5, CSSPrimitiveValue::CSS_PX, -5, CSSPrimitiveValue::CSS_PERCENT AGE)->toLength(style.get(), style.get(), 1)); 189 create(-5, CSSPrimitiveValue::CSS_PX, -5, CSSPrimitiveValue::CSS_PERCENT AGE)->toLength(conversionDataZoom1));
185 EXPECT_EQ( 190 EXPECT_EQ(
186 Length(CalculationValue::create( 191 Length(CalculationValue::create(
187 adoptPtr(new CalcExpressionBinaryOperation( 192 adoptPtr(new CalcExpressionBinaryOperation(
188 adoptPtr(new CalcExpressionLength(Length(-15, WebCore::Fixed))), 193 adoptPtr(new CalcExpressionLength(Length(-15, WebCore::Fixed))),
189 adoptPtr(new CalcExpressionLength(Length(-5, Percent))), 194 adoptPtr(new CalcExpressionLength(Length(-5, Percent))),
190 CalcAdd)), 195 CalcAdd)),
191 ValueRangeAll)), 196 ValueRangeAll)),
192 create(-5, CSSPrimitiveValue::CSS_PX, -5, CSSPrimitiveValue::CSS_PERCENT AGE)->toLength(style.get(), style.get(), 3)); 197 create(-5, CSSPrimitiveValue::CSS_PX, -5, CSSPrimitiveValue::CSS_PERCENT AGE)->toLength(conversionDataZoom3));
193 EXPECT_EQ( 198 EXPECT_EQ(
194 Length(CalculationValue::create( 199 Length(CalculationValue::create(
195 adoptPtr(new CalcExpressionBinaryOperation( 200 adoptPtr(new CalcExpressionBinaryOperation(
196 adoptPtr(new CalcExpressionLength(Length(-5, WebCore::Fixed))), 201 adoptPtr(new CalcExpressionLength(Length(-5, WebCore::Fixed))),
197 adoptPtr(new CalcExpressionLength(Length(-5, Percent))), 202 adoptPtr(new CalcExpressionLength(Length(-5, Percent))),
198 CalcAdd)), 203 CalcAdd)),
199 ValueRangeNonNegative)), 204 ValueRangeNonNegative)),
200 create(-5, CSSPrimitiveValue::CSS_PX, -5, CSSPrimitiveValue::CSS_PERCENT AGE)->toLength(style.get(), style.get(), 1, NonNegativeValues)); 205 create(-5, CSSPrimitiveValue::CSS_PX, -5, CSSPrimitiveValue::CSS_PERCENT AGE)->toLength(conversionDataZoom1, NonNegativeValues));
201 EXPECT_EQ( 206 EXPECT_EQ(
202 Length(CalculationValue::create( 207 Length(CalculationValue::create(
203 adoptPtr(new CalcExpressionBinaryOperation( 208 adoptPtr(new CalcExpressionBinaryOperation(
204 adoptPtr(new CalcExpressionLength(Length(-15, WebCore::Fixed))), 209 adoptPtr(new CalcExpressionLength(Length(-15, WebCore::Fixed))),
205 adoptPtr(new CalcExpressionLength(Length(-5, Percent))), 210 adoptPtr(new CalcExpressionLength(Length(-5, Percent))),
206 CalcAdd)), 211 CalcAdd)),
207 ValueRangeNonNegative)), 212 ValueRangeNonNegative)),
208 create(-5, CSSPrimitiveValue::CSS_PX, -5, CSSPrimitiveValue::CSS_PERCENT AGE)->toLength(style.get(), style.get(), 3, NonNegativeValues)); 213 create(-5, CSSPrimitiveValue::CSS_PX, -5, CSSPrimitiveValue::CSS_PERCENT AGE)->toLength(conversionDataZoom3, NonNegativeValues));
209 } 214 }
210 215
211 TEST_F(AnimationAnimatableLengthTest, Interpolate) 216 TEST_F(AnimationAnimatableLengthTest, Interpolate)
212 { 217 {
213 RefPtr<AnimatableLength> from10px = create(10, CSSPrimitiveValue::CSS_PX); 218 RefPtr<AnimatableLength> from10px = create(10, CSSPrimitiveValue::CSS_PX);
214 RefPtr<AnimatableLength> to20pxAsInches = create(20.0 / 96, CSSPrimitiveValu e::CSS_IN); 219 RefPtr<AnimatableLength> to20pxAsInches = create(20.0 / 96, CSSPrimitiveValu e::CSS_IN);
215 220
216 EXPECT_REFV_EQ(create(5, CSSPrimitiveValue::CSS_PX), 221 EXPECT_REFV_EQ(create(5, CSSPrimitiveValue::CSS_PX),
217 AnimatableValue::interpolate(from10px.get(), to20pxAsInches.get(), -0.5) ); 222 AnimatableValue::interpolate(from10px.get(), to20pxAsInches.get(), -0.5) );
218 223
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
353 358
354 RefPtr<AnimatableLength> lengthCalc = create(3, CSSPrimitiveValue::CSS_PX, 5 , CSSPrimitiveValue::CSS_CM); 359 RefPtr<AnimatableLength> lengthCalc = create(3, CSSPrimitiveValue::CSS_PX, 5 , CSSPrimitiveValue::CSS_CM);
355 EXPECT_EQ(AnimatableLength::UnitTypeCalc, commonUnitType(lengthCalc, create( 1, CSSPrimitiveValue::CSS_PX).get())); 360 EXPECT_EQ(AnimatableLength::UnitTypeCalc, commonUnitType(lengthCalc, create( 1, CSSPrimitiveValue::CSS_PX).get()));
356 EXPECT_EQ(AnimatableLength::UnitTypeCalc, commonUnitType(lengthCalc, create( 2, CSSPrimitiveValue::CSS_PERCENTAGE).get())); 361 EXPECT_EQ(AnimatableLength::UnitTypeCalc, commonUnitType(lengthCalc, create( 2, CSSPrimitiveValue::CSS_PERCENTAGE).get()));
357 EXPECT_EQ(AnimatableLength::UnitTypeCalc, commonUnitType(lengthCalc, create( 3, CSSPrimitiveValue::CSS_EMS).get())); 362 EXPECT_EQ(AnimatableLength::UnitTypeCalc, commonUnitType(lengthCalc, create( 3, CSSPrimitiveValue::CSS_EMS).get()));
358 EXPECT_EQ(AnimatableLength::UnitTypeCalc, commonUnitType(lengthCalc, create( 4, CSSPrimitiveValue::CSS_PX, 5, CSSPrimitiveValue::CSS_CM).get())); 363 EXPECT_EQ(AnimatableLength::UnitTypeCalc, commonUnitType(lengthCalc, create( 4, CSSPrimitiveValue::CSS_PX, 5, CSSPrimitiveValue::CSS_CM).get()));
359 EXPECT_EQ(AnimatableLength::UnitTypeCalc, commonUnitType(lengthCalc, create( 0, CSSPrimitiveValue::CSS_PERCENTAGE).get())); 364 EXPECT_EQ(AnimatableLength::UnitTypeCalc, commonUnitType(lengthCalc, create( 0, CSSPrimitiveValue::CSS_PERCENTAGE).get()));
360 } 365 }
361 366
362 } // namespace WebCore 367 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/animation/AnimatableLength.cpp ('k') | Source/core/core.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698