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

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

Issue 2927123005: Deprecate step timing with position 'middle' (Closed)
Patch Set: Rebase Created 3 years, 6 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/V8KeyframeAnimationOptions.h" 8 #include "bindings/core/v8/V8KeyframeAnimationOptions.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"
11 #include "core/animation/AnimationTestHelper.h" 11 #include "core/animation/AnimationTestHelper.h"
12 #include "core/testing/DummyPageHolder.h" 12 #include "core/testing/DummyPageHolder.h"
13 #include "testing/gtest/include/gtest/gtest.h" 13 #include "testing/gtest/include/gtest/gtest.h"
14 #include "v8/include/v8.h" 14 #include "v8/include/v8.h"
15 15
16 namespace blink { 16 namespace blink {
17 17
18 Timing ApplyTimingInputNumber(v8::Isolate* isolate, 18 class AnimationTimingInputTest : public testing::Test {
19 String timing_property, 19 public:
20 double timing_property_value, 20 Timing ApplyTimingInputNumber(v8::Isolate*,
21 bool& timing_conversion_success, 21 String timing_property,
22 bool is_keyframeeffectoptions = true) { 22 double timing_property_value,
23 bool& timing_conversion_success,
24 bool is_keyframeeffectoptions = true);
25 Timing ApplyTimingInputString(v8::Isolate*,
26 String timing_property,
27 String timing_property_value,
28 bool& timing_conversion_success,
29 bool is_keyframeeffectoptions = true);
30
31 private:
32 void SetUp() override { page_holder_ = DummyPageHolder::Create(); }
33
34 Document* GetDocument() const { return &page_holder_->GetDocument(); }
35
36 std::unique_ptr<DummyPageHolder> page_holder_;
37 };
38
39 Timing AnimationTimingInputTest::ApplyTimingInputNumber(
40 v8::Isolate* isolate,
41 String timing_property,
42 double timing_property_value,
43 bool& timing_conversion_success,
44 bool is_keyframeeffectoptions) {
23 v8::Local<v8::Object> timing_input = v8::Object::New(isolate); 45 v8::Local<v8::Object> timing_input = v8::Object::New(isolate);
24 SetV8ObjectPropertyAsNumber(isolate, timing_input, timing_property, 46 SetV8ObjectPropertyAsNumber(isolate, timing_input, timing_property,
25 timing_property_value); 47 timing_property_value);
26 DummyExceptionStateForTesting exception_state; 48 DummyExceptionStateForTesting exception_state;
27 Timing result; 49 Timing result;
28 if (is_keyframeeffectoptions) { 50 if (is_keyframeeffectoptions) {
29 KeyframeEffectOptions timing_input_dictionary; 51 KeyframeEffectOptions timing_input_dictionary;
30 V8KeyframeEffectOptions::toImpl(isolate, timing_input, 52 V8KeyframeEffectOptions::toImpl(isolate, timing_input,
31 timing_input_dictionary, exception_state); 53 timing_input_dictionary, exception_state);
32 timing_conversion_success = 54 timing_conversion_success =
33 TimingInput::Convert(timing_input_dictionary, result, nullptr, 55 TimingInput::Convert(timing_input_dictionary, result, GetDocument(),
34 exception_state) && 56 exception_state) &&
35 !exception_state.HadException(); 57 !exception_state.HadException();
36 } else { 58 } else {
37 KeyframeAnimationOptions timing_input_dictionary; 59 KeyframeAnimationOptions timing_input_dictionary;
38 V8KeyframeAnimationOptions::toImpl( 60 V8KeyframeAnimationOptions::toImpl(
39 isolate, timing_input, timing_input_dictionary, exception_state); 61 isolate, timing_input, timing_input_dictionary, exception_state);
40 timing_conversion_success = 62 timing_conversion_success =
41 TimingInput::Convert(timing_input_dictionary, result, nullptr, 63 TimingInput::Convert(timing_input_dictionary, result, GetDocument(),
42 exception_state) && 64 exception_state) &&
43 !exception_state.HadException(); 65 !exception_state.HadException();
44 } 66 }
45 return result; 67 return result;
46 } 68 }
47 69
48 Timing ApplyTimingInputString(v8::Isolate* isolate, 70 Timing AnimationTimingInputTest::ApplyTimingInputString(
49 String timing_property, 71 v8::Isolate* isolate,
50 String timing_property_value, 72 String timing_property,
51 bool& timing_conversion_success, 73 String timing_property_value,
52 bool is_keyframeeffectoptions = true) { 74 bool& timing_conversion_success,
75 bool is_keyframeeffectoptions) {
53 v8::Local<v8::Object> timing_input = v8::Object::New(isolate); 76 v8::Local<v8::Object> timing_input = v8::Object::New(isolate);
54 SetV8ObjectPropertyAsString(isolate, timing_input, timing_property, 77 SetV8ObjectPropertyAsString(isolate, timing_input, timing_property,
55 timing_property_value); 78 timing_property_value);
56 79
57 DummyExceptionStateForTesting exception_state; 80 DummyExceptionStateForTesting exception_state;
58 Timing result; 81 Timing result;
59 if (is_keyframeeffectoptions) { 82 if (is_keyframeeffectoptions) {
60 KeyframeEffectOptions timing_input_dictionary; 83 KeyframeEffectOptions timing_input_dictionary;
61 V8KeyframeEffectOptions::toImpl(isolate, timing_input, 84 V8KeyframeEffectOptions::toImpl(isolate, timing_input,
62 timing_input_dictionary, exception_state); 85 timing_input_dictionary, exception_state);
63 timing_conversion_success = 86 timing_conversion_success =
64 TimingInput::Convert(timing_input_dictionary, result, nullptr, 87 TimingInput::Convert(timing_input_dictionary, result, GetDocument(),
65 exception_state) && 88 exception_state) &&
66 !exception_state.HadException(); 89 !exception_state.HadException();
67 } else { 90 } else {
68 KeyframeAnimationOptions timing_input_dictionary; 91 KeyframeAnimationOptions timing_input_dictionary;
69 V8KeyframeAnimationOptions::toImpl( 92 V8KeyframeAnimationOptions::toImpl(
70 isolate, timing_input, timing_input_dictionary, exception_state); 93 isolate, timing_input, timing_input_dictionary, exception_state);
71 timing_conversion_success = 94 timing_conversion_success =
72 TimingInput::Convert(timing_input_dictionary, result, nullptr, 95 TimingInput::Convert(timing_input_dictionary, result, GetDocument(),
73 exception_state) && 96 exception_state) &&
74 !exception_state.HadException(); 97 !exception_state.HadException();
75 } 98 }
76 return result; 99 return result;
77 } 100 }
78 101
79 TEST(AnimationTimingInputTest, TimingInputStartDelay) { 102 TEST_F(AnimationTimingInputTest, TimingInputStartDelay) {
80 V8TestingScope scope; 103 V8TestingScope scope;
81 bool ignored_success; 104 bool ignored_success;
82 EXPECT_EQ(1.1, ApplyTimingInputNumber(scope.GetIsolate(), "delay", 1100, 105 EXPECT_EQ(1.1, ApplyTimingInputNumber(scope.GetIsolate(), "delay", 1100,
83 ignored_success) 106 ignored_success)
84 .start_delay); 107 .start_delay);
85 EXPECT_EQ(-1, ApplyTimingInputNumber(scope.GetIsolate(), "delay", -1000, 108 EXPECT_EQ(-1, ApplyTimingInputNumber(scope.GetIsolate(), "delay", -1000,
86 ignored_success) 109 ignored_success)
87 .start_delay); 110 .start_delay);
88 EXPECT_EQ(1, ApplyTimingInputString(scope.GetIsolate(), "delay", "1000", 111 EXPECT_EQ(1, ApplyTimingInputString(scope.GetIsolate(), "delay", "1000",
89 ignored_success) 112 ignored_success)
90 .start_delay); 113 .start_delay);
91 EXPECT_EQ(0, ApplyTimingInputString(scope.GetIsolate(), "delay", "1s", 114 EXPECT_EQ(0, ApplyTimingInputString(scope.GetIsolate(), "delay", "1s",
92 ignored_success) 115 ignored_success)
93 .start_delay); 116 .start_delay);
94 EXPECT_EQ(0, ApplyTimingInputString(scope.GetIsolate(), "delay", "Infinity", 117 EXPECT_EQ(0, ApplyTimingInputString(scope.GetIsolate(), "delay", "Infinity",
95 ignored_success) 118 ignored_success)
96 .start_delay); 119 .start_delay);
97 EXPECT_EQ(0, ApplyTimingInputString(scope.GetIsolate(), "delay", "-Infinity", 120 EXPECT_EQ(0, ApplyTimingInputString(scope.GetIsolate(), "delay", "-Infinity",
98 ignored_success) 121 ignored_success)
99 .start_delay); 122 .start_delay);
100 EXPECT_EQ(0, ApplyTimingInputString(scope.GetIsolate(), "delay", "NaN", 123 EXPECT_EQ(0, ApplyTimingInputString(scope.GetIsolate(), "delay", "NaN",
101 ignored_success) 124 ignored_success)
102 .start_delay); 125 .start_delay);
103 EXPECT_EQ(0, ApplyTimingInputString(scope.GetIsolate(), "delay", "rubbish", 126 EXPECT_EQ(0, ApplyTimingInputString(scope.GetIsolate(), "delay", "rubbish",
104 ignored_success) 127 ignored_success)
105 .start_delay); 128 .start_delay);
106 } 129 }
107 130
108 TEST(AnimationTimingInputTest, TimingInputStartDelayKeyframeAnimationOptions) { 131 TEST_F(AnimationTimingInputTest,
132 TimingInputStartDelayKeyframeAnimationOptions) {
109 V8TestingScope scope; 133 V8TestingScope scope;
110 bool ignored_success; 134 bool ignored_success;
111 EXPECT_EQ(1.1, ApplyTimingInputNumber(scope.GetIsolate(), "delay", 1100, 135 EXPECT_EQ(1.1, ApplyTimingInputNumber(scope.GetIsolate(), "delay", 1100,
112 ignored_success, false) 136 ignored_success, false)
113 .start_delay); 137 .start_delay);
114 EXPECT_EQ(-1, ApplyTimingInputNumber(scope.GetIsolate(), "delay", -1000, 138 EXPECT_EQ(-1, ApplyTimingInputNumber(scope.GetIsolate(), "delay", -1000,
115 ignored_success, false) 139 ignored_success, false)
116 .start_delay); 140 .start_delay);
117 EXPECT_EQ(1, ApplyTimingInputString(scope.GetIsolate(), "delay", "1000", 141 EXPECT_EQ(1, ApplyTimingInputString(scope.GetIsolate(), "delay", "1000",
118 ignored_success, false) 142 ignored_success, false)
119 .start_delay); 143 .start_delay);
120 EXPECT_EQ(0, ApplyTimingInputString(scope.GetIsolate(), "delay", "1s", 144 EXPECT_EQ(0, ApplyTimingInputString(scope.GetIsolate(), "delay", "1s",
121 ignored_success, false) 145 ignored_success, false)
122 .start_delay); 146 .start_delay);
123 EXPECT_EQ(0, ApplyTimingInputString(scope.GetIsolate(), "delay", "Infinity", 147 EXPECT_EQ(0, ApplyTimingInputString(scope.GetIsolate(), "delay", "Infinity",
124 ignored_success, false) 148 ignored_success, false)
125 .start_delay); 149 .start_delay);
126 EXPECT_EQ(0, ApplyTimingInputString(scope.GetIsolate(), "delay", "-Infinity", 150 EXPECT_EQ(0, ApplyTimingInputString(scope.GetIsolate(), "delay", "-Infinity",
127 ignored_success, false) 151 ignored_success, false)
128 .start_delay); 152 .start_delay);
129 EXPECT_EQ(0, ApplyTimingInputString(scope.GetIsolate(), "delay", "NaN", 153 EXPECT_EQ(0, ApplyTimingInputString(scope.GetIsolate(), "delay", "NaN",
130 ignored_success, false) 154 ignored_success, false)
131 .start_delay); 155 .start_delay);
132 EXPECT_EQ(0, ApplyTimingInputString(scope.GetIsolate(), "delay", "rubbish", 156 EXPECT_EQ(0, ApplyTimingInputString(scope.GetIsolate(), "delay", "rubbish",
133 ignored_success, false) 157 ignored_success, false)
134 .start_delay); 158 .start_delay);
135 } 159 }
136 160
137 TEST(AnimationTimingInputTest, TimingInputEndDelay) { 161 TEST_F(AnimationTimingInputTest, TimingInputEndDelay) {
138 V8TestingScope scope; 162 V8TestingScope scope;
139 bool ignored_success; 163 bool ignored_success;
140 EXPECT_EQ(10, ApplyTimingInputNumber(scope.GetIsolate(), "endDelay", 10000, 164 EXPECT_EQ(10, ApplyTimingInputNumber(scope.GetIsolate(), "endDelay", 10000,
141 ignored_success) 165 ignored_success)
142 .end_delay); 166 .end_delay);
143 EXPECT_EQ(-2.5, ApplyTimingInputNumber(scope.GetIsolate(), "endDelay", -2500, 167 EXPECT_EQ(-2.5, ApplyTimingInputNumber(scope.GetIsolate(), "endDelay", -2500,
144 ignored_success) 168 ignored_success)
145 .end_delay); 169 .end_delay);
146 } 170 }
147 171
148 TEST(AnimationTimingInputTest, TimingInputFillMode) { 172 TEST_F(AnimationTimingInputTest, TimingInputFillMode) {
149 V8TestingScope scope; 173 V8TestingScope scope;
150 Timing::FillMode default_fill_mode = Timing::FillMode::AUTO; 174 Timing::FillMode default_fill_mode = Timing::FillMode::AUTO;
151 bool ignored_success; 175 bool ignored_success;
152 176
153 EXPECT_EQ(Timing::FillMode::AUTO, 177 EXPECT_EQ(Timing::FillMode::AUTO,
154 ApplyTimingInputString(scope.GetIsolate(), "fill", "auto", 178 ApplyTimingInputString(scope.GetIsolate(), "fill", "auto",
155 ignored_success) 179 ignored_success)
156 .fill_mode); 180 .fill_mode);
157 EXPECT_EQ(Timing::FillMode::FORWARDS, 181 EXPECT_EQ(Timing::FillMode::FORWARDS,
158 ApplyTimingInputString(scope.GetIsolate(), "fill", "forwards", 182 ApplyTimingInputString(scope.GetIsolate(), "fill", "forwards",
(...skipping 18 matching lines...) Expand all
177 EXPECT_EQ(default_fill_mode, 201 EXPECT_EQ(default_fill_mode,
178 ApplyTimingInputString(scope.GetIsolate(), "fill", 202 ApplyTimingInputString(scope.GetIsolate(), "fill",
179 "backwardsandforwards", ignored_success) 203 "backwardsandforwards", ignored_success)
180 .fill_mode); 204 .fill_mode);
181 EXPECT_EQ( 205 EXPECT_EQ(
182 default_fill_mode, 206 default_fill_mode,
183 ApplyTimingInputNumber(scope.GetIsolate(), "fill", 2, ignored_success) 207 ApplyTimingInputNumber(scope.GetIsolate(), "fill", 2, ignored_success)
184 .fill_mode); 208 .fill_mode);
185 } 209 }
186 210
187 TEST(AnimationTimingInputTest, TimingInputIterationStart) { 211 TEST_F(AnimationTimingInputTest, TimingInputIterationStart) {
188 V8TestingScope scope; 212 V8TestingScope scope;
189 bool success; 213 bool success;
190 EXPECT_EQ(1.1, ApplyTimingInputNumber(scope.GetIsolate(), "iterationStart", 214 EXPECT_EQ(1.1, ApplyTimingInputNumber(scope.GetIsolate(), "iterationStart",
191 1.1, success) 215 1.1, success)
192 .iteration_start); 216 .iteration_start);
193 EXPECT_TRUE(success); 217 EXPECT_TRUE(success);
194 218
195 ApplyTimingInputNumber(scope.GetIsolate(), "iterationStart", -1, success); 219 ApplyTimingInputNumber(scope.GetIsolate(), "iterationStart", -1, success);
196 EXPECT_FALSE(success); 220 EXPECT_FALSE(success);
197 221
198 ApplyTimingInputString(scope.GetIsolate(), "iterationStart", "Infinity", 222 ApplyTimingInputString(scope.GetIsolate(), "iterationStart", "Infinity",
199 success); 223 success);
200 EXPECT_FALSE(success); 224 EXPECT_FALSE(success);
201 225
202 ApplyTimingInputString(scope.GetIsolate(), "iterationStart", "-Infinity", 226 ApplyTimingInputString(scope.GetIsolate(), "iterationStart", "-Infinity",
203 success); 227 success);
204 EXPECT_FALSE(success); 228 EXPECT_FALSE(success);
205 229
206 ApplyTimingInputString(scope.GetIsolate(), "iterationStart", "NaN", success); 230 ApplyTimingInputString(scope.GetIsolate(), "iterationStart", "NaN", success);
207 EXPECT_FALSE(success); 231 EXPECT_FALSE(success);
208 232
209 ApplyTimingInputString(scope.GetIsolate(), "iterationStart", "rubbish", 233 ApplyTimingInputString(scope.GetIsolate(), "iterationStart", "rubbish",
210 success); 234 success);
211 EXPECT_FALSE(success); 235 EXPECT_FALSE(success);
212 } 236 }
213 237
214 TEST(AnimationTimingInputTest, TimingInputIterationCount) { 238 TEST_F(AnimationTimingInputTest, TimingInputIterationCount) {
215 V8TestingScope scope; 239 V8TestingScope scope;
216 bool success; 240 bool success;
217 EXPECT_EQ(2.1, ApplyTimingInputNumber(scope.GetIsolate(), "iterations", 2.1, 241 EXPECT_EQ(2.1, ApplyTimingInputNumber(scope.GetIsolate(), "iterations", 2.1,
218 success) 242 success)
219 .iteration_count); 243 .iteration_count);
220 EXPECT_TRUE(success); 244 EXPECT_TRUE(success);
221 245
222 Timing timing = ApplyTimingInputString(scope.GetIsolate(), "iterations", 246 Timing timing = ApplyTimingInputString(scope.GetIsolate(), "iterations",
223 "Infinity", success); 247 "Infinity", success);
224 EXPECT_TRUE(success); 248 EXPECT_TRUE(success);
225 EXPECT_TRUE(std::isinf(timing.iteration_count)); 249 EXPECT_TRUE(std::isinf(timing.iteration_count));
226 EXPECT_GT(timing.iteration_count, 0); 250 EXPECT_GT(timing.iteration_count, 0);
227 251
228 ApplyTimingInputNumber(scope.GetIsolate(), "iterations", -1, success); 252 ApplyTimingInputNumber(scope.GetIsolate(), "iterations", -1, success);
229 EXPECT_FALSE(success); 253 EXPECT_FALSE(success);
230 254
231 ApplyTimingInputString(scope.GetIsolate(), "iterations", "-Infinity", 255 ApplyTimingInputString(scope.GetIsolate(), "iterations", "-Infinity",
232 success); 256 success);
233 EXPECT_FALSE(success); 257 EXPECT_FALSE(success);
234 258
235 ApplyTimingInputString(scope.GetIsolate(), "iterations", "NaN", success); 259 ApplyTimingInputString(scope.GetIsolate(), "iterations", "NaN", success);
236 EXPECT_FALSE(success); 260 EXPECT_FALSE(success);
237 261
238 ApplyTimingInputString(scope.GetIsolate(), "iterations", "rubbish", success); 262 ApplyTimingInputString(scope.GetIsolate(), "iterations", "rubbish", success);
239 EXPECT_FALSE(success); 263 EXPECT_FALSE(success);
240 } 264 }
241 265
242 TEST(AnimationTimingInputTest, TimingInputIterationDuration) { 266 TEST_F(AnimationTimingInputTest, TimingInputIterationDuration) {
243 V8TestingScope scope; 267 V8TestingScope scope;
244 bool success; 268 bool success;
245 EXPECT_EQ( 269 EXPECT_EQ(
246 1.1, ApplyTimingInputNumber(scope.GetIsolate(), "duration", 1100, success) 270 1.1, ApplyTimingInputNumber(scope.GetIsolate(), "duration", 1100, success)
247 .iteration_duration); 271 .iteration_duration);
248 EXPECT_TRUE(success); 272 EXPECT_TRUE(success);
249 273
250 Timing timing = 274 Timing timing =
251 ApplyTimingInputNumber(scope.GetIsolate(), "duration", 275 ApplyTimingInputNumber(scope.GetIsolate(), "duration",
252 std::numeric_limits<double>::infinity(), success); 276 std::numeric_limits<double>::infinity(), success);
(...skipping 15 matching lines...) Expand all
268 ApplyTimingInputString(scope.GetIsolate(), "duration", "-Infinity", success); 292 ApplyTimingInputString(scope.GetIsolate(), "duration", "-Infinity", success);
269 EXPECT_FALSE(success); 293 EXPECT_FALSE(success);
270 294
271 ApplyTimingInputString(scope.GetIsolate(), "duration", "NaN", success); 295 ApplyTimingInputString(scope.GetIsolate(), "duration", "NaN", success);
272 EXPECT_FALSE(success); 296 EXPECT_FALSE(success);
273 297
274 ApplyTimingInputString(scope.GetIsolate(), "duration", "rubbish", success); 298 ApplyTimingInputString(scope.GetIsolate(), "duration", "rubbish", success);
275 EXPECT_FALSE(success); 299 EXPECT_FALSE(success);
276 } 300 }
277 301
278 TEST(AnimationTimingInputTest, TimingInputDirection) { 302 TEST_F(AnimationTimingInputTest, TimingInputDirection) {
279 V8TestingScope scope; 303 V8TestingScope scope;
280 Timing::PlaybackDirection default_playback_direction = 304 Timing::PlaybackDirection default_playback_direction =
281 Timing::PlaybackDirection::NORMAL; 305 Timing::PlaybackDirection::NORMAL;
282 bool ignored_success; 306 bool ignored_success;
283 307
284 EXPECT_EQ(Timing::PlaybackDirection::NORMAL, 308 EXPECT_EQ(Timing::PlaybackDirection::NORMAL,
285 ApplyTimingInputString(scope.GetIsolate(), "direction", "normal", 309 ApplyTimingInputString(scope.GetIsolate(), "direction", "normal",
286 ignored_success) 310 ignored_success)
287 .direction); 311 .direction);
288 EXPECT_EQ(Timing::PlaybackDirection::REVERSE, 312 EXPECT_EQ(Timing::PlaybackDirection::REVERSE,
(...skipping 11 matching lines...) Expand all
300 EXPECT_EQ(default_playback_direction, 324 EXPECT_EQ(default_playback_direction,
301 ApplyTimingInputString(scope.GetIsolate(), "direction", "rubbish", 325 ApplyTimingInputString(scope.GetIsolate(), "direction", "rubbish",
302 ignored_success) 326 ignored_success)
303 .direction); 327 .direction);
304 EXPECT_EQ(default_playback_direction, 328 EXPECT_EQ(default_playback_direction,
305 ApplyTimingInputNumber(scope.GetIsolate(), "direction", 2, 329 ApplyTimingInputNumber(scope.GetIsolate(), "direction", 2,
306 ignored_success) 330 ignored_success)
307 .direction); 331 .direction);
308 } 332 }
309 333
310 TEST(AnimationTimingInputTest, TimingInputTimingFunction) { 334 TEST_F(AnimationTimingInputTest, TimingInputTimingFunction) {
311 V8TestingScope scope; 335 V8TestingScope scope;
312 const RefPtr<TimingFunction> default_timing_function = 336 const RefPtr<TimingFunction> default_timing_function =
313 LinearTimingFunction::Shared(); 337 LinearTimingFunction::Shared();
314 bool success; 338 bool success;
315 339
316 EXPECT_EQ( 340 EXPECT_EQ(
317 *CubicBezierTimingFunction::Preset( 341 *CubicBezierTimingFunction::Preset(
318 CubicBezierTimingFunction::EaseType::EASE), 342 CubicBezierTimingFunction::EaseType::EASE),
319 *ApplyTimingInputString(scope.GetIsolate(), "easing", "ease", success) 343 *ApplyTimingInputString(scope.GetIsolate(), "easing", "ease", success)
320 .timing_function); 344 .timing_function);
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
402 success); 426 success);
403 EXPECT_FALSE(success); 427 EXPECT_FALSE(success);
404 ApplyTimingInputString(scope.GetIsolate(), "easing", "rubbish", success); 428 ApplyTimingInputString(scope.GetIsolate(), "easing", "rubbish", success);
405 EXPECT_FALSE(success); 429 EXPECT_FALSE(success);
406 ApplyTimingInputNumber(scope.GetIsolate(), "easing", 2, success); 430 ApplyTimingInputNumber(scope.GetIsolate(), "easing", 2, success);
407 EXPECT_FALSE(success); 431 EXPECT_FALSE(success);
408 ApplyTimingInputString(scope.GetIsolate(), "easing", "initial", success); 432 ApplyTimingInputString(scope.GetIsolate(), "easing", "initial", success);
409 EXPECT_FALSE(success); 433 EXPECT_FALSE(success);
410 } 434 }
411 435
412 TEST(AnimationTimingInputTest, TimingInputEmpty) { 436 TEST_F(AnimationTimingInputTest, TimingInputEmpty) {
413 DummyExceptionStateForTesting exception_state; 437 DummyExceptionStateForTesting exception_state;
414 Timing control_timing; 438 Timing control_timing;
415 Timing updated_timing; 439 Timing updated_timing;
416 bool success = TimingInput::Convert(KeyframeEffectOptions(), updated_timing, 440 bool success = TimingInput::Convert(KeyframeEffectOptions(), updated_timing,
417 nullptr, exception_state); 441 nullptr, exception_state);
418 EXPECT_TRUE(success); 442 EXPECT_TRUE(success);
419 EXPECT_FALSE(exception_state.HadException()); 443 EXPECT_FALSE(exception_state.HadException());
420 444
421 EXPECT_EQ(control_timing.start_delay, updated_timing.start_delay); 445 EXPECT_EQ(control_timing.start_delay, updated_timing.start_delay);
422 EXPECT_EQ(control_timing.fill_mode, updated_timing.fill_mode); 446 EXPECT_EQ(control_timing.fill_mode, updated_timing.fill_mode);
423 EXPECT_EQ(control_timing.iteration_start, updated_timing.iteration_start); 447 EXPECT_EQ(control_timing.iteration_start, updated_timing.iteration_start);
424 EXPECT_EQ(control_timing.iteration_count, updated_timing.iteration_count); 448 EXPECT_EQ(control_timing.iteration_count, updated_timing.iteration_count);
425 EXPECT_TRUE(std::isnan(updated_timing.iteration_duration)); 449 EXPECT_TRUE(std::isnan(updated_timing.iteration_duration));
426 EXPECT_EQ(control_timing.playback_rate, updated_timing.playback_rate); 450 EXPECT_EQ(control_timing.playback_rate, updated_timing.playback_rate);
427 EXPECT_EQ(control_timing.direction, updated_timing.direction); 451 EXPECT_EQ(control_timing.direction, updated_timing.direction);
428 EXPECT_EQ(*control_timing.timing_function, *updated_timing.timing_function); 452 EXPECT_EQ(*control_timing.timing_function, *updated_timing.timing_function);
429 } 453 }
430 454
431 TEST(AnimationTimingInputTest, TimingInputEmptyKeyframeAnimationOptions) { 455 TEST_F(AnimationTimingInputTest, TimingInputEmptyKeyframeAnimationOptions) {
432 DummyExceptionStateForTesting exception_state; 456 DummyExceptionStateForTesting exception_state;
433 Timing control_timing; 457 Timing control_timing;
434 Timing updated_timing; 458 Timing updated_timing;
435 bool success = TimingInput::Convert(KeyframeAnimationOptions(), 459 bool success = TimingInput::Convert(KeyframeAnimationOptions(),
436 updated_timing, nullptr, exception_state); 460 updated_timing, nullptr, exception_state);
437 EXPECT_TRUE(success); 461 EXPECT_TRUE(success);
438 EXPECT_FALSE(exception_state.HadException()); 462 EXPECT_FALSE(exception_state.HadException());
439 463
440 EXPECT_EQ(control_timing.start_delay, updated_timing.start_delay); 464 EXPECT_EQ(control_timing.start_delay, updated_timing.start_delay);
441 EXPECT_EQ(control_timing.fill_mode, updated_timing.fill_mode); 465 EXPECT_EQ(control_timing.fill_mode, updated_timing.fill_mode);
442 EXPECT_EQ(control_timing.iteration_start, updated_timing.iteration_start); 466 EXPECT_EQ(control_timing.iteration_start, updated_timing.iteration_start);
443 EXPECT_EQ(control_timing.iteration_count, updated_timing.iteration_count); 467 EXPECT_EQ(control_timing.iteration_count, updated_timing.iteration_count);
444 EXPECT_TRUE(std::isnan(updated_timing.iteration_duration)); 468 EXPECT_TRUE(std::isnan(updated_timing.iteration_duration));
445 EXPECT_EQ(control_timing.playback_rate, updated_timing.playback_rate); 469 EXPECT_EQ(control_timing.playback_rate, updated_timing.playback_rate);
446 EXPECT_EQ(control_timing.direction, updated_timing.direction); 470 EXPECT_EQ(control_timing.direction, updated_timing.direction);
447 EXPECT_EQ(*control_timing.timing_function, *updated_timing.timing_function); 471 EXPECT_EQ(*control_timing.timing_function, *updated_timing.timing_function);
448 } 472 }
449 473
450 } // namespace blink 474 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698