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

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

Issue 2775143002: Implement frames() timing function (Closed)
Patch Set: Fix behaviour outside input range [0,1] Created 3 years, 8 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"
(...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after
322 *ApplyTimingInputString(scope.GetIsolate(), "easing", 322 *ApplyTimingInputString(scope.GetIsolate(), "easing",
323 "steps(5, middle)", success) 323 "steps(5, middle)", success)
324 .timing_function); 324 .timing_function);
325 EXPECT_TRUE(success); 325 EXPECT_TRUE(success);
326 EXPECT_EQ( 326 EXPECT_EQ(
327 *StepsTimingFunction::Create(5, StepsTimingFunction::StepPosition::END), 327 *StepsTimingFunction::Create(5, StepsTimingFunction::StepPosition::END),
328 *ApplyTimingInputString(scope.GetIsolate(), "easing", "steps(5, end)", 328 *ApplyTimingInputString(scope.GetIsolate(), "easing", "steps(5, end)",
329 success) 329 success)
330 .timing_function); 330 .timing_function);
331 EXPECT_TRUE(success); 331 EXPECT_TRUE(success);
332 EXPECT_EQ(*FramesTimingFunction::Create(5),
333 *ApplyTimingInputString(scope.GetIsolate(), "easing", "frames(5)",
334 success)
335 .timing_function);
336 EXPECT_TRUE(success);
332 337
333 ApplyTimingInputString(scope.GetIsolate(), "easing", "", success); 338 ApplyTimingInputString(scope.GetIsolate(), "easing", "", success);
334 EXPECT_FALSE(success); 339 EXPECT_FALSE(success);
335 ApplyTimingInputString(scope.GetIsolate(), "easing", "steps(5.6, end)", 340 ApplyTimingInputString(scope.GetIsolate(), "easing", "steps(5.6, end)",
336 success); 341 success);
337 EXPECT_FALSE(success); 342 EXPECT_FALSE(success);
338 ApplyTimingInputString(scope.GetIsolate(), "easing", 343 ApplyTimingInputString(scope.GetIsolate(), "easing",
339 "cubic-bezier(2, 2, 0.3, 0.3)", success); 344 "cubic-bezier(2, 2, 0.3, 0.3)", success);
340 EXPECT_FALSE(success); 345 EXPECT_FALSE(success);
346 ApplyTimingInputString(scope.GetIsolate(), "easing", "frames(1)", success);
347 EXPECT_FALSE(success);
348 ApplyTimingInputString(scope.GetIsolate(), "easing", "frames(3, start)",
349 success);
350 EXPECT_FALSE(success);
341 ApplyTimingInputString(scope.GetIsolate(), "easing", "rubbish", success); 351 ApplyTimingInputString(scope.GetIsolate(), "easing", "rubbish", success);
342 EXPECT_FALSE(success); 352 EXPECT_FALSE(success);
343 ApplyTimingInputNumber(scope.GetIsolate(), "easing", 2, success); 353 ApplyTimingInputNumber(scope.GetIsolate(), "easing", 2, success);
344 EXPECT_FALSE(success); 354 EXPECT_FALSE(success);
345 ApplyTimingInputString(scope.GetIsolate(), "easing", "initial", success); 355 ApplyTimingInputString(scope.GetIsolate(), "easing", "initial", success);
346 EXPECT_FALSE(success); 356 EXPECT_FALSE(success);
347 } 357 }
348 358
349 TEST(AnimationTimingInputTest, TimingInputEmpty) { 359 TEST(AnimationTimingInputTest, TimingInputEmpty) {
350 DummyExceptionStateForTesting exception_state; 360 DummyExceptionStateForTesting exception_state;
351 Timing control_timing; 361 Timing control_timing;
352 Timing updated_timing; 362 Timing updated_timing;
353 bool success = TimingInput::Convert(KeyframeEffectOptions(), updated_timing, 363 bool success = TimingInput::Convert(KeyframeEffectOptions(), updated_timing,
354 nullptr, exception_state); 364 nullptr, exception_state);
355 EXPECT_TRUE(success); 365 EXPECT_TRUE(success);
356 EXPECT_FALSE(exception_state.HadException()); 366 EXPECT_FALSE(exception_state.HadException());
357 367
358 EXPECT_EQ(control_timing.start_delay, updated_timing.start_delay); 368 EXPECT_EQ(control_timing.start_delay, updated_timing.start_delay);
359 EXPECT_EQ(control_timing.fill_mode, updated_timing.fill_mode); 369 EXPECT_EQ(control_timing.fill_mode, updated_timing.fill_mode);
360 EXPECT_EQ(control_timing.iteration_start, updated_timing.iteration_start); 370 EXPECT_EQ(control_timing.iteration_start, updated_timing.iteration_start);
361 EXPECT_EQ(control_timing.iteration_count, updated_timing.iteration_count); 371 EXPECT_EQ(control_timing.iteration_count, updated_timing.iteration_count);
362 EXPECT_TRUE(std::isnan(updated_timing.iteration_duration)); 372 EXPECT_TRUE(std::isnan(updated_timing.iteration_duration));
363 EXPECT_EQ(control_timing.playback_rate, updated_timing.playback_rate); 373 EXPECT_EQ(control_timing.playback_rate, updated_timing.playback_rate);
364 EXPECT_EQ(control_timing.direction, updated_timing.direction); 374 EXPECT_EQ(control_timing.direction, updated_timing.direction);
365 EXPECT_EQ(*control_timing.timing_function, *updated_timing.timing_function); 375 EXPECT_EQ(*control_timing.timing_function, *updated_timing.timing_function);
366 } 376 }
367 377
368 } // namespace blink 378 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698