OLD | NEW |
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/Timing.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 Timing::convertInput(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 Timing::convertInput(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 = Timing::convertInput(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 |
OLD | NEW |