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

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

Issue 2047293002: Code cleanup: Replace Element with Document in element.animate() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@_killForceConversionsToAnimatableValues
Patch Set: Rebased Created 4 years, 5 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
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 "core/animation/TimingInput.h" 5 #include "core/animation/TimingInput.h"
6 6
7 #include "bindings/core/v8/V8BindingForTesting.h" 7 #include "bindings/core/v8/V8BindingForTesting.h"
8 #include "bindings/core/v8/V8KeyframeEffectOptions.h" 8 #include "bindings/core/v8/V8KeyframeEffectOptions.h"
9 #include "core/animation/AnimationEffectTiming.h" 9 #include "core/animation/AnimationEffectTiming.h"
10 #include "core/animation/AnimationTestHelper.h" 10 #include "core/animation/AnimationTestHelper.h"
11 #include "core/testing/DummyPageHolder.h" 11 #include "core/testing/DummyPageHolder.h"
12 #include "testing/gtest/include/gtest/gtest.h" 12 #include "testing/gtest/include/gtest/gtest.h"
13 #include <v8.h> 13 #include <v8.h>
14 14
15 namespace blink { 15 namespace blink {
16 16
17 Timing applyTimingInputNumber(v8::Isolate* isolate, String timingProperty, doubl e timingPropertyValue, bool& timingConversionSuccess) 17 Timing applyTimingInputNumber(V8TestingScope& scope, String timingProperty, doub le timingPropertyValue, bool& timingConversionSuccess)
suzyh_UTC10 (ex-contributor) 2016/07/07 05:59:44 Although the change in this file was required by o
18 { 18 {
19 v8::Local<v8::Object> timingInput = v8::Object::New(isolate); 19 v8::Local<v8::Object> timingInput = v8::Object::New(scope.isolate());
20 setV8ObjectPropertyAsNumber(isolate, timingInput, timingProperty, timingProp ertyValue); 20 setV8ObjectPropertyAsNumber(scope.isolate(), timingInput, timingProperty, ti mingPropertyValue);
21 KeyframeEffectOptions timingInputDictionary; 21 KeyframeEffectOptions timingInputDictionary;
22 TrackExceptionState exceptionState; 22 TrackExceptionState exceptionState;
23 V8KeyframeEffectOptions::toImpl(isolate, timingInput, timingInputDictionary, exceptionState); 23 V8KeyframeEffectOptions::toImpl(scope.isolate(), timingInput, timingInputDic tionary, exceptionState);
24 Timing result; 24 Timing result;
25 timingConversionSuccess = TimingInput::convert(timingInputDictionary, result , nullptr, exceptionState) && !exceptionState.hadException(); 25 timingConversionSuccess = TimingInput::convert(timingInputDictionary, result , scope.document(), exceptionState) && !exceptionState.hadException();
26 return result; 26 return result;
27 } 27 }
28 28
29 Timing applyTimingInputString(v8::Isolate* isolate, String timingProperty, Strin g timingPropertyValue, bool& timingConversionSuccess) 29 Timing applyTimingInputString(V8TestingScope& scope, String timingProperty, Stri ng timingPropertyValue, bool& timingConversionSuccess)
30 { 30 {
31 v8::Local<v8::Object> timingInput = v8::Object::New(isolate); 31 v8::Local<v8::Object> timingInput = v8::Object::New(scope.isolate());
32 setV8ObjectPropertyAsString(isolate, timingInput, timingProperty, timingProp ertyValue); 32 setV8ObjectPropertyAsString(scope.isolate(), timingInput, timingProperty, ti mingPropertyValue);
33 KeyframeEffectOptions timingInputDictionary; 33 KeyframeEffectOptions timingInputDictionary;
34 TrackExceptionState exceptionState; 34 TrackExceptionState exceptionState;
35 V8KeyframeEffectOptions::toImpl(isolate, timingInput, timingInputDictionary, exceptionState); 35 V8KeyframeEffectOptions::toImpl(scope.isolate(), timingInput, timingInputDic tionary, exceptionState);
36 Timing result; 36 Timing result;
37 timingConversionSuccess = TimingInput::convert(timingInputDictionary, result , nullptr, exceptionState) && !exceptionState.hadException(); 37 timingConversionSuccess = TimingInput::convert(timingInputDictionary, result , scope.document(), exceptionState) && !exceptionState.hadException();
38 return result; 38 return result;
39 } 39 }
40 40
41 TEST(AnimationTimingInputTest, TimingInputStartDelay) 41 TEST(AnimationTimingInputTest, TimingInputStartDelay)
42 { 42 {
43 V8TestingScope scope; 43 V8TestingScope scope;
44 bool ignoredSuccess; 44 bool ignoredSuccess;
45 EXPECT_EQ(1.1, applyTimingInputNumber(scope.isolate(), "delay", 1100, ignore dSuccess).startDelay); 45 EXPECT_EQ(1.1, applyTimingInputNumber(scope, "delay", 1100, ignoredSuccess). startDelay);
46 EXPECT_EQ(-1, applyTimingInputNumber(scope.isolate(), "delay", -1000, ignore dSuccess).startDelay); 46 EXPECT_EQ(-1, applyTimingInputNumber(scope, "delay", -1000, ignoredSuccess). startDelay);
47 EXPECT_EQ(1, applyTimingInputString(scope.isolate(), "delay", "1000", ignore dSuccess).startDelay); 47 EXPECT_EQ(1, applyTimingInputString(scope, "delay", "1000", ignoredSuccess). startDelay);
48 EXPECT_EQ(0, applyTimingInputString(scope.isolate(), "delay", "1s", ignoredS uccess).startDelay); 48 EXPECT_EQ(0, applyTimingInputString(scope, "delay", "1s", ignoredSuccess).st artDelay);
49 EXPECT_EQ(0, applyTimingInputString(scope.isolate(), "delay", "Infinity", ig noredSuccess).startDelay); 49 EXPECT_EQ(0, applyTimingInputString(scope, "delay", "Infinity", ignoredSucce ss).startDelay);
50 EXPECT_EQ(0, applyTimingInputString(scope.isolate(), "delay", "-Infinity", i gnoredSuccess).startDelay); 50 EXPECT_EQ(0, applyTimingInputString(scope, "delay", "-Infinity", ignoredSucc ess).startDelay);
51 EXPECT_EQ(0, applyTimingInputString(scope.isolate(), "delay", "NaN", ignored Success).startDelay); 51 EXPECT_EQ(0, applyTimingInputString(scope, "delay", "NaN", ignoredSuccess).s tartDelay);
52 EXPECT_EQ(0, applyTimingInputString(scope.isolate(), "delay", "rubbish", ign oredSuccess).startDelay); 52 EXPECT_EQ(0, applyTimingInputString(scope, "delay", "rubbish", ignoredSucces s).startDelay);
53 } 53 }
54 54
55 TEST(AnimationTimingInputTest, TimingInputEndDelay) 55 TEST(AnimationTimingInputTest, TimingInputEndDelay)
56 { 56 {
57 V8TestingScope scope; 57 V8TestingScope scope;
58 bool ignoredSuccess; 58 bool ignoredSuccess;
59 EXPECT_EQ(10, applyTimingInputNumber(scope.isolate(), "endDelay", 10000, ign oredSuccess).endDelay); 59 EXPECT_EQ(10, applyTimingInputNumber(scope, "endDelay", 10000, ignoredSucces s).endDelay);
60 EXPECT_EQ(-2.5, applyTimingInputNumber(scope.isolate(), "endDelay", -2500, i gnoredSuccess).endDelay); 60 EXPECT_EQ(-2.5, applyTimingInputNumber(scope, "endDelay", -2500, ignoredSucc ess).endDelay);
61 } 61 }
62 62
63 TEST(AnimationTimingInputTest, TimingInputFillMode) 63 TEST(AnimationTimingInputTest, TimingInputFillMode)
64 { 64 {
65 V8TestingScope scope; 65 V8TestingScope scope;
66 Timing::FillMode defaultFillMode = Timing::FillModeAuto; 66 Timing::FillMode defaultFillMode = Timing::FillModeAuto;
67 bool ignoredSuccess; 67 bool ignoredSuccess;
68 68
69 EXPECT_EQ(Timing::FillModeAuto, applyTimingInputString(scope.isolate(), "fil l", "auto", ignoredSuccess).fillMode); 69 EXPECT_EQ(Timing::FillModeAuto, applyTimingInputString(scope, "fill", "auto" , ignoredSuccess).fillMode);
70 EXPECT_EQ(Timing::FillModeForwards, applyTimingInputString(scope.isolate(), "fill", "forwards", ignoredSuccess).fillMode); 70 EXPECT_EQ(Timing::FillModeForwards, applyTimingInputString(scope, "fill", "f orwards", ignoredSuccess).fillMode);
71 EXPECT_EQ(Timing::FillModeNone, applyTimingInputString(scope.isolate(), "fil l", "none", ignoredSuccess).fillMode); 71 EXPECT_EQ(Timing::FillModeNone, applyTimingInputString(scope, "fill", "none" , ignoredSuccess).fillMode);
72 EXPECT_EQ(Timing::FillModeBackwards, applyTimingInputString(scope.isolate(), "fill", "backwards", ignoredSuccess).fillMode); 72 EXPECT_EQ(Timing::FillModeBackwards, applyTimingInputString(scope, "fill", " backwards", ignoredSuccess).fillMode);
73 EXPECT_EQ(Timing::FillModeBoth, applyTimingInputString(scope.isolate(), "fil l", "both", ignoredSuccess).fillMode); 73 EXPECT_EQ(Timing::FillModeBoth, applyTimingInputString(scope, "fill", "both" , ignoredSuccess).fillMode);
74 EXPECT_EQ(defaultFillMode, applyTimingInputString(scope.isolate(), "fill", " everything!", ignoredSuccess).fillMode); 74 EXPECT_EQ(defaultFillMode, applyTimingInputString(scope, "fill", "everything !", ignoredSuccess).fillMode);
75 EXPECT_EQ(defaultFillMode, applyTimingInputString(scope.isolate(), "fill", " backwardsandforwards", ignoredSuccess).fillMode); 75 EXPECT_EQ(defaultFillMode, applyTimingInputString(scope, "fill", "backwardsa ndforwards", ignoredSuccess).fillMode);
76 EXPECT_EQ(defaultFillMode, applyTimingInputNumber(scope.isolate(), "fill", 2 , ignoredSuccess).fillMode); 76 EXPECT_EQ(defaultFillMode, applyTimingInputNumber(scope, "fill", 2, ignoredS uccess).fillMode);
77 } 77 }
78 78
79 TEST(AnimationTimingInputTest, TimingInputIterationStart) 79 TEST(AnimationTimingInputTest, TimingInputIterationStart)
80 { 80 {
81 V8TestingScope scope; 81 V8TestingScope scope;
82 bool success; 82 bool success;
83 EXPECT_EQ(1.1, applyTimingInputNumber(scope.isolate(), "iterationStart", 1.1 , success).iterationStart); 83 EXPECT_EQ(1.1, applyTimingInputNumber(scope, "iterationStart", 1.1, success) .iterationStart);
84 EXPECT_TRUE(success); 84 EXPECT_TRUE(success);
85 85
86 applyTimingInputNumber(scope.isolate(), "iterationStart", -1, success); 86 applyTimingInputNumber(scope, "iterationStart", -1, success);
87 EXPECT_FALSE(success); 87 EXPECT_FALSE(success);
88 88
89 applyTimingInputString(scope.isolate(), "iterationStart", "Infinity", succes s); 89 applyTimingInputString(scope, "iterationStart", "Infinity", success);
90 EXPECT_FALSE(success); 90 EXPECT_FALSE(success);
91 91
92 applyTimingInputString(scope.isolate(), "iterationStart", "-Infinity", succe ss); 92 applyTimingInputString(scope, "iterationStart", "-Infinity", success);
93 EXPECT_FALSE(success); 93 EXPECT_FALSE(success);
94 94
95 applyTimingInputString(scope.isolate(), "iterationStart", "NaN", success); 95 applyTimingInputString(scope, "iterationStart", "NaN", success);
96 EXPECT_FALSE(success); 96 EXPECT_FALSE(success);
97 97
98 applyTimingInputString(scope.isolate(), "iterationStart", "rubbish", success ); 98 applyTimingInputString(scope, "iterationStart", "rubbish", success);
99 EXPECT_FALSE(success); 99 EXPECT_FALSE(success);
100 } 100 }
101 101
102 TEST(AnimationTimingInputTest, TimingInputIterationCount) 102 TEST(AnimationTimingInputTest, TimingInputIterationCount)
103 { 103 {
104 V8TestingScope scope; 104 V8TestingScope scope;
105 bool success; 105 bool success;
106 EXPECT_EQ(2.1, applyTimingInputNumber(scope.isolate(), "iterations", 2.1, su ccess).iterationCount); 106 EXPECT_EQ(2.1, applyTimingInputNumber(scope, "iterations", 2.1, success).ite rationCount);
107 EXPECT_TRUE(success); 107 EXPECT_TRUE(success);
108 108
109 Timing timing = applyTimingInputString(scope.isolate(), "iterations", "Infin ity", success); 109 Timing timing = applyTimingInputString(scope, "iterations", "Infinity", succ ess);
110 EXPECT_TRUE(success); 110 EXPECT_TRUE(success);
111 EXPECT_TRUE(std::isinf(timing.iterationCount)); 111 EXPECT_TRUE(std::isinf(timing.iterationCount));
112 EXPECT_GT(timing.iterationCount, 0); 112 EXPECT_GT(timing.iterationCount, 0);
113 113
114 applyTimingInputNumber(scope.isolate(), "iterations", -1, success); 114 applyTimingInputNumber(scope, "iterations", -1, success);
115 EXPECT_FALSE(success); 115 EXPECT_FALSE(success);
116 116
117 applyTimingInputString(scope.isolate(), "iterations", "-Infinity", success); 117 applyTimingInputString(scope, "iterations", "-Infinity", success);
118 EXPECT_FALSE(success); 118 EXPECT_FALSE(success);
119 119
120 applyTimingInputString(scope.isolate(), "iterations", "NaN", success); 120 applyTimingInputString(scope, "iterations", "NaN", success);
121 EXPECT_FALSE(success); 121 EXPECT_FALSE(success);
122 122
123 applyTimingInputString(scope.isolate(), "iterations", "rubbish", success); 123 applyTimingInputString(scope, "iterations", "rubbish", success);
124 EXPECT_FALSE(success); 124 EXPECT_FALSE(success);
125 } 125 }
126 126
127 TEST(AnimationTimingInputTest, TimingInputIterationDuration) 127 TEST(AnimationTimingInputTest, TimingInputIterationDuration)
128 { 128 {
129 V8TestingScope scope; 129 V8TestingScope scope;
130 bool success; 130 bool success;
131 EXPECT_EQ(1.1, applyTimingInputNumber(scope.isolate(), "duration", 1100, suc cess).iterationDuration); 131 EXPECT_EQ(1.1, applyTimingInputNumber(scope, "duration", 1100, success).iter ationDuration);
132 EXPECT_TRUE(success); 132 EXPECT_TRUE(success);
133 133
134 Timing timing = applyTimingInputNumber(scope.isolate(), "duration", std::num eric_limits<double>::infinity(), success); 134 Timing timing = applyTimingInputNumber(scope, "duration", std::numeric_limit s<double>::infinity(), success);
135 EXPECT_TRUE(success); 135 EXPECT_TRUE(success);
136 EXPECT_TRUE(std::isinf(timing.iterationDuration)); 136 EXPECT_TRUE(std::isinf(timing.iterationDuration));
137 EXPECT_GT(timing.iterationDuration, 0); 137 EXPECT_GT(timing.iterationDuration, 0);
138 138
139 EXPECT_TRUE(std::isnan(applyTimingInputString(scope.isolate(), "duration", " auto", success).iterationDuration)); 139 EXPECT_TRUE(std::isnan(applyTimingInputString(scope, "duration", "auto", suc cess).iterationDuration));
140 EXPECT_TRUE(success); 140 EXPECT_TRUE(success);
141 141
142 applyTimingInputString(scope.isolate(), "duration", "1000", success); 142 applyTimingInputString(scope, "duration", "1000", success);
143 EXPECT_FALSE(success); 143 EXPECT_FALSE(success);
144 144
145 applyTimingInputNumber(scope.isolate(), "duration", -1000, success); 145 applyTimingInputNumber(scope, "duration", -1000, success);
146 EXPECT_FALSE(success); 146 EXPECT_FALSE(success);
147 147
148 applyTimingInputString(scope.isolate(), "duration", "-Infinity", success); 148 applyTimingInputString(scope, "duration", "-Infinity", success);
149 EXPECT_FALSE(success); 149 EXPECT_FALSE(success);
150 150
151 applyTimingInputString(scope.isolate(), "duration", "NaN", success); 151 applyTimingInputString(scope, "duration", "NaN", success);
152 EXPECT_FALSE(success); 152 EXPECT_FALSE(success);
153 153
154 applyTimingInputString(scope.isolate(), "duration", "rubbish", success); 154 applyTimingInputString(scope, "duration", "rubbish", success);
155 EXPECT_FALSE(success); 155 EXPECT_FALSE(success);
156 } 156 }
157 157
158 TEST(AnimationTimingInputTest, TimingInputPlaybackRate) 158 TEST(AnimationTimingInputTest, TimingInputPlaybackRate)
159 { 159 {
160 V8TestingScope scope; 160 V8TestingScope scope;
161 bool ignoredSuccess; 161 bool ignoredSuccess;
162 EXPECT_EQ(2.1, applyTimingInputNumber(scope.isolate(), "playbackRate", 2.1, ignoredSuccess).playbackRate); 162 EXPECT_EQ(2.1, applyTimingInputNumber(scope, "playbackRate", 2.1, ignoredSuc cess).playbackRate);
163 EXPECT_EQ(-1, applyTimingInputNumber(scope.isolate(), "playbackRate", -1, ig noredSuccess).playbackRate); 163 EXPECT_EQ(-1, applyTimingInputNumber(scope, "playbackRate", -1, ignoredSucce ss).playbackRate);
164 EXPECT_EQ(1, applyTimingInputString(scope.isolate(), "playbackRate", "Infini ty", ignoredSuccess).playbackRate); 164 EXPECT_EQ(1, applyTimingInputString(scope, "playbackRate", "Infinity", ignor edSuccess).playbackRate);
165 EXPECT_EQ(1, applyTimingInputString(scope.isolate(), "playbackRate", "-Infin ity", ignoredSuccess).playbackRate); 165 EXPECT_EQ(1, applyTimingInputString(scope, "playbackRate", "-Infinity", igno redSuccess).playbackRate);
166 EXPECT_EQ(1, applyTimingInputString(scope.isolate(), "playbackRate", "NaN", ignoredSuccess).playbackRate); 166 EXPECT_EQ(1, applyTimingInputString(scope, "playbackRate", "NaN", ignoredSuc cess).playbackRate);
167 EXPECT_EQ(1, applyTimingInputString(scope.isolate(), "playbackRate", "rubbis h", ignoredSuccess).playbackRate); 167 EXPECT_EQ(1, applyTimingInputString(scope, "playbackRate", "rubbish", ignore dSuccess).playbackRate);
168 } 168 }
169 169
170 TEST(AnimationTimingInputTest, TimingInputDirection) 170 TEST(AnimationTimingInputTest, TimingInputDirection)
171 { 171 {
172 V8TestingScope scope; 172 V8TestingScope scope;
173 Timing::PlaybackDirection defaultPlaybackDirection = Timing::PlaybackDirecti onNormal; 173 Timing::PlaybackDirection defaultPlaybackDirection = Timing::PlaybackDirecti onNormal;
174 bool ignoredSuccess; 174 bool ignoredSuccess;
175 175
176 EXPECT_EQ(Timing::PlaybackDirectionNormal, applyTimingInputString(scope.isol ate(), "direction", "normal", ignoredSuccess).direction); 176 EXPECT_EQ(Timing::PlaybackDirectionNormal, applyTimingInputString(scope, "di rection", "normal", ignoredSuccess).direction);
177 EXPECT_EQ(Timing::PlaybackDirectionReverse, applyTimingInputString(scope.iso late(), "direction", "reverse", ignoredSuccess).direction); 177 EXPECT_EQ(Timing::PlaybackDirectionReverse, applyTimingInputString(scope, "d irection", "reverse", ignoredSuccess).direction);
178 EXPECT_EQ(Timing::PlaybackDirectionAlternate, applyTimingInputString(scope.i solate(), "direction", "alternate", ignoredSuccess).direction); 178 EXPECT_EQ(Timing::PlaybackDirectionAlternate, applyTimingInputString(scope, "direction", "alternate", ignoredSuccess).direction);
179 EXPECT_EQ(Timing::PlaybackDirectionAlternateReverse, applyTimingInputString( scope.isolate(), "direction", "alternate-reverse", ignoredSuccess).direction); 179 EXPECT_EQ(Timing::PlaybackDirectionAlternateReverse, applyTimingInputString( scope, "direction", "alternate-reverse", ignoredSuccess).direction);
180 EXPECT_EQ(defaultPlaybackDirection, applyTimingInputString(scope.isolate(), "direction", "rubbish", ignoredSuccess).direction); 180 EXPECT_EQ(defaultPlaybackDirection, applyTimingInputString(scope, "direction ", "rubbish", ignoredSuccess).direction);
181 EXPECT_EQ(defaultPlaybackDirection, applyTimingInputNumber(scope.isolate(), "direction", 2, ignoredSuccess).direction); 181 EXPECT_EQ(defaultPlaybackDirection, applyTimingInputNumber(scope, "direction ", 2, ignoredSuccess).direction);
182 } 182 }
183 183
184 TEST(AnimationTimingInputTest, TimingInputTimingFunction) 184 TEST(AnimationTimingInputTest, TimingInputTimingFunction)
185 { 185 {
186 V8TestingScope scope; 186 V8TestingScope scope;
187 const RefPtr<TimingFunction> defaultTimingFunction = LinearTimingFunction::s hared(); 187 const RefPtr<TimingFunction> defaultTimingFunction = LinearTimingFunction::s hared();
188 bool success; 188 bool success;
189 189
190 EXPECT_EQ(*CubicBezierTimingFunction::preset(CubicBezierTimingFunction::Ease Type::EASE), *applyTimingInputString(scope.isolate(), "easing", "ease", success) .timingFunction); 190 EXPECT_EQ(*CubicBezierTimingFunction::preset(CubicBezierTimingFunction::Ease Type::EASE), *applyTimingInputString(scope, "easing", "ease", success).timingFun ction);
191 EXPECT_TRUE(success); 191 EXPECT_TRUE(success);
192 EXPECT_EQ(*CubicBezierTimingFunction::preset(CubicBezierTimingFunction::Ease Type::EASE_IN), *applyTimingInputString(scope.isolate(), "easing", "ease-in", su ccess).timingFunction); 192 EXPECT_EQ(*CubicBezierTimingFunction::preset(CubicBezierTimingFunction::Ease Type::EASE_IN), *applyTimingInputString(scope, "easing", "ease-in", success).tim ingFunction);
193 EXPECT_TRUE(success); 193 EXPECT_TRUE(success);
194 EXPECT_EQ(*CubicBezierTimingFunction::preset(CubicBezierTimingFunction::Ease Type::EASE_OUT), *applyTimingInputString(scope.isolate(), "easing", "ease-out", success).timingFunction); 194 EXPECT_EQ(*CubicBezierTimingFunction::preset(CubicBezierTimingFunction::Ease Type::EASE_OUT), *applyTimingInputString(scope, "easing", "ease-out", success).t imingFunction);
195 EXPECT_TRUE(success); 195 EXPECT_TRUE(success);
196 EXPECT_EQ(*CubicBezierTimingFunction::preset(CubicBezierTimingFunction::Ease Type::EASE_IN_OUT), *applyTimingInputString(scope.isolate(), "easing", "ease-in- out", success).timingFunction); 196 EXPECT_EQ(*CubicBezierTimingFunction::preset(CubicBezierTimingFunction::Ease Type::EASE_IN_OUT), *applyTimingInputString(scope, "easing", "ease-in-out", succ ess).timingFunction);
197 EXPECT_TRUE(success); 197 EXPECT_TRUE(success);
198 EXPECT_EQ(*LinearTimingFunction::shared(), *applyTimingInputString(scope.iso late(), "easing", "linear", success).timingFunction); 198 EXPECT_EQ(*LinearTimingFunction::shared(), *applyTimingInputString(scope, "e asing", "linear", success).timingFunction);
199 EXPECT_TRUE(success); 199 EXPECT_TRUE(success);
200 EXPECT_EQ(*StepsTimingFunction::preset(StepsTimingFunction::StepPosition::ST ART), *applyTimingInputString(scope.isolate(), "easing", "step-start", success). timingFunction); 200 EXPECT_EQ(*StepsTimingFunction::preset(StepsTimingFunction::StepPosition::ST ART), *applyTimingInputString(scope, "easing", "step-start", success).timingFunc tion);
201 EXPECT_TRUE(success); 201 EXPECT_TRUE(success);
202 EXPECT_EQ(*StepsTimingFunction::preset(StepsTimingFunction::StepPosition::MI DDLE), *applyTimingInputString(scope.isolate(), "easing", "step-middle", success ).timingFunction); 202 EXPECT_EQ(*StepsTimingFunction::preset(StepsTimingFunction::StepPosition::MI DDLE), *applyTimingInputString(scope, "easing", "step-middle", success).timingFu nction);
203 EXPECT_TRUE(success); 203 EXPECT_TRUE(success);
204 EXPECT_EQ(*StepsTimingFunction::preset(StepsTimingFunction::StepPosition::EN D), *applyTimingInputString(scope.isolate(), "easing", "step-end", success).timi ngFunction); 204 EXPECT_EQ(*StepsTimingFunction::preset(StepsTimingFunction::StepPosition::EN D), *applyTimingInputString(scope, "easing", "step-end", success).timingFunction );
205 EXPECT_TRUE(success); 205 EXPECT_TRUE(success);
206 EXPECT_EQ(*CubicBezierTimingFunction::create(1, 1, 0.3, 0.3), *applyTimingIn putString(scope.isolate(), "easing", "cubic-bezier(1, 1, 0.3, 0.3)", success).ti mingFunction); 206 EXPECT_EQ(*CubicBezierTimingFunction::create(1, 1, 0.3, 0.3), *applyTimingIn putString(scope, "easing", "cubic-bezier(1, 1, 0.3, 0.3)", success).timingFuncti on);
207 EXPECT_TRUE(success); 207 EXPECT_TRUE(success);
208 EXPECT_EQ(*StepsTimingFunction::create(3, StepsTimingFunction::StepPosition: :START), *applyTimingInputString(scope.isolate(), "easing", "steps(3, start)", s uccess).timingFunction); 208 EXPECT_EQ(*StepsTimingFunction::create(3, StepsTimingFunction::StepPosition: :START), *applyTimingInputString(scope, "easing", "steps(3, start)", success).ti mingFunction);
209 EXPECT_TRUE(success); 209 EXPECT_TRUE(success);
210 EXPECT_EQ(*StepsTimingFunction::create(5, StepsTimingFunction::StepPosition: :MIDDLE), *applyTimingInputString(scope.isolate(), "easing", "steps(5, middle)", success).timingFunction); 210 EXPECT_EQ(*StepsTimingFunction::create(5, StepsTimingFunction::StepPosition: :MIDDLE), *applyTimingInputString(scope, "easing", "steps(5, middle)", success). timingFunction);
211 EXPECT_TRUE(success); 211 EXPECT_TRUE(success);
212 EXPECT_EQ(*StepsTimingFunction::create(5, StepsTimingFunction::StepPosition: :END), *applyTimingInputString(scope.isolate(), "easing", "steps(5, end)", succe ss).timingFunction); 212 EXPECT_EQ(*StepsTimingFunction::create(5, StepsTimingFunction::StepPosition: :END), *applyTimingInputString(scope, "easing", "steps(5, end)", success).timing Function);
213 EXPECT_TRUE(success); 213 EXPECT_TRUE(success);
214 214
215 applyTimingInputString(scope.isolate(), "easing", "", success); 215 applyTimingInputString(scope, "easing", "", success);
216 EXPECT_FALSE(success); 216 EXPECT_FALSE(success);
217 applyTimingInputString(scope.isolate(), "easing", "steps(5.6, end)", success ); 217 applyTimingInputString(scope, "easing", "steps(5.6, end)", success);
218 EXPECT_FALSE(success); 218 EXPECT_FALSE(success);
219 applyTimingInputString(scope.isolate(), "easing", "cubic-bezier(2, 2, 0.3, 0 .3)", success); 219 applyTimingInputString(scope, "easing", "cubic-bezier(2, 2, 0.3, 0.3)", succ ess);
220 EXPECT_FALSE(success); 220 EXPECT_FALSE(success);
221 applyTimingInputString(scope.isolate(), "easing", "rubbish", success); 221 applyTimingInputString(scope, "easing", "rubbish", success);
222 EXPECT_FALSE(success); 222 EXPECT_FALSE(success);
223 applyTimingInputNumber(scope.isolate(), "easing", 2, success); 223 applyTimingInputNumber(scope, "easing", 2, success);
224 EXPECT_FALSE(success); 224 EXPECT_FALSE(success);
225 applyTimingInputString(scope.isolate(), "easing", "initial", success); 225 applyTimingInputString(scope, "easing", "initial", success);
226 EXPECT_FALSE(success); 226 EXPECT_FALSE(success);
227 } 227 }
228 228
229 TEST(AnimationTimingInputTest, TimingInputEmpty) 229 TEST(AnimationTimingInputTest, TimingInputEmpty)
230 { 230 {
231 V8TestingScope scope;
231 TrackExceptionState exceptionState; 232 TrackExceptionState exceptionState;
232 Timing controlTiming; 233 Timing controlTiming;
233 Timing updatedTiming; 234 Timing updatedTiming;
234 bool success = TimingInput::convert(KeyframeEffectOptions(), updatedTiming, nullptr, exceptionState); 235 bool success = TimingInput::convert(KeyframeEffectOptions(), updatedTiming, scope.document(), exceptionState);
235 EXPECT_TRUE(success); 236 EXPECT_TRUE(success);
236 EXPECT_FALSE(exceptionState.hadException()); 237 EXPECT_FALSE(exceptionState.hadException());
237 238
238 EXPECT_EQ(controlTiming.startDelay, updatedTiming.startDelay); 239 EXPECT_EQ(controlTiming.startDelay, updatedTiming.startDelay);
239 EXPECT_EQ(controlTiming.fillMode, updatedTiming.fillMode); 240 EXPECT_EQ(controlTiming.fillMode, updatedTiming.fillMode);
240 EXPECT_EQ(controlTiming.iterationStart, updatedTiming.iterationStart); 241 EXPECT_EQ(controlTiming.iterationStart, updatedTiming.iterationStart);
241 EXPECT_EQ(controlTiming.iterationCount, updatedTiming.iterationCount); 242 EXPECT_EQ(controlTiming.iterationCount, updatedTiming.iterationCount);
242 EXPECT_TRUE(std::isnan(updatedTiming.iterationDuration)); 243 EXPECT_TRUE(std::isnan(updatedTiming.iterationDuration));
243 EXPECT_EQ(controlTiming.playbackRate, updatedTiming.playbackRate); 244 EXPECT_EQ(controlTiming.playbackRate, updatedTiming.playbackRate);
244 EXPECT_EQ(controlTiming.direction, updatedTiming.direction); 245 EXPECT_EQ(controlTiming.direction, updatedTiming.direction);
245 EXPECT_EQ(*controlTiming.timingFunction, *updatedTiming.timingFunction); 246 EXPECT_EQ(*controlTiming.timingFunction, *updatedTiming.timingFunction);
246 } 247 }
247 248
248 } // namespace blink 249 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698