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

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

Issue 182063005: Web Animations API: Refactor IDL input conversion out of Animation (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Remove templates 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 | Annotate | Revision Log
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/TimingInput.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" 11 #include "platform/animation/TimingFunctionTestHelper.h"
12 12
13 #include <gtest/gtest.h> 13 #include <gtest/gtest.h>
14 14
15 namespace WebCore { 15 namespace WebCore {
16 16
17 class AnimationAnimationTimingInputTest : public ::testing::Test { 17 class AnimationTimingInputTest : public ::testing::Test {
18 protected: 18 protected:
19 AnimationAnimationTimingInputTest() 19 AnimationTimingInputTest()
20 : isolate(v8::Isolate::GetCurrent()) 20 : isolate(v8::Isolate::GetCurrent())
21 , scope(isolate) 21 , scope(isolate)
22 , context(v8::Context::New(isolate)) 22 , context(v8::Context::New(isolate))
23 , contextScope(context) 23 , contextScope(context)
24 { 24 {
25 } 25 }
26 26
27 v8::Isolate* isolate; 27 v8::Isolate* isolate;
28 v8::HandleScope scope; 28 v8::HandleScope scope;
29 v8::Local<v8::Context> context; 29 v8::Local<v8::Context> context;
30 v8::Context::Scope contextScope; 30 v8::Context::Scope contextScope;
31 31
32 void populateTiming(Timing& timing, Dictionary timingInputDictionary)
33 {
34 Animation::populateTiming(timing, timingInputDictionary);
35 }
36
37 Timing applyTimingInputNumber(String timingProperty, double timingPropertyVa lue) 32 Timing applyTimingInputNumber(String timingProperty, double timingPropertyVa lue)
38 { 33 {
39 v8::Handle<v8::Object> timingInput = v8::Object::New(isolate); 34 v8::Handle<v8::Object> timingInput = v8::Object::New(isolate);
40 setV8ObjectPropertyAsNumber(timingInput, timingProperty, timingPropertyV alue); 35 setV8ObjectPropertyAsNumber(timingInput, timingProperty, timingPropertyV alue);
41 Dictionary timingInputDictionary = Dictionary(v8::Handle<v8::Value>::Cas t(timingInput), isolate); 36 Dictionary timingInputDictionary = Dictionary(v8::Handle<v8::Value>::Cas t(timingInput), isolate);
42 Timing timing; 37 return TimingInput::convert(timingInputDictionary);
43 populateTiming(timing, timingInputDictionary);
44 return timing;
45 } 38 }
46 39
47 Timing applyTimingInputString(String timingProperty, String timingPropertyVa lue) 40 Timing applyTimingInputString(String timingProperty, String timingPropertyVa lue)
48 { 41 {
49 v8::Handle<v8::Object> timingInput = v8::Object::New(isolate); 42 v8::Handle<v8::Object> timingInput = v8::Object::New(isolate);
50 setV8ObjectPropertyAsString(timingInput, timingProperty, timingPropertyV alue); 43 setV8ObjectPropertyAsString(timingInput, timingProperty, timingPropertyV alue);
51 Dictionary timingInputDictionary = Dictionary(v8::Handle<v8::Value>::Cas t(timingInput), isolate); 44 Dictionary timingInputDictionary = Dictionary(v8::Handle<v8::Value>::Cas t(timingInput), isolate);
52 Timing timing; 45 return TimingInput::convert(timingInputDictionary);
53 populateTiming(timing, timingInputDictionary);
54 return timing;
55 } 46 }
56 }; 47 };
57 48
58 TEST_F(AnimationAnimationTimingInputTest, TimingInputStartDelay) 49 TEST_F(AnimationTimingInputTest, TimingInputStartDelay)
59 { 50 {
60 EXPECT_EQ(1.1, applyTimingInputNumber("delay", 1.1).startDelay); 51 EXPECT_EQ(1.1, applyTimingInputNumber("delay", 1.1).startDelay);
61 EXPECT_EQ(-1, applyTimingInputNumber("delay", -1).startDelay); 52 EXPECT_EQ(-1, applyTimingInputNumber("delay", -1).startDelay);
62 EXPECT_EQ(1, applyTimingInputString("delay", "1").startDelay); 53 EXPECT_EQ(1, applyTimingInputString("delay", "1").startDelay);
63 EXPECT_EQ(0, applyTimingInputString("delay", "1s").startDelay); 54 EXPECT_EQ(0, applyTimingInputString("delay", "1s").startDelay);
64 EXPECT_EQ(0, applyTimingInputString("delay", "Infinity").startDelay); 55 EXPECT_EQ(0, applyTimingInputString("delay", "Infinity").startDelay);
65 EXPECT_EQ(0, applyTimingInputString("delay", "-Infinity").startDelay); 56 EXPECT_EQ(0, applyTimingInputString("delay", "-Infinity").startDelay);
66 EXPECT_EQ(0, applyTimingInputString("delay", "NaN").startDelay); 57 EXPECT_EQ(0, applyTimingInputString("delay", "NaN").startDelay);
67 EXPECT_EQ(0, applyTimingInputString("delay", "rubbish").startDelay); 58 EXPECT_EQ(0, applyTimingInputString("delay", "rubbish").startDelay);
68 } 59 }
69 60
70 TEST_F(AnimationAnimationTimingInputTest, TimingInputEndDelay) 61 TEST_F(AnimationTimingInputTest, TimingInputEndDelay)
71 { 62 {
72 EXPECT_EQ(10, applyTimingInputNumber("endDelay", 10).endDelay); 63 EXPECT_EQ(10, applyTimingInputNumber("endDelay", 10).endDelay);
73 EXPECT_EQ(-2.5, applyTimingInputNumber("endDelay", -2.5).endDelay); 64 EXPECT_EQ(-2.5, applyTimingInputNumber("endDelay", -2.5).endDelay);
74 } 65 }
75 66
76 TEST_F(AnimationAnimationTimingInputTest, TimingInputFillMode) 67 TEST_F(AnimationTimingInputTest, TimingInputFillMode)
77 { 68 {
78 Timing::FillMode defaultFillMode = Timing::FillModeAuto; 69 Timing::FillMode defaultFillMode = Timing::FillModeAuto;
79 70
80 EXPECT_EQ(Timing::FillModeAuto, applyTimingInputString("fill", "auto").fillM ode); 71 EXPECT_EQ(Timing::FillModeAuto, applyTimingInputString("fill", "auto").fillM ode);
81 EXPECT_EQ(Timing::FillModeForwards, applyTimingInputString("fill", "forwards ").fillMode); 72 EXPECT_EQ(Timing::FillModeForwards, applyTimingInputString("fill", "forwards ").fillMode);
82 EXPECT_EQ(Timing::FillModeNone, applyTimingInputString("fill", "none").fillM ode); 73 EXPECT_EQ(Timing::FillModeNone, applyTimingInputString("fill", "none").fillM ode);
83 EXPECT_EQ(Timing::FillModeBackwards, applyTimingInputString("fill", "backwar ds").fillMode); 74 EXPECT_EQ(Timing::FillModeBackwards, applyTimingInputString("fill", "backwar ds").fillMode);
84 EXPECT_EQ(Timing::FillModeBoth, applyTimingInputString("fill", "both").fillM ode); 75 EXPECT_EQ(Timing::FillModeBoth, applyTimingInputString("fill", "both").fillM ode);
85 EXPECT_EQ(defaultFillMode, applyTimingInputString("fill", "everything!").fil lMode); 76 EXPECT_EQ(defaultFillMode, applyTimingInputString("fill", "everything!").fil lMode);
86 EXPECT_EQ(defaultFillMode, applyTimingInputString("fill", "backwardsandforwa rds").fillMode); 77 EXPECT_EQ(defaultFillMode, applyTimingInputString("fill", "backwardsandforwa rds").fillMode);
87 EXPECT_EQ(defaultFillMode, applyTimingInputNumber("fill", 2).fillMode); 78 EXPECT_EQ(defaultFillMode, applyTimingInputNumber("fill", 2).fillMode);
88 } 79 }
89 80
90 TEST_F(AnimationAnimationTimingInputTest, TimingInputIterationStart) 81 TEST_F(AnimationTimingInputTest, TimingInputIterationStart)
91 { 82 {
92 EXPECT_EQ(1.1, applyTimingInputNumber("iterationStart", 1.1).iterationStart) ; 83 EXPECT_EQ(1.1, applyTimingInputNumber("iterationStart", 1.1).iterationStart) ;
93 EXPECT_EQ(0, applyTimingInputNumber("iterationStart", -1).iterationStart); 84 EXPECT_EQ(0, applyTimingInputNumber("iterationStart", -1).iterationStart);
94 EXPECT_EQ(0, applyTimingInputString("iterationStart", "Infinity").iterationS tart); 85 EXPECT_EQ(0, applyTimingInputString("iterationStart", "Infinity").iterationS tart);
95 EXPECT_EQ(0, applyTimingInputString("iterationStart", "-Infinity").iteration Start); 86 EXPECT_EQ(0, applyTimingInputString("iterationStart", "-Infinity").iteration Start);
96 EXPECT_EQ(0, applyTimingInputString("iterationStart", "NaN").iterationStart) ; 87 EXPECT_EQ(0, applyTimingInputString("iterationStart", "NaN").iterationStart) ;
97 EXPECT_EQ(0, applyTimingInputString("iterationStart", "rubbish").iterationSt art); 88 EXPECT_EQ(0, applyTimingInputString("iterationStart", "rubbish").iterationSt art);
98 } 89 }
99 90
100 TEST_F(AnimationAnimationTimingInputTest, TimingInputIterationCount) 91 TEST_F(AnimationTimingInputTest, TimingInputIterationCount)
101 { 92 {
102 EXPECT_EQ(2.1, applyTimingInputNumber("iterations", 2.1).iterationCount); 93 EXPECT_EQ(2.1, applyTimingInputNumber("iterations", 2.1).iterationCount);
103 EXPECT_EQ(0, applyTimingInputNumber("iterations", -1).iterationCount); 94 EXPECT_EQ(0, applyTimingInputNumber("iterations", -1).iterationCount);
104 95
105 Timing timing = applyTimingInputString("iterations", "Infinity"); 96 Timing timing = applyTimingInputString("iterations", "Infinity");
106 EXPECT_TRUE(std::isinf(timing.iterationCount)); 97 EXPECT_TRUE(std::isinf(timing.iterationCount));
107 EXPECT_GT(timing.iterationCount, 0); 98 EXPECT_GT(timing.iterationCount, 0);
108 99
109 EXPECT_EQ(0, applyTimingInputString("iterations", "-Infinity").iterationCoun t); 100 EXPECT_EQ(0, applyTimingInputString("iterations", "-Infinity").iterationCoun t);
110 EXPECT_EQ(1, applyTimingInputString("iterations", "NaN").iterationCount); 101 EXPECT_EQ(1, applyTimingInputString("iterations", "NaN").iterationCount);
111 EXPECT_EQ(1, applyTimingInputString("iterations", "rubbish").iterationCount) ; 102 EXPECT_EQ(1, applyTimingInputString("iterations", "rubbish").iterationCount) ;
112 } 103 }
113 104
114 TEST_F(AnimationAnimationTimingInputTest, TimingInputIterationDuration) 105 TEST_F(AnimationTimingInputTest, TimingInputIterationDuration)
115 { 106 {
116 EXPECT_EQ(1.1, applyTimingInputNumber("duration", 1.1).iterationDuration); 107 EXPECT_EQ(1.1, applyTimingInputNumber("duration", 1.1).iterationDuration);
117 EXPECT_TRUE(std::isnan(applyTimingInputNumber("duration", -1).iterationDurat ion)); 108 EXPECT_TRUE(std::isnan(applyTimingInputNumber("duration", -1).iterationDurat ion));
118 EXPECT_EQ(1, applyTimingInputString("duration", "1").iterationDuration); 109 EXPECT_EQ(1, applyTimingInputString("duration", "1").iterationDuration);
119 110
120 Timing timing = applyTimingInputString("duration", "Infinity"); 111 Timing timing = applyTimingInputString("duration", "Infinity");
121 EXPECT_TRUE(std::isinf(timing.iterationDuration)); 112 EXPECT_TRUE(std::isinf(timing.iterationDuration));
122 EXPECT_GT(timing.iterationDuration, 0); 113 EXPECT_GT(timing.iterationDuration, 0);
123 114
124 EXPECT_TRUE(std::isnan(applyTimingInputString("duration", "-Infinity").itera tionDuration)); 115 EXPECT_TRUE(std::isnan(applyTimingInputString("duration", "-Infinity").itera tionDuration));
125 EXPECT_TRUE(std::isnan(applyTimingInputString("duration", "NaN").iterationDu ration)); 116 EXPECT_TRUE(std::isnan(applyTimingInputString("duration", "NaN").iterationDu ration));
126 EXPECT_TRUE(std::isnan(applyTimingInputString("duration", "auto").iterationD uration)); 117 EXPECT_TRUE(std::isnan(applyTimingInputString("duration", "auto").iterationD uration));
127 EXPECT_TRUE(std::isnan(applyTimingInputString("duration", "rubbish").iterati onDuration)); 118 EXPECT_TRUE(std::isnan(applyTimingInputString("duration", "rubbish").iterati onDuration));
128 } 119 }
129 120
130 TEST_F(AnimationAnimationTimingInputTest, TimingInputPlaybackRate) 121 TEST_F(AnimationTimingInputTest, TimingInputPlaybackRate)
131 { 122 {
132 EXPECT_EQ(2.1, applyTimingInputNumber("playbackRate", 2.1).playbackRate); 123 EXPECT_EQ(2.1, applyTimingInputNumber("playbackRate", 2.1).playbackRate);
133 EXPECT_EQ(-1, applyTimingInputNumber("playbackRate", -1).playbackRate); 124 EXPECT_EQ(-1, applyTimingInputNumber("playbackRate", -1).playbackRate);
134 EXPECT_EQ(1, applyTimingInputString("playbackRate", "Infinity").playbackRate ); 125 EXPECT_EQ(1, applyTimingInputString("playbackRate", "Infinity").playbackRate );
135 EXPECT_EQ(1, applyTimingInputString("playbackRate", "-Infinity").playbackRat e); 126 EXPECT_EQ(1, applyTimingInputString("playbackRate", "-Infinity").playbackRat e);
136 EXPECT_EQ(1, applyTimingInputString("playbackRate", "NaN").playbackRate); 127 EXPECT_EQ(1, applyTimingInputString("playbackRate", "NaN").playbackRate);
137 EXPECT_EQ(1, applyTimingInputString("playbackRate", "rubbish").playbackRate) ; 128 EXPECT_EQ(1, applyTimingInputString("playbackRate", "rubbish").playbackRate) ;
138 } 129 }
139 130
140 TEST_F(AnimationAnimationTimingInputTest, TimingInputDirection) 131 TEST_F(AnimationTimingInputTest, TimingInputDirection)
141 { 132 {
142 Timing::PlaybackDirection defaultPlaybackDirection = Timing::PlaybackDirecti onNormal; 133 Timing::PlaybackDirection defaultPlaybackDirection = Timing::PlaybackDirecti onNormal;
143 134
144 EXPECT_EQ(Timing::PlaybackDirectionNormal, applyTimingInputString("direction ", "normal").direction); 135 EXPECT_EQ(Timing::PlaybackDirectionNormal, applyTimingInputString("direction ", "normal").direction);
145 EXPECT_EQ(Timing::PlaybackDirectionReverse, applyTimingInputString("directio n", "reverse").direction); 136 EXPECT_EQ(Timing::PlaybackDirectionReverse, applyTimingInputString("directio n", "reverse").direction);
146 EXPECT_EQ(Timing::PlaybackDirectionAlternate, applyTimingInputString("direct ion", "alternate").direction); 137 EXPECT_EQ(Timing::PlaybackDirectionAlternate, applyTimingInputString("direct ion", "alternate").direction);
147 EXPECT_EQ(Timing::PlaybackDirectionAlternateReverse, applyTimingInputString( "direction", "alternate-reverse").direction); 138 EXPECT_EQ(Timing::PlaybackDirectionAlternateReverse, applyTimingInputString( "direction", "alternate-reverse").direction);
148 EXPECT_EQ(defaultPlaybackDirection, applyTimingInputString("direction", "rub bish").direction); 139 EXPECT_EQ(defaultPlaybackDirection, applyTimingInputString("direction", "rub bish").direction);
149 EXPECT_EQ(defaultPlaybackDirection, applyTimingInputNumber("direction", 2).d irection); 140 EXPECT_EQ(defaultPlaybackDirection, applyTimingInputNumber("direction", 2).d irection);
150 } 141 }
151 142
152 TEST_F(AnimationAnimationTimingInputTest, TimingInputTimingFunction) 143 TEST_F(AnimationTimingInputTest, TimingInputTimingFunction)
153 { 144 {
154 const RefPtr<TimingFunction> defaultTimingFunction = LinearTimingFunction::c reate(); 145 const RefPtr<TimingFunction> defaultTimingFunction = LinearTimingFunction::c reate();
155 146
156 EXPECT_EQ(*CubicBezierTimingFunction::preset(CubicBezierTimingFunction::Ease ), *applyTimingInputString("easing", "ease").timingFunction); 147 EXPECT_EQ(*CubicBezierTimingFunction::preset(CubicBezierTimingFunction::Ease ), *applyTimingInputString("easing", "ease").timingFunction);
157 EXPECT_EQ(*CubicBezierTimingFunction::preset(CubicBezierTimingFunction::Ease In), *applyTimingInputString("easing", "ease-in").timingFunction); 148 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); 149 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); 150 EXPECT_EQ(*CubicBezierTimingFunction::preset(CubicBezierTimingFunction::Ease InOut), *applyTimingInputString("easing", "ease-in-out").timingFunction);
160 EXPECT_EQ(*LinearTimingFunction::create(), *applyTimingInputString("easing", "linear").timingFunction); 151 EXPECT_EQ(*LinearTimingFunction::create(), *applyTimingInputString("easing", "linear").timingFunction);
161 EXPECT_EQ(*defaultTimingFunction, *applyTimingInputString("easing", "initial ").timingFunction); 152 EXPECT_EQ(*defaultTimingFunction, *applyTimingInputString("easing", "initial ").timingFunction);
162 EXPECT_EQ(*StepsTimingFunction::preset(StepsTimingFunction::Start), *applyTi mingInputString("easing", "step-start").timingFunction); 153 EXPECT_EQ(*StepsTimingFunction::preset(StepsTimingFunction::Start), *applyTi mingInputString("easing", "step-start").timingFunction);
163 EXPECT_EQ(*StepsTimingFunction::preset(StepsTimingFunction::End), *applyTimi ngInputString("easing", "step-end").timingFunction); 154 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); 155 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); 156 EXPECT_EQ(*StepsTimingFunction::create(3, true), *applyTimingInputString("ea sing", "steps(3, start)").timingFunction);
166 EXPECT_EQ(*StepsTimingFunction::create(5, false), *applyTimingInputString("e asing", "steps(5, end)").timingFunction); 157 EXPECT_EQ(*StepsTimingFunction::create(5, false), *applyTimingInputString("e asing", "steps(5, end)").timingFunction);
167 EXPECT_EQ(*defaultTimingFunction, *applyTimingInputString("easing", "steps(5 .6, end)").timingFunction); 158 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. 159 // FIXME: Step-middle not yet implemented. Change this test when it is worki ng.
169 EXPECT_EQ(*defaultTimingFunction, *applyTimingInputString("easing", "steps(5 , middle)").timingFunction); 160 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); 161 EXPECT_EQ(*defaultTimingFunction, *applyTimingInputString("easing", "cubic-b ezier(2, 2, 0.3, 0.3)").timingFunction);
171 EXPECT_EQ(*defaultTimingFunction, *applyTimingInputString("easing", "rubbish ").timingFunction); 162 EXPECT_EQ(*defaultTimingFunction, *applyTimingInputString("easing", "rubbish ").timingFunction);
172 EXPECT_EQ(*defaultTimingFunction, *applyTimingInputNumber("easing", 2).timin gFunction); 163 EXPECT_EQ(*defaultTimingFunction, *applyTimingInputNumber("easing", 2).timin gFunction);
173 } 164 }
174 165
175 TEST_F(AnimationAnimationTimingInputTest, TimingInputEmpty) 166 TEST_F(AnimationTimingInputTest, TimingInputEmpty)
176 { 167 {
177 Timing updatedTiming;
178 Timing controlTiming; 168 Timing controlTiming;
179 169
180 v8::Handle<v8::Object> timingInput = v8::Object::New(isolate); 170 v8::Handle<v8::Object> timingInput = v8::Object::New(isolate);
181 Dictionary timingInputDictionary = Dictionary(v8::Handle<v8::Value>::Cast(ti mingInput), isolate); 171 Dictionary timingInputDictionary = Dictionary(v8::Handle<v8::Value>::Cast(ti mingInput), isolate);
182 populateTiming(updatedTiming, timingInputDictionary); 172 Timing updatedTiming = TimingInput::convert(timingInputDictionary);
183 173
184 EXPECT_EQ(controlTiming.startDelay, updatedTiming.startDelay); 174 EXPECT_EQ(controlTiming.startDelay, updatedTiming.startDelay);
185 EXPECT_EQ(controlTiming.fillMode, updatedTiming.fillMode); 175 EXPECT_EQ(controlTiming.fillMode, updatedTiming.fillMode);
186 EXPECT_EQ(controlTiming.iterationStart, updatedTiming.iterationStart); 176 EXPECT_EQ(controlTiming.iterationStart, updatedTiming.iterationStart);
187 EXPECT_EQ(controlTiming.iterationCount, updatedTiming.iterationCount); 177 EXPECT_EQ(controlTiming.iterationCount, updatedTiming.iterationCount);
188 EXPECT_TRUE(std::isnan(updatedTiming.iterationDuration)); 178 EXPECT_TRUE(std::isnan(updatedTiming.iterationDuration));
189 EXPECT_EQ(controlTiming.playbackRate, updatedTiming.playbackRate); 179 EXPECT_EQ(controlTiming.playbackRate, updatedTiming.playbackRate);
190 EXPECT_EQ(controlTiming.direction, updatedTiming.direction); 180 EXPECT_EQ(controlTiming.direction, updatedTiming.direction);
191 EXPECT_EQ(*controlTiming.timingFunction, *updatedTiming.timingFunction); 181 EXPECT_EQ(*controlTiming.timingFunction, *updatedTiming.timingFunction);
192 } 182 }
193 183
194 } // namespace WebCore 184 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698