Index: Source/core/css/parser/BisonCSSParserTest.cpp |
diff --git a/Source/core/css/parser/BisonCSSParserTest.cpp b/Source/core/css/parser/BisonCSSParserTest.cpp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..cc50d14fd0c4965b6ebee003d450e41f4cec350c |
--- /dev/null |
+++ b/Source/core/css/parser/BisonCSSParserTest.cpp |
@@ -0,0 +1,79 @@ |
+// 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/css/parser/BisonCSSParser.h" |
+ |
+#include "core/css/CSSTimingFunctionValue.h" |
+#include "platform/animation/TimingFunction.h" |
+ |
+#include <gtest/gtest.h> |
+ |
+namespace WebCore { |
+ |
+TEST(BisonCSSParserTest, ParseAnimationTimingFunctionValue) |
+{ |
+ RefPtr<CSSValue> timingFunctionValue; |
+ timingFunctionValue = BisonCSSParser::parseAnimationTimingFunctionValue("ease"); |
+ EXPECT_EQ(CSSValueEase, toCSSPrimitiveValue(timingFunctionValue.get())->getValueID()); |
+ |
+ timingFunctionValue = BisonCSSParser::parseAnimationTimingFunctionValue("linear"); |
+ EXPECT_EQ(CSSValueLinear, toCSSPrimitiveValue(timingFunctionValue.get())->getValueID()); |
+ |
+ timingFunctionValue = BisonCSSParser::parseAnimationTimingFunctionValue("ease-in"); |
+ EXPECT_EQ(CSSValueEaseIn, toCSSPrimitiveValue(timingFunctionValue.get())->getValueID()); |
+ |
+ timingFunctionValue = BisonCSSParser::parseAnimationTimingFunctionValue("ease-out"); |
+ EXPECT_EQ(CSSValueEaseOut, toCSSPrimitiveValue(timingFunctionValue.get())->getValueID()); |
+ |
+ timingFunctionValue = BisonCSSParser::parseAnimationTimingFunctionValue("ease-in-out"); |
+ EXPECT_EQ(CSSValueEaseInOut, toCSSPrimitiveValue(timingFunctionValue.get())->getValueID()); |
+ |
+ timingFunctionValue = BisonCSSParser::parseAnimationTimingFunctionValue("step-start"); |
+ EXPECT_EQ(CSSValueStepStart, toCSSPrimitiveValue(timingFunctionValue.get())->getValueID()); |
+ |
+ timingFunctionValue = BisonCSSParser::parseAnimationTimingFunctionValue("step-start", true); |
+ EXPECT_EQ(CSSValueStepStart, toCSSPrimitiveValue(timingFunctionValue.get())->getValueID()); |
+ |
+ timingFunctionValue = BisonCSSParser::parseAnimationTimingFunctionValue("step-middle"); |
+ EXPECT_EQ(0, timingFunctionValue.get()); |
+ |
+ timingFunctionValue = BisonCSSParser::parseAnimationTimingFunctionValue("step-middle", true); |
+ EXPECT_EQ(CSSValueStepMiddle, toCSSPrimitiveValue(timingFunctionValue.get())->getValueID()); |
+ |
+ timingFunctionValue = BisonCSSParser::parseAnimationTimingFunctionValue("step-end"); |
+ EXPECT_EQ(CSSValueStepEnd, toCSSPrimitiveValue(timingFunctionValue.get())->getValueID()); |
+ |
+ timingFunctionValue = BisonCSSParser::parseAnimationTimingFunctionValue("step-end", true); |
+ EXPECT_EQ(CSSValueStepEnd, toCSSPrimitiveValue(timingFunctionValue.get())->getValueID()); |
+ |
+ timingFunctionValue = BisonCSSParser::parseAnimationTimingFunctionValue("steps(3, start)"); |
+ EXPECT_TRUE(CSSStepsTimingFunctionValue::create(3, StepsTimingFunction::StepAtStart)->equals(toCSSStepsTimingFunctionValue(*timingFunctionValue.get()))); |
+ |
+ timingFunctionValue = BisonCSSParser::parseAnimationTimingFunctionValue("steps(3, middle)"); |
+ EXPECT_EQ(0, timingFunctionValue.get()); |
+ |
+ timingFunctionValue = BisonCSSParser::parseAnimationTimingFunctionValue("steps(3, middle)", true); |
+ EXPECT_TRUE(CSSStepsTimingFunctionValue::create(3, StepsTimingFunction::StepAtMiddle)->equals(toCSSStepsTimingFunctionValue(*timingFunctionValue.get()))); |
+ |
+ timingFunctionValue = BisonCSSParser::parseAnimationTimingFunctionValue("steps(3, end)"); |
+ EXPECT_TRUE(CSSStepsTimingFunctionValue::create(3, StepsTimingFunction::StepAtEnd)->equals(toCSSStepsTimingFunctionValue(*timingFunctionValue.get()))); |
+ |
+ timingFunctionValue = BisonCSSParser::parseAnimationTimingFunctionValue("steps(3, nowhere)"); |
+ EXPECT_EQ(0, timingFunctionValue.get()); |
+ |
+ timingFunctionValue = BisonCSSParser::parseAnimationTimingFunctionValue("steps(-3, end)"); |
+ EXPECT_EQ(0, timingFunctionValue.get()); |
+ |
+ timingFunctionValue = BisonCSSParser::parseAnimationTimingFunctionValue("steps(3)"); |
+ EXPECT_TRUE(CSSStepsTimingFunctionValue::create(3, StepsTimingFunction::StepAtEnd)->equals(toCSSStepsTimingFunctionValue(*timingFunctionValue.get()))); |
+ |
+ timingFunctionValue = BisonCSSParser::parseAnimationTimingFunctionValue("cubic-bezier(0.1, 5, 0.23, 0)"); |
+ EXPECT_TRUE(CSSCubicBezierTimingFunctionValue::create(0.1, 5, 0.23, 0)->equals(toCSSCubicBezierTimingFunctionValue(*timingFunctionValue.get()))); |
+ |
+ timingFunctionValue = BisonCSSParser::parseAnimationTimingFunctionValue("cubic-bezier(0.1, 0, 4, 0.4)"); |
+ EXPECT_EQ(0, timingFunctionValue.get()); |
+} |
+ |
+} // namespace WebCore |