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

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: Merged patch into fresh branch (to avoid scary rebase) 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 : m_isolate(v8::Isolate::GetCurrent()) 19 : m_isolate(v8::Isolate::GetCurrent())
21 , m_scope(V8BindingTestScope::create(m_isolate)) 20 , m_scope(V8BindingTestScope::create(m_isolate))
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 148
150 TEST_F(AnimationAnimationTimingInputTest, TimingInputTimingFunction) 149 TEST_F(AnimationAnimationTimingInputTest, TimingInputTimingFunction)
151 { 150 {
152 const RefPtr<TimingFunction> defaultTimingFunction = LinearTimingFunction::c reate(); 151 const RefPtr<TimingFunction> defaultTimingFunction = LinearTimingFunction::c reate();
153 152
154 EXPECT_EQ(*CubicBezierTimingFunction::preset(CubicBezierTimingFunction::Ease ), *applyTimingInputString("easing", "ease").timingFunction); 153 EXPECT_EQ(*CubicBezierTimingFunction::preset(CubicBezierTimingFunction::Ease ), *applyTimingInputString("easing", "ease").timingFunction);
155 EXPECT_EQ(*CubicBezierTimingFunction::preset(CubicBezierTimingFunction::Ease In), *applyTimingInputString("easing", "ease-in").timingFunction); 154 EXPECT_EQ(*CubicBezierTimingFunction::preset(CubicBezierTimingFunction::Ease In), *applyTimingInputString("easing", "ease-in").timingFunction);
156 EXPECT_EQ(*CubicBezierTimingFunction::preset(CubicBezierTimingFunction::Ease Out), *applyTimingInputString("easing", "ease-out").timingFunction); 155 EXPECT_EQ(*CubicBezierTimingFunction::preset(CubicBezierTimingFunction::Ease Out), *applyTimingInputString("easing", "ease-out").timingFunction);
157 EXPECT_EQ(*CubicBezierTimingFunction::preset(CubicBezierTimingFunction::Ease InOut), *applyTimingInputString("easing", "ease-in-out").timingFunction); 156 EXPECT_EQ(*CubicBezierTimingFunction::preset(CubicBezierTimingFunction::Ease InOut), *applyTimingInputString("easing", "ease-in-out").timingFunction);
158 EXPECT_EQ(*LinearTimingFunction::create(), *applyTimingInputString("easing", "linear").timingFunction); 157 EXPECT_EQ(*LinearTimingFunction::create(), *applyTimingInputString("easing", "linear").timingFunction);
159 EXPECT_EQ(*defaultTimingFunction, *applyTimingInputString("easing", "initial ").timingFunction);
160 EXPECT_EQ(*StepsTimingFunction::preset(StepsTimingFunction::Start), *applyTi mingInputString("easing", "step-start").timingFunction); 158 EXPECT_EQ(*StepsTimingFunction::preset(StepsTimingFunction::Start), *applyTi mingInputString("easing", "step-start").timingFunction);
159 EXPECT_EQ(*StepsTimingFunction::preset(StepsTimingFunction::Middle), *applyT imingInputString("easing", "step-middle").timingFunction);
161 EXPECT_EQ(*StepsTimingFunction::preset(StepsTimingFunction::End), *applyTimi ngInputString("easing", "step-end").timingFunction); 160 EXPECT_EQ(*StepsTimingFunction::preset(StepsTimingFunction::End), *applyTimi ngInputString("easing", "step-end").timingFunction);
162 EXPECT_EQ(*CubicBezierTimingFunction::create(1, 1, 0.3, 0.3), *applyTimingIn putString("easing", "cubic-bezier(1, 1, 0.3, 0.3)").timingFunction); 161 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(*StepsTimingFunction::create(3, true), *applyTimingInputString("ea sing", "steps(3, start)").timingFunction); 162 EXPECT_EQ(*StepsTimingFunction::create(3, StepsTimingFunction::StepAtStart), *applyTimingInputString("easing", "steps(3, start)").timingFunction);
164 EXPECT_EQ(*StepsTimingFunction::create(5, false), *applyTimingInputString("e asing", "steps(5, end)").timingFunction); 163 EXPECT_EQ(*StepsTimingFunction::create(5, StepsTimingFunction::StepAtMiddle) , *applyTimingInputString("easing", "steps(5, middle)").timingFunction);
164 EXPECT_EQ(*StepsTimingFunction::create(5, StepsTimingFunction::StepAtEnd), * applyTimingInputString("easing", "steps(5, end)").timingFunction);
165 EXPECT_EQ(*defaultTimingFunction, *applyTimingInputString("easing", "steps(5 .6, end)").timingFunction); 165 EXPECT_EQ(*defaultTimingFunction, *applyTimingInputString("easing", "steps(5 .6, end)").timingFunction);
166 // FIXME: Step-middle not yet implemented. Change this test when it is worki ng.
167 EXPECT_EQ(*defaultTimingFunction, *applyTimingInputString("easing", "steps(5 , middle)").timingFunction);
168 EXPECT_EQ(*defaultTimingFunction, *applyTimingInputString("easing", "cubic-b ezier(2, 2, 0.3, 0.3)").timingFunction); 166 EXPECT_EQ(*defaultTimingFunction, *applyTimingInputString("easing", "cubic-b ezier(2, 2, 0.3, 0.3)").timingFunction);
169 EXPECT_EQ(*defaultTimingFunction, *applyTimingInputString("easing", "rubbish ").timingFunction); 167 EXPECT_EQ(*defaultTimingFunction, *applyTimingInputString("easing", "rubbish ").timingFunction);
170 EXPECT_EQ(*defaultTimingFunction, *applyTimingInputNumber("easing", 2).timin gFunction); 168 EXPECT_EQ(*defaultTimingFunction, *applyTimingInputNumber("easing", 2).timin gFunction);
169 EXPECT_EQ(*defaultTimingFunction, *applyTimingInputString("easing", "initial ").timingFunction);
171 } 170 }
172 171
173 TEST_F(AnimationAnimationTimingInputTest, TimingInputEmpty) 172 TEST_F(AnimationAnimationTimingInputTest, TimingInputEmpty)
174 { 173 {
175 Timing updatedTiming; 174 Timing updatedTiming;
176 Timing controlTiming; 175 Timing controlTiming;
177 176
178 v8::Handle<v8::Object> timingInput = v8::Object::New(m_isolate); 177 v8::Handle<v8::Object> timingInput = v8::Object::New(m_isolate);
179 Dictionary timingInputDictionary = Dictionary(v8::Handle<v8::Value>::Cast(ti mingInput), m_isolate); 178 Dictionary timingInputDictionary = Dictionary(v8::Handle<v8::Value>::Cast(ti mingInput), m_isolate);
180 populateTiming(updatedTiming, timingInputDictionary); 179 populateTiming(updatedTiming, timingInputDictionary);
181 180
182 EXPECT_EQ(controlTiming.startDelay, updatedTiming.startDelay); 181 EXPECT_EQ(controlTiming.startDelay, updatedTiming.startDelay);
183 EXPECT_EQ(controlTiming.fillMode, updatedTiming.fillMode); 182 EXPECT_EQ(controlTiming.fillMode, updatedTiming.fillMode);
184 EXPECT_EQ(controlTiming.iterationStart, updatedTiming.iterationStart); 183 EXPECT_EQ(controlTiming.iterationStart, updatedTiming.iterationStart);
185 EXPECT_EQ(controlTiming.iterationCount, updatedTiming.iterationCount); 184 EXPECT_EQ(controlTiming.iterationCount, updatedTiming.iterationCount);
186 EXPECT_TRUE(std::isnan(updatedTiming.iterationDuration)); 185 EXPECT_TRUE(std::isnan(updatedTiming.iterationDuration));
187 EXPECT_EQ(controlTiming.playbackRate, updatedTiming.playbackRate); 186 EXPECT_EQ(controlTiming.playbackRate, updatedTiming.playbackRate);
188 EXPECT_EQ(controlTiming.direction, updatedTiming.direction); 187 EXPECT_EQ(controlTiming.direction, updatedTiming.direction);
189 EXPECT_EQ(*controlTiming.timingFunction, *updatedTiming.timingFunction); 188 EXPECT_EQ(*controlTiming.timingFunction, *updatedTiming.timingFunction);
190 } 189 }
191 190
192 } // namespace WebCore 191 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/animation/AnimationTest.cpp ('k') | Source/core/animation/CompositorAnimationsTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698