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

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

Issue 2775143002: Implement frames() timing function (Closed)
Patch Set: 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 303 matching lines...) Expand 10 before | Expand all | Expand 10 after
314 *applyTimingInputString(scope.isolate(), "easing", 314 *applyTimingInputString(scope.isolate(), "easing",
315 "steps(5, middle)", success) 315 "steps(5, middle)", success)
316 .timingFunction); 316 .timingFunction);
317 EXPECT_TRUE(success); 317 EXPECT_TRUE(success);
318 EXPECT_EQ( 318 EXPECT_EQ(
319 *StepsTimingFunction::create(5, StepsTimingFunction::StepPosition::END), 319 *StepsTimingFunction::create(5, StepsTimingFunction::StepPosition::END),
320 *applyTimingInputString(scope.isolate(), "easing", "steps(5, end)", 320 *applyTimingInputString(scope.isolate(), "easing", "steps(5, end)",
321 success) 321 success)
322 .timingFunction); 322 .timingFunction);
323 EXPECT_TRUE(success); 323 EXPECT_TRUE(success);
324 EXPECT_EQ(
325 *FramesTimingFunction::create(5),
326 *applyTimingInputString(scope.isolate(), "easing", "frames(5)", success)
327 .timingFunction);
328 EXPECT_TRUE(success);
324 329
325 applyTimingInputString(scope.isolate(), "easing", "", success); 330 applyTimingInputString(scope.isolate(), "easing", "", success);
326 EXPECT_FALSE(success); 331 EXPECT_FALSE(success);
327 applyTimingInputString(scope.isolate(), "easing", "steps(5.6, end)", success); 332 applyTimingInputString(scope.isolate(), "easing", "steps(5.6, end)", success);
328 EXPECT_FALSE(success); 333 EXPECT_FALSE(success);
329 applyTimingInputString(scope.isolate(), "easing", 334 applyTimingInputString(scope.isolate(), "easing",
330 "cubic-bezier(2, 2, 0.3, 0.3)", success); 335 "cubic-bezier(2, 2, 0.3, 0.3)", success);
331 EXPECT_FALSE(success); 336 EXPECT_FALSE(success);
337 applyTimingInputString(scope.isolate(), "easing", "frames(1)", success);
338 EXPECT_FALSE(success);
339 applyTimingInputString(scope.isolate(), "easing", "frames(3, start)",
340 success);
341 EXPECT_FALSE(success);
332 applyTimingInputString(scope.isolate(), "easing", "rubbish", success); 342 applyTimingInputString(scope.isolate(), "easing", "rubbish", success);
333 EXPECT_FALSE(success); 343 EXPECT_FALSE(success);
334 applyTimingInputNumber(scope.isolate(), "easing", 2, success); 344 applyTimingInputNumber(scope.isolate(), "easing", 2, success);
335 EXPECT_FALSE(success); 345 EXPECT_FALSE(success);
336 applyTimingInputString(scope.isolate(), "easing", "initial", success); 346 applyTimingInputString(scope.isolate(), "easing", "initial", success);
337 EXPECT_FALSE(success); 347 EXPECT_FALSE(success);
338 } 348 }
339 349
340 TEST(AnimationTimingInputTest, TimingInputEmpty) { 350 TEST(AnimationTimingInputTest, TimingInputEmpty) {
341 DummyExceptionStateForTesting exceptionState; 351 DummyExceptionStateForTesting exceptionState;
342 Timing controlTiming; 352 Timing controlTiming;
343 Timing updatedTiming; 353 Timing updatedTiming;
344 bool success = TimingInput::convert(KeyframeEffectOptions(), updatedTiming, 354 bool success = TimingInput::convert(KeyframeEffectOptions(), updatedTiming,
345 nullptr, exceptionState); 355 nullptr, exceptionState);
346 EXPECT_TRUE(success); 356 EXPECT_TRUE(success);
347 EXPECT_FALSE(exceptionState.hadException()); 357 EXPECT_FALSE(exceptionState.hadException());
348 358
349 EXPECT_EQ(controlTiming.startDelay, updatedTiming.startDelay); 359 EXPECT_EQ(controlTiming.startDelay, updatedTiming.startDelay);
350 EXPECT_EQ(controlTiming.fillMode, updatedTiming.fillMode); 360 EXPECT_EQ(controlTiming.fillMode, updatedTiming.fillMode);
351 EXPECT_EQ(controlTiming.iterationStart, updatedTiming.iterationStart); 361 EXPECT_EQ(controlTiming.iterationStart, updatedTiming.iterationStart);
352 EXPECT_EQ(controlTiming.iterationCount, updatedTiming.iterationCount); 362 EXPECT_EQ(controlTiming.iterationCount, updatedTiming.iterationCount);
353 EXPECT_TRUE(std::isnan(updatedTiming.iterationDuration)); 363 EXPECT_TRUE(std::isnan(updatedTiming.iterationDuration));
354 EXPECT_EQ(controlTiming.playbackRate, updatedTiming.playbackRate); 364 EXPECT_EQ(controlTiming.playbackRate, updatedTiming.playbackRate);
355 EXPECT_EQ(controlTiming.direction, updatedTiming.direction); 365 EXPECT_EQ(controlTiming.direction, updatedTiming.direction);
356 EXPECT_EQ(*controlTiming.timingFunction, *updatedTiming.timingFunction); 366 EXPECT_EQ(*controlTiming.timingFunction, *updatedTiming.timingFunction);
357 } 367 }
358 368
359 } // namespace blink 369 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698