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)")); |
+} |
+ |
+} |