| OLD | NEW |
| 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 28 matching lines...) Expand all Loading... |
| 39 #include "core/rendering/style/StyleInheritedData.h" | 39 #include "core/rendering/style/StyleInheritedData.h" |
| 40 #include "platform/CalculationValue.h" | 40 #include "platform/CalculationValue.h" |
| 41 #include "wtf/MathExtras.h" | 41 #include "wtf/MathExtras.h" |
| 42 | 42 |
| 43 #include <gtest/gtest.h> | 43 #include <gtest/gtest.h> |
| 44 | 44 |
| 45 #define EXPECT_ROUNDTRIP(a, f) EXPECT_REFV_EQ(a, f(a.get())) | 45 #define EXPECT_ROUNDTRIP(a, f) EXPECT_REFV_EQ(a, f(a.get())) |
| 46 | 46 |
| 47 namespace WebCore { | 47 namespace WebCore { |
| 48 | 48 |
| 49 class CoreAnimationAnimatableLengthTest : public ::testing::Test { | 49 class AnimationAnimatableLengthTest : public ::testing::Test { |
| 50 protected: | 50 protected: |
| 51 virtual void SetUp() | 51 virtual void SetUp() |
| 52 { | 52 { |
| 53 style = RenderStyle::createDefaultStyle(); | 53 style = RenderStyle::createDefaultStyle(); |
| 54 } | 54 } |
| 55 | 55 |
| 56 PassRefPtr<AnimatableLength> create(double value, CSSPrimitiveValue::UnitTyp
es type) | 56 PassRefPtr<AnimatableLength> create(double value, CSSPrimitiveValue::UnitTyp
es type) |
| 57 { | 57 { |
| 58 return AnimatableLength::create(CSSPrimitiveValue::create(value, type).g
et()); | 58 return AnimatableLength::create(CSSPrimitiveValue::create(value, type).g
et()); |
| 59 } | 59 } |
| (...skipping 23 matching lines...) Expand all Loading... |
| 83 } | 83 } |
| 84 | 84 |
| 85 bool isUnitlessZero(PassRefPtr<AnimatableLength> a) | 85 bool isUnitlessZero(PassRefPtr<AnimatableLength> a) |
| 86 { | 86 { |
| 87 return a->isUnitlessZero(); | 87 return a->isUnitlessZero(); |
| 88 } | 88 } |
| 89 | 89 |
| 90 RefPtr<RenderStyle> style; | 90 RefPtr<RenderStyle> style; |
| 91 }; | 91 }; |
| 92 | 92 |
| 93 TEST_F(CoreAnimationAnimatableLengthTest, CanCreateFrom) | 93 TEST_F(AnimationAnimatableLengthTest, CanCreateFrom) |
| 94 { | 94 { |
| 95 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_PX).get())); | 95 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())); | 96 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())); | 97 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())); | 98 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())); | 99 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())); | 100 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_PC).get())); |
| 101 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_EMS).get())); | 101 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_EMS).get())); |
| 102 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_EXS).get())); | 102 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_EXS).get())); |
| 103 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_REMS).get())); | 103 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_REMS).get())); |
| 104 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_PERCENTAGE).get())); | 104 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_PERCENTAGE).get())); |
| 105 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_VW).get())); | 105 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_VW).get())); |
| 106 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_VH).get())); | 106 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_VH).get())); |
| 107 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_VMIN).get())); | 107 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_VMIN).get())); |
| 108 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_VMAX).get())); | 108 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(5, CSS
PrimitiveValue::CSS_VMAX).get())); |
| 109 | 109 |
| 110 EXPECT_TRUE(AnimatableLength::canCreateFrom(createCalc(3, CSSPrimitiveValue:
:CSS_PX, 5, CSSPrimitiveValue::CSS_CM).get())); | 110 EXPECT_TRUE(AnimatableLength::canCreateFrom(createCalc(3, CSSPrimitiveValue:
:CSS_PX, 5, CSSPrimitiveValue::CSS_CM).get())); |
| 111 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(create
Calc(3, CSSPrimitiveValue::CSS_PX, 5, CSSPrimitiveValue::CSS_CM)).get())); | 111 EXPECT_TRUE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create(create
Calc(3, CSSPrimitiveValue::CSS_PX, 5, CSSPrimitiveValue::CSS_CM)).get())); |
| 112 | 112 |
| 113 EXPECT_FALSE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create("NaN"
, CSSPrimitiveValue::CSS_STRING).get())); | 113 EXPECT_FALSE(AnimatableLength::canCreateFrom(CSSPrimitiveValue::create("NaN"
, CSSPrimitiveValue::CSS_STRING).get())); |
| 114 } | 114 } |
| 115 | 115 |
| 116 TEST_F(CoreAnimationAnimatableLengthTest, Create) | 116 TEST_F(AnimationAnimatableLengthTest, Create) |
| 117 { | 117 { |
| 118 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_PX).get())); | 118 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_PX).get())); |
| 119 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_CM).get())); | 119 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_CM).get())); |
| 120 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_MM).get())); | 120 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_MM).get())); |
| 121 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_IN).get())); | 121 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_IN).get())); |
| 122 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_PT).get())); | 122 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_PT).get())); |
| 123 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_PC).get())); | 123 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_PC).get())); |
| 124 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_EMS).get())); | 124 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_EMS).get())); |
| 125 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_EXS).get())); | 125 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_EXS).get())); |
| 126 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_REMS).get()))
; | 126 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_REMS).get()))
; |
| 127 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_PERCENTAGE).g
et())); | 127 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_PERCENTAGE).g
et())); |
| 128 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_VW).get())); | 128 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_VW).get())); |
| 129 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_VH).get())); | 129 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_VH).get())); |
| 130 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_VMIN).get()))
; | 130 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_VMIN).get()))
; |
| 131 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_VMAX).get()))
; | 131 EXPECT_TRUE(static_cast<bool>(create(5, CSSPrimitiveValue::CSS_VMAX).get()))
; |
| 132 | 132 |
| 133 EXPECT_TRUE(static_cast<bool>( | 133 EXPECT_TRUE(static_cast<bool>( |
| 134 AnimatableLength::create(createCalc(3, CSSPrimitiveValue::CSS_PX, 5, CSS
PrimitiveValue::CSS_CM).get()).get() | 134 AnimatableLength::create(createCalc(3, CSSPrimitiveValue::CSS_PX, 5, CSS
PrimitiveValue::CSS_CM).get()).get() |
| 135 )); | 135 )); |
| 136 EXPECT_TRUE(static_cast<bool>( | 136 EXPECT_TRUE(static_cast<bool>( |
| 137 AnimatableLength::create(CSSPrimitiveValue::create(createCalc(3, CSSPrim
itiveValue::CSS_PX, 5, CSSPrimitiveValue::CSS_CM)).get()).get() | 137 AnimatableLength::create(CSSPrimitiveValue::create(createCalc(3, CSSPrim
itiveValue::CSS_PX, 5, CSSPrimitiveValue::CSS_CM)).get()).get() |
| 138 )); | 138 )); |
| 139 } | 139 } |
| 140 | 140 |
| 141 | 141 |
| 142 TEST_F(CoreAnimationAnimatableLengthTest, ToCSSValue) | 142 TEST_F(AnimationAnimatableLengthTest, ToCSSValue) |
| 143 { | 143 { |
| 144 | 144 |
| 145 EXPECT_ROUNDTRIP(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::CSS_PX), t
oCSSValue); | 145 EXPECT_ROUNDTRIP(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::CSS_PX), t
oCSSValue); |
| 146 EXPECT_ROUNDTRIP(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::CSS_CM), t
oCSSValue); | 146 EXPECT_ROUNDTRIP(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::CSS_CM), t
oCSSValue); |
| 147 EXPECT_ROUNDTRIP(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::CSS_MM), t
oCSSValue); | 147 EXPECT_ROUNDTRIP(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::CSS_MM), t
oCSSValue); |
| 148 EXPECT_ROUNDTRIP(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::CSS_IN), t
oCSSValue); | 148 EXPECT_ROUNDTRIP(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::CSS_IN), t
oCSSValue); |
| 149 EXPECT_ROUNDTRIP(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::CSS_PT), t
oCSSValue); | 149 EXPECT_ROUNDTRIP(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::CSS_PT), t
oCSSValue); |
| 150 EXPECT_ROUNDTRIP(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::CSS_PC), t
oCSSValue); | 150 EXPECT_ROUNDTRIP(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::CSS_PC), t
oCSSValue); |
| 151 EXPECT_ROUNDTRIP(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::CSS_EMS),
toCSSValue); | 151 EXPECT_ROUNDTRIP(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::CSS_EMS),
toCSSValue); |
| 152 EXPECT_ROUNDTRIP(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::CSS_EXS),
toCSSValue); | 152 EXPECT_ROUNDTRIP(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::CSS_EXS),
toCSSValue); |
| 153 EXPECT_ROUNDTRIP(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::CSS_REMS),
toCSSValue); | 153 EXPECT_ROUNDTRIP(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::CSS_REMS),
toCSSValue); |
| 154 EXPECT_ROUNDTRIP(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::CSS_PERCEN
TAGE), toCSSValue); | 154 EXPECT_ROUNDTRIP(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::CSS_PERCEN
TAGE), toCSSValue); |
| 155 EXPECT_ROUNDTRIP(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::CSS_VW), t
oCSSValue); | 155 EXPECT_ROUNDTRIP(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::CSS_VW), t
oCSSValue); |
| 156 EXPECT_ROUNDTRIP(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::CSS_VH), t
oCSSValue); | 156 EXPECT_ROUNDTRIP(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::CSS_VH), t
oCSSValue); |
| 157 EXPECT_ROUNDTRIP(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::CSS_VMIN),
toCSSValue); | 157 EXPECT_ROUNDTRIP(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::CSS_VMIN),
toCSSValue); |
| 158 EXPECT_ROUNDTRIP(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::CSS_VMAX),
toCSSValue); | 158 EXPECT_ROUNDTRIP(CSSPrimitiveValue::create(-5, CSSPrimitiveValue::CSS_VMAX),
toCSSValue); |
| 159 | 159 |
| 160 EXPECT_ROUNDTRIP(CSSPrimitiveValue::create(createCalc(3, CSSPrimitiveValue::
CSS_PX, 5, CSSPrimitiveValue::CSS_IN)), toCSSValue); | 160 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); | 161 EXPECT_ROUNDTRIP(CSSPrimitiveValue::create(createCalc(3, CSSPrimitiveValue::
CSS_PX, 5, CSSPrimitiveValue::CSS_IN)), toCSSValue); |
| 162 } | 162 } |
| 163 | 163 |
| 164 | 164 |
| 165 TEST_F(CoreAnimationAnimatableLengthTest, ToLength) | 165 TEST_F(AnimationAnimatableLengthTest, ToLength) |
| 166 { | 166 { |
| 167 EXPECT_EQ(Length(-5, WebCore::Fixed), create(-5, CSSPrimitiveValue::CSS_PX)-
>toLength(style.get(), style.get(), 1)); | 167 EXPECT_EQ(Length(-5, WebCore::Fixed), create(-5, CSSPrimitiveValue::CSS_PX)-
>toLength(style.get(), style.get(), 1)); |
| 168 EXPECT_EQ(Length(-15, WebCore::Fixed), create(-5, CSSPrimitiveValue::CSS_PX)
->toLength(style.get(), style.get(), 3)); | 168 EXPECT_EQ(Length(-15, WebCore::Fixed), create(-5, CSSPrimitiveValue::CSS_PX)
->toLength(style.get(), style.get(), 3)); |
| 169 EXPECT_EQ(Length(0, WebCore::Fixed), create(-5, CSSPrimitiveValue::CSS_PX)->
toLength(style.get(), style.get(), 1, NonNegativeValues)); | 169 EXPECT_EQ(Length(0, WebCore::Fixed), create(-5, CSSPrimitiveValue::CSS_PX)->
toLength(style.get(), style.get(), 1, NonNegativeValues)); |
| 170 EXPECT_EQ(Length(0, WebCore::Fixed), create(-5, CSSPrimitiveValue::CSS_PX)->
toLength(style.get(), style.get(), 3, NonNegativeValues)); | 170 EXPECT_EQ(Length(0, WebCore::Fixed), create(-5, CSSPrimitiveValue::CSS_PX)->
toLength(style.get(), style.get(), 3, NonNegativeValues)); |
| 171 | 171 |
| 172 EXPECT_EQ(Length(-5, Percent), create(-5, CSSPrimitiveValue::CSS_PERCENTAGE)
->toLength(style.get(), style.get(), 1)); | 172 EXPECT_EQ(Length(-5, Percent), create(-5, CSSPrimitiveValue::CSS_PERCENTAGE)
->toLength(style.get(), style.get(), 1)); |
| 173 EXPECT_EQ(Length(-5, Percent), create(-5, CSSPrimitiveValue::CSS_PERCENTAGE)
->toLength(style.get(), style.get(), 3)); | 173 EXPECT_EQ(Length(-5, Percent), create(-5, CSSPrimitiveValue::CSS_PERCENTAGE)
->toLength(style.get(), style.get(), 3)); |
| 174 EXPECT_EQ(Length(0, Percent), create(-5, CSSPrimitiveValue::CSS_PERCENTAGE)-
>toLength(style.get(), style.get(), 1, NonNegativeValues)); | 174 EXPECT_EQ(Length(0, Percent), create(-5, CSSPrimitiveValue::CSS_PERCENTAGE)-
>toLength(style.get(), style.get(), 1, NonNegativeValues)); |
| 175 EXPECT_EQ(Length(0, Percent), create(-5, CSSPrimitiveValue::CSS_PERCENTAGE)-
>toLength(style.get(), style.get(), 3, NonNegativeValues)); | 175 EXPECT_EQ(Length(0, Percent), create(-5, CSSPrimitiveValue::CSS_PERCENTAGE)-
>toLength(style.get(), style.get(), 3, NonNegativeValues)); |
| (...skipping 25 matching lines...) Expand all Loading... |
| 201 EXPECT_EQ( | 201 EXPECT_EQ( |
| 202 Length(CalculationValue::create( | 202 Length(CalculationValue::create( |
| 203 adoptPtr(new CalcExpressionBinaryOperation( | 203 adoptPtr(new CalcExpressionBinaryOperation( |
| 204 adoptPtr(new CalcExpressionLength(Length(-15, WebCore::Fixed))), | 204 adoptPtr(new CalcExpressionLength(Length(-15, WebCore::Fixed))), |
| 205 adoptPtr(new CalcExpressionLength(Length(-5, Percent))), | 205 adoptPtr(new CalcExpressionLength(Length(-5, Percent))), |
| 206 CalcAdd)), | 206 CalcAdd)), |
| 207 ValueRangeNonNegative)), | 207 ValueRangeNonNegative)), |
| 208 create(-5, CSSPrimitiveValue::CSS_PX, -5, CSSPrimitiveValue::CSS_PERCENT
AGE)->toLength(style.get(), style.get(), 3, NonNegativeValues)); | 208 create(-5, CSSPrimitiveValue::CSS_PX, -5, CSSPrimitiveValue::CSS_PERCENT
AGE)->toLength(style.get(), style.get(), 3, NonNegativeValues)); |
| 209 } | 209 } |
| 210 | 210 |
| 211 TEST_F(CoreAnimationAnimatableLengthTest, Interpolate) | 211 TEST_F(AnimationAnimatableLengthTest, Interpolate) |
| 212 { | 212 { |
| 213 RefPtr<AnimatableLength> from10px = create(10, CSSPrimitiveValue::CSS_PX); | 213 RefPtr<AnimatableLength> from10px = create(10, CSSPrimitiveValue::CSS_PX); |
| 214 RefPtr<AnimatableLength> to20pxAsInches = create(20.0 / 96, CSSPrimitiveValu
e::CSS_IN); | 214 RefPtr<AnimatableLength> to20pxAsInches = create(20.0 / 96, CSSPrimitiveValu
e::CSS_IN); |
| 215 | 215 |
| 216 EXPECT_REFV_EQ(create(5, CSSPrimitiveValue::CSS_PX), | 216 EXPECT_REFV_EQ(create(5, CSSPrimitiveValue::CSS_PX), |
| 217 AnimatableValue::interpolate(from10px.get(), to20pxAsInches.get(), -0.5)
); | 217 AnimatableValue::interpolate(from10px.get(), to20pxAsInches.get(), -0.5)
); |
| 218 | 218 |
| 219 EXPECT_REFV_EQ(create(10, CSSPrimitiveValue::CSS_PX), | 219 EXPECT_REFV_EQ(create(10, CSSPrimitiveValue::CSS_PX), |
| 220 AnimatableValue::interpolate(from10px.get(), to20pxAsInches.get(), 0)); | 220 AnimatableValue::interpolate(from10px.get(), to20pxAsInches.get(), 0)); |
| 221 EXPECT_REFV_EQ(create(14, CSSPrimitiveValue::CSS_PX), | 221 EXPECT_REFV_EQ(create(14, CSSPrimitiveValue::CSS_PX), |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 269 AnimatableValue::interpolate(from0percent.get(), to20rem.get(), 0)); | 269 AnimatableValue::interpolate(from0percent.get(), to20rem.get(), 0)); |
| 270 EXPECT_REFV_EQ(create(0, CSSPrimitiveValue::CSS_PERCENTAGE, 10, CSSPrimitive
Value::CSS_REMS), | 270 EXPECT_REFV_EQ(create(0, CSSPrimitiveValue::CSS_PERCENTAGE, 10, CSSPrimitive
Value::CSS_REMS), |
| 271 AnimatableValue::interpolate(from0percent.get(), to20rem.get(), 0.5)); | 271 AnimatableValue::interpolate(from0percent.get(), to20rem.get(), 0.5)); |
| 272 // At t=1, interpolate always returns the "to" value. | 272 // At t=1, interpolate always returns the "to" value. |
| 273 EXPECT_REFV_EQ(create(20, CSSPrimitiveValue::CSS_REMS), | 273 EXPECT_REFV_EQ(create(20, CSSPrimitiveValue::CSS_REMS), |
| 274 AnimatableValue::interpolate(from0percent.get(), to20rem.get(), 1.0)); | 274 AnimatableValue::interpolate(from0percent.get(), to20rem.get(), 1.0)); |
| 275 EXPECT_REFV_EQ(create(0, CSSPrimitiveValue::CSS_PERCENTAGE, 30, CSSPrimitive
Value::CSS_REMS), | 275 EXPECT_REFV_EQ(create(0, CSSPrimitiveValue::CSS_PERCENTAGE, 30, CSSPrimitive
Value::CSS_REMS), |
| 276 AnimatableValue::interpolate(from0percent.get(), to20rem.get(), 1.5)); | 276 AnimatableValue::interpolate(from0percent.get(), to20rem.get(), 1.5)); |
| 277 } | 277 } |
| 278 | 278 |
| 279 TEST_F(CoreAnimationAnimatableLengthTest, Add) | 279 TEST_F(AnimationAnimatableLengthTest, Add) |
| 280 { | 280 { |
| 281 EXPECT_REFV_EQ(create(10, CSSPrimitiveValue::CSS_PX), | 281 EXPECT_REFV_EQ(create(10, CSSPrimitiveValue::CSS_PX), |
| 282 AnimatableValue::add(create(10, CSSPrimitiveValue::CSS_PX).get(), create
(0, CSSPrimitiveValue::CSS_MM).get())); | 282 AnimatableValue::add(create(10, CSSPrimitiveValue::CSS_PX).get(), create
(0, CSSPrimitiveValue::CSS_MM).get())); |
| 283 EXPECT_REFV_EQ(create(100, CSSPrimitiveValue::CSS_PX), | 283 EXPECT_REFV_EQ(create(100, CSSPrimitiveValue::CSS_PX), |
| 284 AnimatableValue::add(create(4, CSSPrimitiveValue::CSS_PX).get(), create(
1, CSSPrimitiveValue::CSS_IN).get())); | 284 AnimatableValue::add(create(4, CSSPrimitiveValue::CSS_PX).get(), create(
1, CSSPrimitiveValue::CSS_IN).get())); |
| 285 EXPECT_REFV_EQ( | 285 EXPECT_REFV_EQ( |
| 286 create(10, CSSPrimitiveValue::CSS_EMS, 20, CSSPrimitiveValue::CSS_REMS), | 286 create(10, CSSPrimitiveValue::CSS_EMS, 20, CSSPrimitiveValue::CSS_REMS), |
| 287 AnimatableValue::add(create(10, CSSPrimitiveValue::CSS_EMS).get(), creat
e(20, CSSPrimitiveValue::CSS_REMS).get())); | 287 AnimatableValue::add(create(10, CSSPrimitiveValue::CSS_EMS).get(), creat
e(20, CSSPrimitiveValue::CSS_REMS).get())); |
| 288 EXPECT_REFV_EQ( | 288 EXPECT_REFV_EQ( |
| 289 create(10, CSSPrimitiveValue::CSS_EMS), | 289 create(10, CSSPrimitiveValue::CSS_EMS), |
| 290 AnimatableValue::add(create(10, CSSPrimitiveValue::CSS_EMS).get(), creat
e(0, CSSPrimitiveValue::CSS_REMS).get())); | 290 AnimatableValue::add(create(10, CSSPrimitiveValue::CSS_EMS).get(), creat
e(0, CSSPrimitiveValue::CSS_REMS).get())); |
| 291 EXPECT_REFV_EQ( | 291 EXPECT_REFV_EQ( |
| 292 create(20, CSSPrimitiveValue::CSS_REMS), | 292 create(20, CSSPrimitiveValue::CSS_REMS), |
| 293 AnimatableValue::add(create(0, CSSPrimitiveValue::CSS_EMS).get(), create
(20, CSSPrimitiveValue::CSS_REMS).get())); | 293 AnimatableValue::add(create(0, CSSPrimitiveValue::CSS_EMS).get(), create
(20, CSSPrimitiveValue::CSS_REMS).get())); |
| 294 | 294 |
| 295 // Check you actually get the reference back for zero optimization | 295 // Check you actually get the reference back for zero optimization |
| 296 RefPtr<AnimatableLength> rems20 = create(20, CSSPrimitiveValue::CSS_REMS); | 296 RefPtr<AnimatableLength> rems20 = create(20, CSSPrimitiveValue::CSS_REMS); |
| 297 EXPECT_EQ(rems20.get(), AnimatableValue::add(create(0, CSSPrimitiveValue::CS
S_EMS).get(), rems20.get()).get()); | 297 EXPECT_EQ(rems20.get(), AnimatableValue::add(create(0, CSSPrimitiveValue::CS
S_EMS).get(), rems20.get()).get()); |
| 298 EXPECT_EQ(rems20.get(), AnimatableValue::add(rems20.get(), create(0, CSSPrim
itiveValue::CSS_EMS).get()).get()); | 298 EXPECT_EQ(rems20.get(), AnimatableValue::add(rems20.get(), create(0, CSSPrim
itiveValue::CSS_EMS).get()).get()); |
| 299 | 299 |
| 300 // Except 0% which is special | 300 // Except 0% which is special |
| 301 RefPtr<AnimatableLength> zeropercent = create(0, CSSPrimitiveValue::CSS_PERC
ENTAGE); | 301 RefPtr<AnimatableLength> zeropercent = create(0, CSSPrimitiveValue::CSS_PERC
ENTAGE); |
| 302 EXPECT_REFV_EQ(create(0, CSSPrimitiveValue::CSS_PERCENTAGE, -10, CSSPrimitiv
eValue::CSS_REMS), | 302 EXPECT_REFV_EQ(create(0, CSSPrimitiveValue::CSS_PERCENTAGE, -10, CSSPrimitiv
eValue::CSS_REMS), |
| 303 AnimatableValue::add(zeropercent.get(), create(-10, CSSPrimitiveValue::C
SS_REMS).get())); | 303 AnimatableValue::add(zeropercent.get(), create(-10, CSSPrimitiveValue::C
SS_REMS).get())); |
| 304 EXPECT_REFV_EQ(create(-10, CSSPrimitiveValue::CSS_REMS, 0, CSSPrimitiveValue
::CSS_PERCENTAGE), | 304 EXPECT_REFV_EQ(create(-10, CSSPrimitiveValue::CSS_REMS, 0, CSSPrimitiveValue
::CSS_PERCENTAGE), |
| 305 AnimatableValue::add(create(-10, CSSPrimitiveValue::CSS_REMS).get(), zer
opercent.get())); | 305 AnimatableValue::add(create(-10, CSSPrimitiveValue::CSS_REMS).get(), zer
opercent.get())); |
| 306 } | 306 } |
| 307 | 307 |
| 308 TEST_F(CoreAnimationAnimatableLengthTest, IsUnitless) | 308 TEST_F(AnimationAnimatableLengthTest, IsUnitless) |
| 309 { | 309 { |
| 310 EXPECT_TRUE(isUnitlessZero(create(0, CSSPrimitiveValue::CSS_PX))); | 310 EXPECT_TRUE(isUnitlessZero(create(0, CSSPrimitiveValue::CSS_PX))); |
| 311 EXPECT_FALSE(isUnitlessZero(create(0, CSSPrimitiveValue::CSS_PERCENTAGE))); | 311 EXPECT_FALSE(isUnitlessZero(create(0, CSSPrimitiveValue::CSS_PERCENTAGE))); |
| 312 EXPECT_TRUE(isUnitlessZero(create(0, CSSPrimitiveValue::CSS_EMS))); | 312 EXPECT_TRUE(isUnitlessZero(create(0, CSSPrimitiveValue::CSS_EMS))); |
| 313 EXPECT_TRUE(isUnitlessZero(create(0, CSSPrimitiveValue::CSS_EXS))); | 313 EXPECT_TRUE(isUnitlessZero(create(0, CSSPrimitiveValue::CSS_EXS))); |
| 314 EXPECT_TRUE(isUnitlessZero(create(0, CSSPrimitiveValue::CSS_REMS))); | 314 EXPECT_TRUE(isUnitlessZero(create(0, CSSPrimitiveValue::CSS_REMS))); |
| 315 EXPECT_TRUE(isUnitlessZero(create(0, CSSPrimitiveValue::CSS_VW))); | 315 EXPECT_TRUE(isUnitlessZero(create(0, CSSPrimitiveValue::CSS_VW))); |
| 316 EXPECT_TRUE(isUnitlessZero(create(0, CSSPrimitiveValue::CSS_VH))); | 316 EXPECT_TRUE(isUnitlessZero(create(0, CSSPrimitiveValue::CSS_VH))); |
| 317 EXPECT_TRUE(isUnitlessZero(create(0, CSSPrimitiveValue::CSS_VMIN))); | 317 EXPECT_TRUE(isUnitlessZero(create(0, CSSPrimitiveValue::CSS_VMIN))); |
| 318 EXPECT_TRUE(isUnitlessZero(create(0, CSSPrimitiveValue::CSS_VMAX))); | 318 EXPECT_TRUE(isUnitlessZero(create(0, CSSPrimitiveValue::CSS_VMAX))); |
| 319 | 319 |
| 320 EXPECT_FALSE(isUnitlessZero(create(1, CSSPrimitiveValue::CSS_PX))); | 320 EXPECT_FALSE(isUnitlessZero(create(1, CSSPrimitiveValue::CSS_PX))); |
| 321 EXPECT_FALSE(isUnitlessZero(create(2, CSSPrimitiveValue::CSS_PERCENTAGE))); | 321 EXPECT_FALSE(isUnitlessZero(create(2, CSSPrimitiveValue::CSS_PERCENTAGE))); |
| 322 EXPECT_FALSE(isUnitlessZero(create(3, CSSPrimitiveValue::CSS_EMS))); | 322 EXPECT_FALSE(isUnitlessZero(create(3, CSSPrimitiveValue::CSS_EMS))); |
| 323 EXPECT_FALSE(isUnitlessZero(create(4, CSSPrimitiveValue::CSS_EXS))); | 323 EXPECT_FALSE(isUnitlessZero(create(4, CSSPrimitiveValue::CSS_EXS))); |
| 324 EXPECT_FALSE(isUnitlessZero(create(5, CSSPrimitiveValue::CSS_REMS))); | 324 EXPECT_FALSE(isUnitlessZero(create(5, CSSPrimitiveValue::CSS_REMS))); |
| 325 EXPECT_FALSE(isUnitlessZero(create(6, CSSPrimitiveValue::CSS_VW))); | 325 EXPECT_FALSE(isUnitlessZero(create(6, CSSPrimitiveValue::CSS_VW))); |
| 326 EXPECT_FALSE(isUnitlessZero(create(7, CSSPrimitiveValue::CSS_VH))); | 326 EXPECT_FALSE(isUnitlessZero(create(7, CSSPrimitiveValue::CSS_VH))); |
| 327 EXPECT_FALSE(isUnitlessZero(create(8, CSSPrimitiveValue::CSS_VMIN))); | 327 EXPECT_FALSE(isUnitlessZero(create(8, CSSPrimitiveValue::CSS_VMIN))); |
| 328 EXPECT_FALSE(isUnitlessZero(create(9, CSSPrimitiveValue::CSS_VMAX))); | 328 EXPECT_FALSE(isUnitlessZero(create(9, CSSPrimitiveValue::CSS_VMAX))); |
| 329 } | 329 } |
| 330 | 330 |
| 331 TEST_F(CoreAnimationAnimatableLengthTest, CommonUnitType) | 331 TEST_F(AnimationAnimatableLengthTest, CommonUnitType) |
| 332 { | 332 { |
| 333 RefPtr<AnimatableLength> length10px = create(10, CSSPrimitiveValue::CSS_PX); | 333 RefPtr<AnimatableLength> length10px = create(10, CSSPrimitiveValue::CSS_PX); |
| 334 EXPECT_EQ(AnimatableLength::UnitTypePixels, commonUnitType(length10px, crea
te(1, CSSPrimitiveValue::CSS_PX).get())); | 334 EXPECT_EQ(AnimatableLength::UnitTypePixels, commonUnitType(length10px, crea
te(1, CSSPrimitiveValue::CSS_PX).get())); |
| 335 EXPECT_EQ(AnimatableLength::UnitTypeCalc, commonUnitType(length10px, create(
2, CSSPrimitiveValue::CSS_PERCENTAGE).get())); | 335 EXPECT_EQ(AnimatableLength::UnitTypeCalc, commonUnitType(length10px, create(
2, CSSPrimitiveValue::CSS_PERCENTAGE).get())); |
| 336 EXPECT_EQ(AnimatableLength::UnitTypeCalc, commonUnitType(length10px, create(
3, CSSPrimitiveValue::CSS_EMS).get())); | 336 EXPECT_EQ(AnimatableLength::UnitTypeCalc, commonUnitType(length10px, create(
3, CSSPrimitiveValue::CSS_EMS).get())); |
| 337 EXPECT_EQ(AnimatableLength::UnitTypeCalc, commonUnitType(length10px, create(
4, CSSPrimitiveValue::CSS_PX, 5, CSSPrimitiveValue::CSS_CM).get())); | 337 EXPECT_EQ(AnimatableLength::UnitTypeCalc, commonUnitType(length10px, create(
4, CSSPrimitiveValue::CSS_PX, 5, CSSPrimitiveValue::CSS_CM).get())); |
| 338 EXPECT_EQ(AnimatableLength::UnitTypeCalc, commonUnitType(length10px, create(
0, CSSPrimitiveValue::CSS_PERCENTAGE).get())); | 338 EXPECT_EQ(AnimatableLength::UnitTypeCalc, commonUnitType(length10px, create(
0, CSSPrimitiveValue::CSS_PERCENTAGE).get())); |
| 339 | 339 |
| 340 RefPtr<AnimatableLength> length0px = create(0, CSSPrimitiveValue::CSS_PX); | 340 RefPtr<AnimatableLength> length0px = create(0, CSSPrimitiveValue::CSS_PX); |
| 341 EXPECT_EQ(AnimatableLength::UnitTypePixels, commonUnitType(length0px, cr
eate(1, CSSPrimitiveValue::CSS_PX).get())); | 341 EXPECT_EQ(AnimatableLength::UnitTypePixels, commonUnitType(length0px, cr
eate(1, CSSPrimitiveValue::CSS_PX).get())); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 353 | 353 |
| 354 RefPtr<AnimatableLength> lengthCalc = create(3, CSSPrimitiveValue::CSS_PX, 5
, CSSPrimitiveValue::CSS_CM); | 354 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())); | 355 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())); | 356 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())); | 357 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())); | 358 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())); | 359 EXPECT_EQ(AnimatableLength::UnitTypeCalc, commonUnitType(lengthCalc, create(
0, CSSPrimitiveValue::CSS_PERCENTAGE).get())); |
| 360 } | 360 } |
| 361 | 361 |
| 362 } // namespace WebCore | 362 } // namespace WebCore |
| OLD | NEW |