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

Unified Diff: third_party/WebKit/Source/platform/animation/TimingFunctionTest.cpp

Issue 2775143002: Implement frames() timing function (Closed)
Patch Set: Created 3 years, 9 months 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/platform/animation/TimingFunctionTest.cpp
diff --git a/third_party/WebKit/Source/platform/animation/TimingFunctionTest.cpp b/third_party/WebKit/Source/platform/animation/TimingFunctionTest.cpp
index 66d08552db17091826b8c4068f34f7389d09e99d..44f6c43a089c01581d645cbe9bfff864004d21bb 100644
--- a/third_party/WebKit/Source/platform/animation/TimingFunctionTest.cpp
+++ b/third_party/WebKit/Source/platform/animation/TimingFunctionTest.cpp
@@ -115,6 +115,11 @@ TEST_F(TimingFunctionTest, StepToString) {
EXPECT_EQ("steps(5)", stepTimingCustomEnd->toString());
}
+TEST_F(TimingFunctionTest, FrameToString) {
+ RefPtr<TimingFunction> frameTiming = FramesTimingFunction::create(3);
+ EXPECT_EQ("frames(3)", frameTiming->toString());
+}
+
TEST_F(TimingFunctionTest, BaseOperatorEq) {
RefPtr<TimingFunction> linearTiming = LinearTimingFunction::shared();
RefPtr<TimingFunction> cubicTiming1 = CubicBezierTimingFunction::preset(
@@ -125,6 +130,7 @@ TEST_F(TimingFunctionTest, BaseOperatorEq) {
StepsTimingFunction::preset(StepsTimingFunction::StepPosition::END);
RefPtr<TimingFunction> stepsTiming2 =
StepsTimingFunction::create(5, StepsTimingFunction::StepPosition::START);
+ RefPtr<TimingFunction> framesTiming = FramesTimingFunction::create(5);
Vector<std::pair<std::string, RefPtr<TimingFunction>>> v;
v.push_back(std::make_pair("linearTiming", linearTiming));
@@ -132,6 +138,7 @@ TEST_F(TimingFunctionTest, BaseOperatorEq) {
v.push_back(std::make_pair("cubicTiming2", cubicTiming2));
v.push_back(std::make_pair("stepsTiming1", stepsTiming1));
v.push_back(std::make_pair("stepsTiming2", stepsTiming2));
+ v.push_back(std::make_pair("framesTiming", framesTiming));
notEqualHelperLoop(v);
}
@@ -248,6 +255,19 @@ TEST_F(TimingFunctionTest, StepsOperatorEqPreset) {
EXPECT_EQ(*stepsB, *stepsA);
}
+TEST_F(TimingFunctionTest, FramesOperatorEq) {
+ RefPtr<TimingFunction> framesTiming1 = FramesTimingFunction::create(5);
+ RefPtr<TimingFunction> framesTiming2 = FramesTimingFunction::create(7);
+
+ EXPECT_EQ(*FramesTimingFunction::create(5), *framesTiming1);
+ EXPECT_EQ(*FramesTimingFunction::create(7), *framesTiming2);
+
+ Vector<std::pair<std::string, RefPtr<TimingFunction>>> v;
+ v.push_back(std::make_pair("framesTiming1", framesTiming1));
+ v.push_back(std::make_pair("framesTiming2", framesTiming2));
+ notEqualHelperLoop(v);
+}
+
TEST_F(TimingFunctionTest, LinearEvaluate) {
RefPtr<TimingFunction> linearTiming = LinearTimingFunction::shared();
EXPECT_EQ(0.2, linearTiming->evaluate(0.2, 0));
@@ -286,6 +306,21 @@ TEST_F(TimingFunctionTest, StepRange) {
EXPECT_NEAR(1, end, 0.01);
}
+TEST_F(TimingFunctionTest, FrameRange) {
+ double start = 0;
+ double end = 1;
+ RefPtr<TimingFunction> frames = FramesTimingFunction::create(4);
+ frames->range(&start, &end);
+ EXPECT_NEAR(0, start, 0.01);
+ EXPECT_NEAR(1, end, 0.01);
+
+ start = -1;
+ end = 10;
+ frames->range(&start, &end);
+ EXPECT_NEAR(0, start, 0.01);
+ EXPECT_NEAR(1, end, 0.01);
+}
+
TEST_F(TimingFunctionTest, CubicRange) {
double start = 0;
double end = 1;
@@ -467,6 +502,22 @@ TEST_F(TimingFunctionTest, StepsEvaluate) {
EXPECT_EQ(1.00, stepsTimingCustomEnd->evaluate(2.00, 0));
}
+TEST_F(TimingFunctionTest, FramesEvaluate) {
+ RefPtr<TimingFunction> framesTiming = FramesTimingFunction::create(5);
+ EXPECT_EQ(0.00, framesTiming->evaluate(-2.00, 0));
+ EXPECT_EQ(0.00, framesTiming->evaluate(0.00, 0));
+ EXPECT_EQ(0.00, framesTiming->evaluate(0.19, 0));
+ EXPECT_EQ(0.25, framesTiming->evaluate(0.20, 0));
+ EXPECT_EQ(0.25, framesTiming->evaluate(0.39, 0));
+ EXPECT_EQ(0.50, framesTiming->evaluate(0.40, 0));
+ EXPECT_EQ(0.50, framesTiming->evaluate(0.59, 0));
+ EXPECT_EQ(0.75, framesTiming->evaluate(0.60, 0));
+ EXPECT_EQ(0.75, framesTiming->evaluate(0.79, 0));
+ EXPECT_EQ(1.00, framesTiming->evaluate(0.80, 0));
+ EXPECT_EQ(1.00, framesTiming->evaluate(1.00, 0));
+ EXPECT_EQ(1.00, framesTiming->evaluate(3.00, 0));
+}
+
} // namespace
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698