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 "core/animation/KeyframeEffect.h" | 5 #include "core/animation/KeyframeEffect.h" |
6 | 6 |
7 #include "bindings/core/v8/Dictionary.h" | 7 #include "bindings/core/v8/Dictionary.h" |
8 #include "bindings/core/v8/DictionarySequenceOrDictionary.h" | 8 #include "bindings/core/v8/DictionarySequenceOrDictionary.h" |
9 #include "bindings/core/v8/V8BindingForTesting.h" | 9 #include "bindings/core/v8/V8BindingForTesting.h" |
10 #include "bindings/core/v8/V8KeyframeEffectOptions.h" | 10 #include "bindings/core/v8/V8KeyframeEffectOptions.h" |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
122 V8TestingScope scope; | 122 V8TestingScope scope; |
123 Vector<Dictionary, 0> jsKeyframes; | 123 Vector<Dictionary, 0> jsKeyframes; |
124 | 124 |
125 v8::Local<v8::Object> timingInput = v8::Object::New(scope.isolate()); | 125 v8::Local<v8::Object> timingInput = v8::Object::New(scope.isolate()); |
126 setV8ObjectPropertyAsNumber(scope.isolate(), timingInput, "delay", 2); | 126 setV8ObjectPropertyAsNumber(scope.isolate(), timingInput, "delay", 2); |
127 setV8ObjectPropertyAsNumber(scope.isolate(), timingInput, "endDelay", 0.5); | 127 setV8ObjectPropertyAsNumber(scope.isolate(), timingInput, "endDelay", 0.5); |
128 setV8ObjectPropertyAsString(scope.isolate(), timingInput, "fill", "backwards
"); | 128 setV8ObjectPropertyAsString(scope.isolate(), timingInput, "fill", "backwards
"); |
129 setV8ObjectPropertyAsNumber(scope.isolate(), timingInput, "iterationStart",
2); | 129 setV8ObjectPropertyAsNumber(scope.isolate(), timingInput, "iterationStart",
2); |
130 setV8ObjectPropertyAsNumber(scope.isolate(), timingInput, "iterations", 10); | 130 setV8ObjectPropertyAsNumber(scope.isolate(), timingInput, "iterations", 10); |
131 setV8ObjectPropertyAsString(scope.isolate(), timingInput, "direction", "reve
rse"); | 131 setV8ObjectPropertyAsString(scope.isolate(), timingInput, "direction", "reve
rse"); |
132 setV8ObjectPropertyAsString(scope.isolate(), timingInput, "easing", "step-st
art"); | 132 setV8ObjectPropertyAsString(scope.isolate(), timingInput, "easing", "ease-in
-out"); |
133 KeyframeEffectOptions timingInputDictionary; | 133 KeyframeEffectOptions timingInputDictionary; |
134 TrackExceptionState exceptionState; | 134 TrackExceptionState exceptionState; |
135 V8KeyframeEffectOptions::toImpl(scope.isolate(), timingInput, timingInputDic
tionary, exceptionState); | 135 V8KeyframeEffectOptions::toImpl(scope.isolate(), timingInput, timingInputDic
tionary, exceptionState); |
136 EXPECT_FALSE(exceptionState.hadException()); | 136 EXPECT_FALSE(exceptionState.hadException()); |
137 | 137 |
138 KeyframeEffect* animation = createAnimation(element.get(), jsKeyframes, timi
ngInputDictionary); | 138 KeyframeEffect* animation = createAnimation(element.get(), jsKeyframes, timi
ngInputDictionary); |
139 | 139 |
140 AnimationEffectTiming* specified = animation->timing(); | 140 AnimationEffectTiming* specified = animation->timing(); |
141 EXPECT_EQ(2, specified->delay()); | 141 EXPECT_EQ(2, specified->delay()); |
142 EXPECT_EQ(0.5, specified->endDelay()); | 142 EXPECT_EQ(0.5, specified->endDelay()); |
143 EXPECT_EQ("backwards", specified->fill()); | 143 EXPECT_EQ("backwards", specified->fill()); |
144 EXPECT_EQ(2, specified->iterationStart()); | 144 EXPECT_EQ(2, specified->iterationStart()); |
145 EXPECT_EQ(10, specified->iterations()); | 145 EXPECT_EQ(10, specified->iterations()); |
146 EXPECT_EQ("reverse", specified->direction()); | 146 EXPECT_EQ("reverse", specified->direction()); |
147 EXPECT_EQ("step-start", specified->easing()); | 147 EXPECT_EQ("ease-in-out", specified->easing()); |
148 } | 148 } |
149 | 149 |
150 TEST_F(AnimationKeyframeEffectV8Test, SpecifiedDurationGetter) | 150 TEST_F(AnimationKeyframeEffectV8Test, SpecifiedDurationGetter) |
151 { | 151 { |
152 V8TestingScope scope; | 152 V8TestingScope scope; |
153 Vector<Dictionary, 0> jsKeyframes; | 153 Vector<Dictionary, 0> jsKeyframes; |
154 | 154 |
155 v8::Local<v8::Object> timingInputWithDuration = v8::Object::New(scope.isolat
e()); | 155 v8::Local<v8::Object> timingInputWithDuration = v8::Object::New(scope.isolat
e()); |
156 setV8ObjectPropertyAsNumber(scope.isolate(), timingInputWithDuration, "durat
ion", 2.5); | 156 setV8ObjectPropertyAsNumber(scope.isolate(), timingInputWithDuration, "durat
ion", 2.5); |
157 KeyframeEffectOptions timingInputDictionaryWithDuration; | 157 KeyframeEffectOptions timingInputDictionaryWithDuration; |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
221 | 221 |
222 EXPECT_EQ(1, specified->playbackRate()); | 222 EXPECT_EQ(1, specified->playbackRate()); |
223 specified->setPlaybackRate(2); | 223 specified->setPlaybackRate(2); |
224 EXPECT_EQ(2, specified->playbackRate()); | 224 EXPECT_EQ(2, specified->playbackRate()); |
225 | 225 |
226 EXPECT_EQ("normal", specified->direction()); | 226 EXPECT_EQ("normal", specified->direction()); |
227 specified->setDirection("reverse"); | 227 specified->setDirection("reverse"); |
228 EXPECT_EQ("reverse", specified->direction()); | 228 EXPECT_EQ("reverse", specified->direction()); |
229 | 229 |
230 EXPECT_EQ("linear", specified->easing()); | 230 EXPECT_EQ("linear", specified->easing()); |
231 specified->setEasing("step-start", exceptionState); | 231 specified->setEasing("ease-in-out", exceptionState); |
232 ASSERT_FALSE(exceptionState.hadException()); | 232 ASSERT_FALSE(exceptionState.hadException()); |
233 EXPECT_EQ("step-start", specified->easing()); | 233 EXPECT_EQ("ease-in-out", specified->easing()); |
234 } | 234 } |
235 | 235 |
236 TEST_F(AnimationKeyframeEffectV8Test, SetSpecifiedDuration) | 236 TEST_F(AnimationKeyframeEffectV8Test, SetSpecifiedDuration) |
237 { | 237 { |
238 V8TestingScope scope; | 238 V8TestingScope scope; |
239 Vector<Dictionary, 0> jsKeyframes; | 239 Vector<Dictionary, 0> jsKeyframes; |
240 v8::Local<v8::Object> timingInput = v8::Object::New(scope.isolate()); | 240 v8::Local<v8::Object> timingInput = v8::Object::New(scope.isolate()); |
241 KeyframeEffectOptions timingInputDictionary; | 241 KeyframeEffectOptions timingInputDictionary; |
242 TrackExceptionState exceptionState; | 242 TrackExceptionState exceptionState; |
243 V8KeyframeEffectOptions::toImpl(scope.isolate(), timingInput, timingInputDic
tionary, exceptionState); | 243 V8KeyframeEffectOptions::toImpl(scope.isolate(), timingInput, timingInputDic
tionary, exceptionState); |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
367 Timing timing; | 367 Timing timing; |
368 timing.iterationDuration = 5; | 368 timing.iterationDuration = 5; |
369 KeyframeEffect* animation = KeyframeEffect::create(element.get(), nullptr, t
iming); | 369 KeyframeEffect* animation = KeyframeEffect::create(element.get(), nullptr, t
iming); |
370 EXPECT_EQ(element.get(), animation->target()); | 370 EXPECT_EQ(element.get(), animation->target()); |
371 document().timeline().play(animation); | 371 document().timeline().play(animation); |
372 pageHolder.reset(); | 372 pageHolder.reset(); |
373 element.clear(); | 373 element.clear(); |
374 } | 374 } |
375 | 375 |
376 } // namespace blink | 376 } // namespace blink |
OLD | NEW |