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

Side by Side Diff: Source/core/animation/AnimationTimingInputTest.cpp

Issue 149363002: Web Animations API: Implement step-middle and steps(x, middle) timing functions. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Fix comment typo Created 6 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "config.h" 5 #include "config.h"
6 #include "core/animation/Animation.h" 6 #include "core/animation/Animation.h"
7 7
8 #include "bindings/v8/Dictionary.h" 8 #include "bindings/v8/Dictionary.h"
9 #include "core/animation/AnimationTestHelper.h" 9 #include "core/animation/AnimationTestHelper.h"
10 #include "core/animation/TimedItemTiming.h" 10 #include "core/animation/TimedItemTiming.h"
11 #include "platform/animation/TimingFunctionTestHelper.h"
12 11
13 #include <gtest/gtest.h> 12 #include <gtest/gtest.h>
14 13
15 namespace WebCore { 14 namespace WebCore {
16 15
17 class AnimationAnimationTimingInputTest : public ::testing::Test { 16 class AnimationAnimationTimingInputTest : public ::testing::Test {
18 protected: 17 protected:
19 AnimationAnimationTimingInputTest() 18 AnimationAnimationTimingInputTest()
20 : isolate(v8::Isolate::GetCurrent()) 19 : isolate(v8::Isolate::GetCurrent())
21 , scope(isolate) 20 , scope(isolate)
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 150
152 TEST_F(AnimationAnimationTimingInputTest, TimingInputTimingFunction) 151 TEST_F(AnimationAnimationTimingInputTest, TimingInputTimingFunction)
153 { 152 {
154 const RefPtr<TimingFunction> defaultTimingFunction = LinearTimingFunction::c reate(); 153 const RefPtr<TimingFunction> defaultTimingFunction = LinearTimingFunction::c reate();
155 154
156 EXPECT_EQ(*CubicBezierTimingFunction::preset(CubicBezierTimingFunction::Ease ), *applyTimingInputString("easing", "ease").timingFunction); 155 EXPECT_EQ(*CubicBezierTimingFunction::preset(CubicBezierTimingFunction::Ease ), *applyTimingInputString("easing", "ease").timingFunction);
157 EXPECT_EQ(*CubicBezierTimingFunction::preset(CubicBezierTimingFunction::Ease In), *applyTimingInputString("easing", "ease-in").timingFunction); 156 EXPECT_EQ(*CubicBezierTimingFunction::preset(CubicBezierTimingFunction::Ease In), *applyTimingInputString("easing", "ease-in").timingFunction);
158 EXPECT_EQ(*CubicBezierTimingFunction::preset(CubicBezierTimingFunction::Ease Out), *applyTimingInputString("easing", "ease-out").timingFunction); 157 EXPECT_EQ(*CubicBezierTimingFunction::preset(CubicBezierTimingFunction::Ease Out), *applyTimingInputString("easing", "ease-out").timingFunction);
159 EXPECT_EQ(*CubicBezierTimingFunction::preset(CubicBezierTimingFunction::Ease InOut), *applyTimingInputString("easing", "ease-in-out").timingFunction); 158 EXPECT_EQ(*CubicBezierTimingFunction::preset(CubicBezierTimingFunction::Ease InOut), *applyTimingInputString("easing", "ease-in-out").timingFunction);
160 EXPECT_EQ(*LinearTimingFunction::create(), *applyTimingInputString("easing", "linear").timingFunction); 159 EXPECT_EQ(*LinearTimingFunction::create(), *applyTimingInputString("easing", "linear").timingFunction);
161 EXPECT_EQ(*defaultTimingFunction, *applyTimingInputString("easing", "initial ").timingFunction);
162 EXPECT_EQ(*StepsTimingFunction::preset(StepsTimingFunction::Start), *applyTi mingInputString("easing", "step-start").timingFunction); 160 EXPECT_EQ(*StepsTimingFunction::preset(StepsTimingFunction::Start), *applyTi mingInputString("easing", "step-start").timingFunction);
161 EXPECT_EQ(*StepsTimingFunction::preset(StepsTimingFunction::Middle), *applyT imingInputString("easing", "step-middle").timingFunction);
163 EXPECT_EQ(*StepsTimingFunction::preset(StepsTimingFunction::End), *applyTimi ngInputString("easing", "step-end").timingFunction); 162 EXPECT_EQ(*StepsTimingFunction::preset(StepsTimingFunction::End), *applyTimi ngInputString("easing", "step-end").timingFunction);
164 EXPECT_EQ(*CubicBezierTimingFunction::create(1, 1, 0.3, 0.3), *applyTimingIn putString("easing", "cubic-bezier(1, 1, 0.3, 0.3)").timingFunction); 163 EXPECT_EQ(*CubicBezierTimingFunction::create(1, 1, 0.3, 0.3), *applyTimingIn putString("easing", "cubic-bezier(1, 1, 0.3, 0.3)").timingFunction);
165 EXPECT_EQ(*StepsTimingFunction::create(3, true), *applyTimingInputString("ea sing", "steps(3, start)").timingFunction); 164 EXPECT_EQ(*StepsTimingFunction::create(3, StepsTimingFunction::StepAtStart), *applyTimingInputString("easing", "steps(3, start)").timingFunction);
166 EXPECT_EQ(*StepsTimingFunction::create(5, false), *applyTimingInputString("e asing", "steps(5, end)").timingFunction); 165 EXPECT_EQ(*StepsTimingFunction::create(5, StepsTimingFunction::StepAtMiddle) , *applyTimingInputString("easing", "steps(5, middle)").timingFunction);
166 EXPECT_EQ(*StepsTimingFunction::create(5, StepsTimingFunction::StepAtEnd), * applyTimingInputString("easing", "steps(5, end)").timingFunction);
167 EXPECT_EQ(*defaultTimingFunction, *applyTimingInputString("easing", "steps(5 .6, end)").timingFunction); 167 EXPECT_EQ(*defaultTimingFunction, *applyTimingInputString("easing", "steps(5 .6, end)").timingFunction);
168 // FIXME: Step-middle not yet implemented. Change this test when it is worki ng.
169 EXPECT_EQ(*defaultTimingFunction, *applyTimingInputString("easing", "steps(5 , middle)").timingFunction);
170 EXPECT_EQ(*defaultTimingFunction, *applyTimingInputString("easing", "cubic-b ezier(2, 2, 0.3, 0.3)").timingFunction); 168 EXPECT_EQ(*defaultTimingFunction, *applyTimingInputString("easing", "cubic-b ezier(2, 2, 0.3, 0.3)").timingFunction);
171 EXPECT_EQ(*defaultTimingFunction, *applyTimingInputString("easing", "rubbish ").timingFunction); 169 EXPECT_EQ(*defaultTimingFunction, *applyTimingInputString("easing", "rubbish ").timingFunction);
172 EXPECT_EQ(*defaultTimingFunction, *applyTimingInputNumber("easing", 2).timin gFunction); 170 EXPECT_EQ(*defaultTimingFunction, *applyTimingInputNumber("easing", 2).timin gFunction);
171 EXPECT_EQ(*defaultTimingFunction, *applyTimingInputString("easing", "initial ").timingFunction);
173 } 172 }
174 173
175 TEST_F(AnimationAnimationTimingInputTest, TimingInputEmpty) 174 TEST_F(AnimationAnimationTimingInputTest, TimingInputEmpty)
176 { 175 {
177 Timing updatedTiming; 176 Timing updatedTiming;
178 Timing controlTiming; 177 Timing controlTiming;
179 178
180 v8::Handle<v8::Object> timingInput = v8::Object::New(isolate); 179 v8::Handle<v8::Object> timingInput = v8::Object::New(isolate);
181 Dictionary timingInputDictionary = Dictionary(v8::Handle<v8::Value>::Cast(ti mingInput), isolate); 180 Dictionary timingInputDictionary = Dictionary(v8::Handle<v8::Value>::Cast(ti mingInput), isolate);
182 populateTiming(updatedTiming, timingInputDictionary); 181 populateTiming(updatedTiming, timingInputDictionary);
183 182
184 EXPECT_EQ(controlTiming.startDelay, updatedTiming.startDelay); 183 EXPECT_EQ(controlTiming.startDelay, updatedTiming.startDelay);
185 EXPECT_EQ(controlTiming.fillMode, updatedTiming.fillMode); 184 EXPECT_EQ(controlTiming.fillMode, updatedTiming.fillMode);
186 EXPECT_EQ(controlTiming.iterationStart, updatedTiming.iterationStart); 185 EXPECT_EQ(controlTiming.iterationStart, updatedTiming.iterationStart);
187 EXPECT_EQ(controlTiming.iterationCount, updatedTiming.iterationCount); 186 EXPECT_EQ(controlTiming.iterationCount, updatedTiming.iterationCount);
188 EXPECT_TRUE(std::isnan(updatedTiming.iterationDuration)); 187 EXPECT_TRUE(std::isnan(updatedTiming.iterationDuration));
189 EXPECT_EQ(controlTiming.playbackRate, updatedTiming.playbackRate); 188 EXPECT_EQ(controlTiming.playbackRate, updatedTiming.playbackRate);
190 EXPECT_EQ(controlTiming.direction, updatedTiming.direction); 189 EXPECT_EQ(controlTiming.direction, updatedTiming.direction);
191 EXPECT_EQ(*controlTiming.timingFunction, *updatedTiming.timingFunction); 190 EXPECT_EQ(*controlTiming.timingFunction, *updatedTiming.timingFunction);
192 } 191 }
193 192
194 } // namespace WebCore 193 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698