| 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/TimingInput.h" | 5 #include "core/animation/TimingInput.h" |
| 6 | 6 |
| 7 #include <v8.h> | 7 #include <v8.h> |
| 8 #include "bindings/core/v8/V8BindingForTesting.h" | 8 #include "bindings/core/v8/V8BindingForTesting.h" |
| 9 #include "bindings/core/v8/V8KeyframeEffectOptions.h" | 9 #include "bindings/core/v8/V8KeyframeEffectOptions.h" |
| 10 #include "core/animation/AnimationEffectTiming.h" | 10 #include "core/animation/AnimationEffectTiming.h" |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 46 Timing result; | 46 Timing result; |
| 47 timingConversionSuccess = TimingInput::convert(timingInputDictionary, result, | 47 timingConversionSuccess = TimingInput::convert(timingInputDictionary, result, |
| 48 nullptr, exceptionState) && | 48 nullptr, exceptionState) && |
| 49 !exceptionState.hadException(); | 49 !exceptionState.hadException(); |
| 50 return result; | 50 return result; |
| 51 } | 51 } |
| 52 | 52 |
| 53 TEST(AnimationTimingInputTest, TimingInputStartDelay) { | 53 TEST(AnimationTimingInputTest, TimingInputStartDelay) { |
| 54 V8TestingScope scope; | 54 V8TestingScope scope; |
| 55 bool ignoredSuccess; | 55 bool ignoredSuccess; |
| 56 EXPECT_EQ(1.1, applyTimingInputNumber(scope.isolate(), "delay", 1100, | |
| 57 ignoredSuccess) | |
| 58 .startDelay); | |
| 59 EXPECT_EQ(-1, applyTimingInputNumber(scope.isolate(), "delay", -1000, | |
| 60 ignoredSuccess) | |
| 61 .startDelay); | |
| 62 EXPECT_EQ(1, applyTimingInputString(scope.isolate(), "delay", "1000", | |
| 63 ignoredSuccess) | |
| 64 .startDelay); | |
| 65 EXPECT_EQ( | 56 EXPECT_EQ( |
| 66 0, applyTimingInputString(scope.isolate(), "delay", "1s", ignoredSuccess) | 57 1.1, |
| 67 .startDelay); | 58 applyTimingInputNumber(scope.isolate(), "delay", 1100, ignoredSuccess) |
| 68 EXPECT_EQ(0, applyTimingInputString(scope.isolate(), "delay", "Infinity", | 59 .startDelay); |
| 69 ignoredSuccess) | |
| 70 .startDelay); | |
| 71 EXPECT_EQ(0, applyTimingInputString(scope.isolate(), "delay", "-Infinity", | |
| 72 ignoredSuccess) | |
| 73 .startDelay); | |
| 74 EXPECT_EQ( | 60 EXPECT_EQ( |
| 75 0, applyTimingInputString(scope.isolate(), "delay", "NaN", ignoredSuccess) | 61 -1, |
| 76 .startDelay); | 62 applyTimingInputNumber(scope.isolate(), "delay", -1000, ignoredSuccess) |
| 77 EXPECT_EQ(0, applyTimingInputString(scope.isolate(), "delay", "rubbish", | 63 .startDelay); |
| 78 ignoredSuccess) | 64 EXPECT_EQ( |
| 79 .startDelay); | 65 1, |
| 66 applyTimingInputString(scope.isolate(), "delay", "1000", ignoredSuccess) |
| 67 .startDelay); |
| 68 EXPECT_EQ( |
| 69 0, |
| 70 applyTimingInputString(scope.isolate(), "delay", "1s", ignoredSuccess) |
| 71 .startDelay); |
| 72 EXPECT_EQ(0, |
| 73 applyTimingInputString(scope.isolate(), "delay", "Infinity", |
| 74 ignoredSuccess) |
| 75 .startDelay); |
| 76 EXPECT_EQ(0, |
| 77 applyTimingInputString(scope.isolate(), "delay", "-Infinity", |
| 78 ignoredSuccess) |
| 79 .startDelay); |
| 80 EXPECT_EQ( |
| 81 0, |
| 82 applyTimingInputString(scope.isolate(), "delay", "NaN", ignoredSuccess) |
| 83 .startDelay); |
| 84 EXPECT_EQ(0, |
| 85 applyTimingInputString(scope.isolate(), "delay", "rubbish", |
| 86 ignoredSuccess) |
| 87 .startDelay); |
| 80 } | 88 } |
| 81 | 89 |
| 82 TEST(AnimationTimingInputTest, TimingInputEndDelay) { | 90 TEST(AnimationTimingInputTest, TimingInputEndDelay) { |
| 83 V8TestingScope scope; | 91 V8TestingScope scope; |
| 84 bool ignoredSuccess; | 92 bool ignoredSuccess; |
| 85 EXPECT_EQ(10, applyTimingInputNumber(scope.isolate(), "endDelay", 10000, | 93 EXPECT_EQ( |
| 86 ignoredSuccess) | 94 10, |
| 87 .endDelay); | 95 applyTimingInputNumber(scope.isolate(), "endDelay", 10000, ignoredSuccess) |
| 88 EXPECT_EQ(-2.5, applyTimingInputNumber(scope.isolate(), "endDelay", -2500, | 96 .endDelay); |
| 89 ignoredSuccess) | 97 EXPECT_EQ( |
| 90 .endDelay); | 98 -2.5, |
| 99 applyTimingInputNumber(scope.isolate(), "endDelay", -2500, ignoredSuccess) |
| 100 .endDelay); |
| 91 } | 101 } |
| 92 | 102 |
| 93 TEST(AnimationTimingInputTest, TimingInputFillMode) { | 103 TEST(AnimationTimingInputTest, TimingInputFillMode) { |
| 94 V8TestingScope scope; | 104 V8TestingScope scope; |
| 95 Timing::FillMode defaultFillMode = Timing::FillMode::AUTO; | 105 Timing::FillMode defaultFillMode = Timing::FillMode::AUTO; |
| 96 bool ignoredSuccess; | 106 bool ignoredSuccess; |
| 97 | 107 |
| 98 EXPECT_EQ( | 108 EXPECT_EQ( |
| 99 Timing::FillMode::AUTO, | 109 Timing::FillMode::AUTO, |
| 100 applyTimingInputString(scope.isolate(), "fill", "auto", ignoredSuccess) | 110 applyTimingInputString(scope.isolate(), "fill", "auto", ignoredSuccess) |
| (...skipping 23 matching lines...) Expand all Loading... |
| 124 "backwardsandforwards", ignoredSuccess) | 134 "backwardsandforwards", ignoredSuccess) |
| 125 .fillMode); | 135 .fillMode); |
| 126 EXPECT_EQ(defaultFillMode, | 136 EXPECT_EQ(defaultFillMode, |
| 127 applyTimingInputNumber(scope.isolate(), "fill", 2, ignoredSuccess) | 137 applyTimingInputNumber(scope.isolate(), "fill", 2, ignoredSuccess) |
| 128 .fillMode); | 138 .fillMode); |
| 129 } | 139 } |
| 130 | 140 |
| 131 TEST(AnimationTimingInputTest, TimingInputIterationStart) { | 141 TEST(AnimationTimingInputTest, TimingInputIterationStart) { |
| 132 V8TestingScope scope; | 142 V8TestingScope scope; |
| 133 bool success; | 143 bool success; |
| 134 EXPECT_EQ(1.1, applyTimingInputNumber(scope.isolate(), "iterationStart", 1.1, | 144 EXPECT_EQ( |
| 135 success) | 145 1.1, |
| 136 .iterationStart); | 146 applyTimingInputNumber(scope.isolate(), "iterationStart", 1.1, success) |
| 147 .iterationStart); |
| 137 EXPECT_TRUE(success); | 148 EXPECT_TRUE(success); |
| 138 | 149 |
| 139 applyTimingInputNumber(scope.isolate(), "iterationStart", -1, success); | 150 applyTimingInputNumber(scope.isolate(), "iterationStart", -1, success); |
| 140 EXPECT_FALSE(success); | 151 EXPECT_FALSE(success); |
| 141 | 152 |
| 142 applyTimingInputString(scope.isolate(), "iterationStart", "Infinity", | 153 applyTimingInputString(scope.isolate(), "iterationStart", "Infinity", |
| 143 success); | 154 success); |
| 144 EXPECT_FALSE(success); | 155 EXPECT_FALSE(success); |
| 145 | 156 |
| 146 applyTimingInputString(scope.isolate(), "iterationStart", "-Infinity", | 157 applyTimingInputString(scope.isolate(), "iterationStart", "-Infinity", |
| (...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 350 EXPECT_EQ(controlTiming.fillMode, updatedTiming.fillMode); | 361 EXPECT_EQ(controlTiming.fillMode, updatedTiming.fillMode); |
| 351 EXPECT_EQ(controlTiming.iterationStart, updatedTiming.iterationStart); | 362 EXPECT_EQ(controlTiming.iterationStart, updatedTiming.iterationStart); |
| 352 EXPECT_EQ(controlTiming.iterationCount, updatedTiming.iterationCount); | 363 EXPECT_EQ(controlTiming.iterationCount, updatedTiming.iterationCount); |
| 353 EXPECT_TRUE(std::isnan(updatedTiming.iterationDuration)); | 364 EXPECT_TRUE(std::isnan(updatedTiming.iterationDuration)); |
| 354 EXPECT_EQ(controlTiming.playbackRate, updatedTiming.playbackRate); | 365 EXPECT_EQ(controlTiming.playbackRate, updatedTiming.playbackRate); |
| 355 EXPECT_EQ(controlTiming.direction, updatedTiming.direction); | 366 EXPECT_EQ(controlTiming.direction, updatedTiming.direction); |
| 356 EXPECT_EQ(*controlTiming.timingFunction, *updatedTiming.timingFunction); | 367 EXPECT_EQ(*controlTiming.timingFunction, *updatedTiming.timingFunction); |
| 357 } | 368 } |
| 358 | 369 |
| 359 } // namespace blink | 370 } // namespace blink |
| OLD | NEW |