| 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/Animation.h" |
| 7 | 7 |
| 8 #include "bindings/core/v8/Dictionary.h" | 8 #include "bindings/core/v8/Dictionary.h" |
| 9 #include "bindings/core/v8/Nullable.h" |
| 9 #include "core/animation/AnimationClock.h" | 10 #include "core/animation/AnimationClock.h" |
| 10 #include "core/animation/AnimationHelpers.h" | 11 #include "core/animation/AnimationHelpers.h" |
| 11 #include "core/animation/AnimationNodeTiming.h" | 12 #include "core/animation/AnimationNodeTiming.h" |
| 12 #include "core/animation/AnimationTestHelper.h" | 13 #include "core/animation/AnimationTestHelper.h" |
| 13 #include "core/animation/AnimationTimeline.h" | 14 #include "core/animation/AnimationTimeline.h" |
| 14 #include "core/animation/KeyframeEffectModel.h" | 15 #include "core/animation/KeyframeEffectModel.h" |
| 15 #include "core/animation/Timing.h" | 16 #include "core/animation/Timing.h" |
| 16 #include "core/dom/Document.h" | 17 #include "core/dom/Document.h" |
| 17 #include <gtest/gtest.h> | 18 #include <gtest/gtest.h> |
| 18 #include <v8.h> | 19 #include <v8.h> |
| (...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 243 { | 244 { |
| 244 Vector<Dictionary, 0> jsKeyframes; | 245 Vector<Dictionary, 0> jsKeyframes; |
| 245 | 246 |
| 246 v8::Handle<v8::Object> timingInputWithDuration = v8::Object::New(m_isolate); | 247 v8::Handle<v8::Object> timingInputWithDuration = v8::Object::New(m_isolate); |
| 247 setV8ObjectPropertyAsNumber(timingInputWithDuration, "duration", 2.5); | 248 setV8ObjectPropertyAsNumber(timingInputWithDuration, "duration", 2.5); |
| 248 Dictionary timingInputDictionaryWithDuration = Dictionary(v8::Handle<v8::Val
ue>::Cast(timingInputWithDuration), m_isolate); | 249 Dictionary timingInputDictionaryWithDuration = Dictionary(v8::Handle<v8::Val
ue>::Cast(timingInputWithDuration), m_isolate); |
| 249 | 250 |
| 250 RefPtrWillBeRawPtr<Animation> animationWithDuration = createAnimation(elemen
t.get(), jsKeyframes, timingInputDictionaryWithDuration, exceptionState); | 251 RefPtrWillBeRawPtr<Animation> animationWithDuration = createAnimation(elemen
t.get(), jsKeyframes, timingInputDictionaryWithDuration, exceptionState); |
| 251 | 252 |
| 252 RefPtrWillBeRawPtr<AnimationNodeTiming> specifiedWithDuration = animationWit
hDuration->timing(); | 253 RefPtrWillBeRawPtr<AnimationNodeTiming> specifiedWithDuration = animationWit
hDuration->timing(); |
| 253 bool isNumber = false; | 254 Nullable<double> numberDuration; |
| 254 double numberDuration = std::numeric_limits<double>::quiet_NaN(); | 255 String stringDuration; |
| 255 bool isString = false; | 256 specifiedWithDuration->getDuration("duration", numberDuration, stringDuratio
n); |
| 256 String stringDuration = ""; | 257 EXPECT_FALSE(numberDuration.isNull()); |
| 257 specifiedWithDuration->getDuration("duration", isNumber, numberDuration, isS
tring, stringDuration); | 258 EXPECT_EQ(2.5, numberDuration.get()); |
| 258 EXPECT_TRUE(isNumber); | 259 EXPECT_TRUE(stringDuration.isNull()); |
| 259 EXPECT_EQ(2.5, numberDuration); | |
| 260 EXPECT_FALSE(isString); | |
| 261 EXPECT_EQ("", stringDuration); | |
| 262 | 260 |
| 263 | 261 |
| 264 v8::Handle<v8::Object> timingInputNoDuration = v8::Object::New(m_isolate); | 262 v8::Handle<v8::Object> timingInputNoDuration = v8::Object::New(m_isolate); |
| 265 Dictionary timingInputDictionaryNoDuration = Dictionary(v8::Handle<v8::Value
>::Cast(timingInputNoDuration), m_isolate); | 263 Dictionary timingInputDictionaryNoDuration = Dictionary(v8::Handle<v8::Value
>::Cast(timingInputNoDuration), m_isolate); |
| 266 | 264 |
| 267 RefPtrWillBeRawPtr<Animation> animationNoDuration = createAnimation(element.
get(), jsKeyframes, timingInputDictionaryNoDuration, exceptionState); | 265 RefPtrWillBeRawPtr<Animation> animationNoDuration = createAnimation(element.
get(), jsKeyframes, timingInputDictionaryNoDuration, exceptionState); |
| 268 | 266 |
| 269 RefPtrWillBeRawPtr<AnimationNodeTiming> specifiedNoDuration = animationNoDur
ation->timing(); | 267 RefPtrWillBeRawPtr<AnimationNodeTiming> specifiedNoDuration = animationNoDur
ation->timing(); |
| 270 isNumber = false; | 268 Nullable<double> numberDuration2; |
| 271 numberDuration = std::numeric_limits<double>::quiet_NaN(); | 269 String stringDuration2; |
| 272 isString = false; | 270 specifiedNoDuration->getDuration("duration", numberDuration2, stringDuration
2); |
| 273 stringDuration = ""; | 271 EXPECT_TRUE(numberDuration2.isNull()); |
| 274 specifiedNoDuration->getDuration("duration", isNumber, numberDuration, isStr
ing, stringDuration); | 272 EXPECT_FALSE(stringDuration2.isNull()); |
| 275 EXPECT_FALSE(isNumber); | 273 EXPECT_EQ("auto", stringDuration2); |
| 276 EXPECT_TRUE(std::isnan(numberDuration)); | |
| 277 EXPECT_TRUE(isString); | |
| 278 EXPECT_EQ("auto", stringDuration); | |
| 279 } | 274 } |
| 280 | 275 |
| 281 TEST_F(AnimationAnimationV8Test, SpecifiedSetters) | 276 TEST_F(AnimationAnimationV8Test, SpecifiedSetters) |
| 282 { | 277 { |
| 283 Vector<Dictionary, 0> jsKeyframes; | 278 Vector<Dictionary, 0> jsKeyframes; |
| 284 v8::Handle<v8::Object> timingInput = v8::Object::New(m_isolate); | 279 v8::Handle<v8::Object> timingInput = v8::Object::New(m_isolate); |
| 285 Dictionary timingInputDictionary = Dictionary(v8::Handle<v8::Value>::Cast(ti
mingInput), m_isolate); | 280 Dictionary timingInputDictionary = Dictionary(v8::Handle<v8::Value>::Cast(ti
mingInput), m_isolate); |
| 286 RefPtrWillBeRawPtr<Animation> animation = createAnimation(element.get(), jsK
eyframes, timingInputDictionary, exceptionState); | 281 RefPtrWillBeRawPtr<Animation> animation = createAnimation(element.get(), jsK
eyframes, timingInputDictionary, exceptionState); |
| 287 | 282 |
| 288 RefPtrWillBeRawPtr<AnimationNodeTiming> specified = animation->timing(); | 283 RefPtrWillBeRawPtr<AnimationNodeTiming> specified = animation->timing(); |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 322 | 317 |
| 323 TEST_F(AnimationAnimationV8Test, SetSpecifiedDuration) | 318 TEST_F(AnimationAnimationV8Test, SetSpecifiedDuration) |
| 324 { | 319 { |
| 325 Vector<Dictionary, 0> jsKeyframes; | 320 Vector<Dictionary, 0> jsKeyframes; |
| 326 v8::Handle<v8::Object> timingInput = v8::Object::New(m_isolate); | 321 v8::Handle<v8::Object> timingInput = v8::Object::New(m_isolate); |
| 327 Dictionary timingInputDictionary = Dictionary(v8::Handle<v8::Value>::Cast(ti
mingInput), m_isolate); | 322 Dictionary timingInputDictionary = Dictionary(v8::Handle<v8::Value>::Cast(ti
mingInput), m_isolate); |
| 328 RefPtrWillBeRawPtr<Animation> animation = createAnimation(element.get(), jsK
eyframes, timingInputDictionary, exceptionState); | 323 RefPtrWillBeRawPtr<Animation> animation = createAnimation(element.get(), jsK
eyframes, timingInputDictionary, exceptionState); |
| 329 | 324 |
| 330 RefPtrWillBeRawPtr<AnimationNodeTiming> specified = animation->timing(); | 325 RefPtrWillBeRawPtr<AnimationNodeTiming> specified = animation->timing(); |
| 331 | 326 |
| 332 bool isNumber = false; | 327 Nullable<double> numberDuration; |
| 333 double numberDuration = std::numeric_limits<double>::quiet_NaN(); | 328 String stringDuration; |
| 334 bool isString = false; | 329 specified->getDuration("duration", numberDuration, stringDuration); |
| 335 String stringDuration = ""; | 330 EXPECT_TRUE(numberDuration.isNull()); |
| 336 specified->getDuration("duration", isNumber, numberDuration, isString, strin
gDuration); | 331 EXPECT_FALSE(stringDuration.isNull()); |
| 337 EXPECT_FALSE(isNumber); | |
| 338 EXPECT_TRUE(std::isnan(numberDuration)); | |
| 339 EXPECT_TRUE(isString); | |
| 340 EXPECT_EQ("auto", stringDuration); | 332 EXPECT_EQ("auto", stringDuration); |
| 341 | 333 |
| 342 specified->setDuration("duration", 2.5); | 334 specified->setDuration("duration", 2.5); |
| 343 isNumber = false; | 335 Nullable<double> numberDuration2; |
| 344 numberDuration = std::numeric_limits<double>::quiet_NaN(); | 336 String stringDuration2; |
| 345 isString = false; | 337 specified->getDuration("duration", numberDuration2, stringDuration2); |
| 346 stringDuration = ""; | 338 EXPECT_FALSE(numberDuration2.isNull()); |
| 347 specified->getDuration("duration", isNumber, numberDuration, isString, strin
gDuration); | 339 EXPECT_EQ(2.5, numberDuration2.get()); |
| 348 EXPECT_TRUE(isNumber); | 340 EXPECT_TRUE(stringDuration2.isNull()); |
| 349 EXPECT_EQ(2.5, numberDuration); | |
| 350 EXPECT_FALSE(isString); | |
| 351 EXPECT_EQ("", stringDuration); | |
| 352 } | 341 } |
| 353 | 342 |
| 354 TEST_F(AnimationAnimationTest, TimeToEffectChange) | 343 TEST_F(AnimationAnimationTest, TimeToEffectChange) |
| 355 { | 344 { |
| 356 Timing timing; | 345 Timing timing; |
| 357 timing.iterationDuration = 100; | 346 timing.iterationDuration = 100; |
| 358 timing.startDelay = 100; | 347 timing.startDelay = 100; |
| 359 timing.endDelay = 100; | 348 timing.endDelay = 100; |
| 360 timing.fillMode = Timing::FillModeNone; | 349 timing.fillMode = Timing::FillModeNone; |
| 361 RefPtrWillBeRawPtr<Animation> animation = Animation::create(0, nullptr, timi
ng); | 350 RefPtrWillBeRawPtr<Animation> animation = Animation::create(0, nullptr, timi
ng); |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 458 EXPECT_EQ(element.get(), animation->target()); | 447 EXPECT_EQ(element.get(), animation->target()); |
| 459 document->timeline().play(animation.get()); | 448 document->timeline().play(animation.get()); |
| 460 document.clear(); | 449 document.clear(); |
| 461 element.clear(); | 450 element.clear(); |
| 462 #if !ENABLE(OILPAN) | 451 #if !ENABLE(OILPAN) |
| 463 EXPECT_EQ(0, animation->target()); | 452 EXPECT_EQ(0, animation->target()); |
| 464 #endif | 453 #endif |
| 465 } | 454 } |
| 466 | 455 |
| 467 } // namespace blink | 456 } // namespace blink |
| OLD | NEW |