Chromium Code Reviews| Index: Source/core/animation/interpolation/DeferredLegacyStyleInterpolationTest.cpp |
| diff --git a/Source/core/animation/interpolation/DeferredLegacyStyleInterpolationTest.cpp b/Source/core/animation/interpolation/DeferredLegacyStyleInterpolationTest.cpp |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..03c87d3720ba30bee94e23ec888063d19c0321e4 |
| --- /dev/null |
| +++ b/Source/core/animation/interpolation/DeferredLegacyStyleInterpolationTest.cpp |
| @@ -0,0 +1,93 @@ |
| +// Copyright 2014 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "config.h" |
| +#include "core/animation/interpolation/DeferredLegacyStyleInterpolation.h" |
| + |
| +#include "core/css/CSSInheritedValue.h" |
| +#include "core/css/CSSPrimitiveValue.h" |
| +#include "core/css/CSSValueList.h" |
| +#include "core/css/StylePropertySet.h" |
| +#include "core/css/parser/BisonCSSParser.h" |
| + |
| +#include <gtest/gtest.h> |
| + |
| +namespace WebCore { |
| + |
| +class AnimationDeferredLegacyStyleInterpolationTest : public ::testing::Test { |
| +protected: |
| + static bool test(CSSPropertyID propertyID, const String& string) |
| + { |
| + CSSParserMode parserMode = HTMLStandardMode; |
| + if (propertyID == CSSPropertyFloodColor) |
| + parserMode = SVGAttributeMode; |
| + RefPtrWillBeRawPtr<MutableStylePropertySet> dummyStyle = MutableStylePropertySet::create(); |
| + RELEASE_ASSERT(BisonCSSParser::parseValue(dummyStyle.get(), propertyID, string, false, parserMode, 0)); |
|
dstockwell
2014/05/27 07:39:55
It's probably clearer to write this as:
result = p
|
| + return DeferredLegacyStyleInterpolation::interpolationRequiresStyleResolve(*dummyStyle->getPropertyCSSValue(propertyID)); |
| + } |
| +}; |
| + |
| +TEST_F(AnimationDeferredLegacyStyleInterpolationTest, Inherit) |
| +{ |
| + EXPECT_TRUE(test(CSSPropertyCaptionSide, "inherit")); |
| +} |
| + |
| +TEST_F(AnimationDeferredLegacyStyleInterpolationTest, Color) |
| +{ |
| + EXPECT_FALSE(test(CSSPropertyColor, "rgb(10, 20, 30)")); |
| + EXPECT_FALSE(test(CSSPropertyColor, "aqua")); |
| + EXPECT_FALSE(test(CSSPropertyColor, "yellow")); |
| + EXPECT_FALSE(test(CSSPropertyColor, "transparent")); |
| + EXPECT_FALSE(test(CSSPropertyFloodColor, "aliceblue")); |
| + EXPECT_FALSE(test(CSSPropertyFloodColor, "yellowgreen")); |
| + EXPECT_FALSE(test(CSSPropertyFloodColor, "grey")); |
| + EXPECT_TRUE(test(CSSPropertyColor, "currentcolor")); |
| +} |
| + |
| +TEST_F(AnimationDeferredLegacyStyleInterpolationTest, Relative) |
| +{ |
| + EXPECT_TRUE(test(CSSPropertyFontWeight, "bolder")); |
| + EXPECT_TRUE(test(CSSPropertyFontWeight, "lighter")); |
| + EXPECT_TRUE(test(CSSPropertyFontSize, "smaller")); |
| + EXPECT_TRUE(test(CSSPropertyFontSize, "larger")); |
| +} |
| + |
| +TEST_F(AnimationDeferredLegacyStyleInterpolationTest, Length) |
| +{ |
| + EXPECT_FALSE(test(CSSPropertyWidth, "10px")); |
| + EXPECT_TRUE(test(CSSPropertyWidth, "10em")); |
| + EXPECT_TRUE(test(CSSPropertyWidth, "10vh")); |
| +} |
| + |
| +TEST_F(AnimationDeferredLegacyStyleInterpolationTest, Number) |
| +{ |
| + EXPECT_FALSE(test(CSSPropertyOpacity, "0.5")); |
| +} |
| + |
| +TEST_F(AnimationDeferredLegacyStyleInterpolationTest, Transform) |
| +{ |
| + EXPECT_TRUE(test(CSSPropertyTransform, "translateX(1em)")); |
| + EXPECT_FALSE(test(CSSPropertyTransform, "translateY(20px)")); |
| + EXPECT_FALSE(test(CSSPropertyTransform, "skewX(10rad) perspective(400px)")); |
| + EXPECT_TRUE(test(CSSPropertyTransform, "skewX(20rad) perspective(50em)")); |
| +} |
| + |
| +TEST_F(AnimationDeferredLegacyStyleInterpolationTest, Filter) |
| +{ |
| + EXPECT_FALSE(test(CSSPropertyWebkitFilter, "hue-rotate(180deg) blur(6px)")); |
| + EXPECT_FALSE(test(CSSPropertyWebkitFilter, "grayscale(0) blur(0px)")); |
| + EXPECT_FALSE(test(CSSPropertyWebkitFilter, "none")); |
| + EXPECT_FALSE(test(CSSPropertyWebkitFilter, "brightness(0) contrast(0)")); |
| + EXPECT_FALSE(test(CSSPropertyWebkitFilter, "drop-shadow(20px 10px green)")); |
| + EXPECT_TRUE(test(CSSPropertyWebkitFilter, "drop-shadow(20px 10vw green)")); |
| + EXPECT_TRUE(test(CSSPropertyWebkitFilter, "drop-shadow(0px 0px 0px currentcolor)")); |
| + EXPECT_FALSE(test(CSSPropertyWebkitFilter, "opacity(1)")); |
| + EXPECT_FALSE(test(CSSPropertyWebkitFilter, "saturate(0)")); |
| + EXPECT_FALSE(test(CSSPropertyWebkitFilter, "grayscale(1)")); |
| + EXPECT_FALSE(test(CSSPropertyWebkitFilter, "invert(1)")); |
| + EXPECT_FALSE(test(CSSPropertyWebkitFilter, "sepia(1)")); |
| + EXPECT_TRUE(test(CSSPropertyWebkitFilter, "url(#svgfilter)")); |
| +} |
| + |
| +} |