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

Unified Diff: third_party/WebKit/LayoutTests/imported/web-platform-tests/web-animations/keyframe-effect/getComputedTiming.html

Issue 1866333004: Import web-platform-tests@5a8700479d98852455bee6117558897867eb278a (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@wpt-sync
Patch Set: Add Failure option for two TestExpectations entries Created 4 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/imported/web-platform-tests/web-animations/keyframe-effect/getComputedTiming.html
diff --git a/third_party/WebKit/LayoutTests/imported/web-platform-tests/web-animations/keyframe-effect/getComputedTiming.html b/third_party/WebKit/LayoutTests/imported/web-platform-tests/web-animations/keyframe-effect/getComputedTiming.html
new file mode 100644
index 0000000000000000000000000000000000000000..5f4c602b04aea6afebe1b0779cd58eca17d952d3
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/imported/web-platform-tests/web-animations/keyframe-effect/getComputedTiming.html
@@ -0,0 +1,227 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>KeyframeEffectReadOnly getComputedTiming() tests</title>
+<link rel="help" href="https://w3c.github.io/web-animations/#dom-animationeffectreadonly-getcomputedtiming">
+<link rel="author" title="Boris Chiou" href="mailto:boris.chiou@gmail.com">
+<script src="../../../../resources/testharness.js"></script>
+<script src="../../../../resources/testharnessreport.js"></script>
+<script src="../testcommon.js"></script>
+<body>
+<div id="log"></div>
+<div id="target"></div>
+<script>
+"use strict";
+
+var target = document.getElementById("target");
+
+test(function(t) {
+ var effect = new KeyframeEffectReadOnly(target,
+ { left: ["10px", "20px"] });
+
+ var ct = effect.getComputedTiming();
+ assert_equals(ct.delay, 0, "computed delay");
+ assert_equals(ct.fill, "none", "computed fill");
+ assert_equals(ct.iterations, 1.0, "computed iterations");
+ assert_equals(ct.duration, 0, "computed duration");
+ assert_equals(ct.direction, "normal", "computed direction");
+}, "values of getComputedTiming() when a KeyframeEffectReadOnly is " +
+ "constructed without any KeyframeEffectOptions object");
+
+var gGetComputedTimingTests = [
+ { desc: "an empty KeyframeEffectOptions object",
+ input: { },
+ expected: { } },
+ { desc: "a normal KeyframeEffectOptions object",
+ input: { delay: 1000,
+ fill: "auto",
+ iterations: 5.5,
+ duration: "auto",
+ direction: "alternate" },
+ expected: { delay: 1000,
+ fill: "none",
+ iterations: 5.5,
+ duration: 0,
+ direction: "alternate" } },
+ { desc: "a double value",
+ input: 3000,
+ timing: { duration: 3000 },
+ expected: { delay: 0,
+ fill: "none",
+ iterations: 1,
+ duration: 3000,
+ direction: "normal" } },
+ { desc: "+Infinity",
+ input: Infinity,
+ expected: { duration: Infinity } },
+ { desc: "an Infinity duration",
+ input: { duration: Infinity },
+ expected: { duration: Infinity } },
+ { desc: "an auto duration",
+ input: { duration: "auto" },
+ expected: { duration: 0 } },
+ { desc: "an Infinity iterations",
+ input: { iterations: Infinity },
+ expected: { iterations: Infinity } },
+ { desc: "a negative Infinity iterations",
+ input: { iterations: -Infinity},
+ expected: { iterations: 1 } },
+ { desc: "a NaN iterations",
+ input: { iterations: NaN },
+ expected: { iterations: 1 } },
+ { desc: "a negative iterations",
+ input: { iterations: -1 },
+ expected: { iterations: 1 } },
+ { desc: "an auto fill",
+ input: { fill: "auto" },
+ expected: { fill: "none" } },
+ { desc: "a forwards fill",
+ input: { fill: "forwards" },
+ expected: { fill: "forwards" } }
+];
+
+gGetComputedTimingTests.forEach(function(stest) {
+ test(function(t) {
+ var effect = new KeyframeEffectReadOnly(target,
+ { left: ["10px", "20px"] },
+ stest.input);
+
+ // Helper function to provide default expected values when the test does
+ // not supply them.
+ var expected = function(field, defaultValue) {
+ return field in stest.expected ? stest.expected[field] : defaultValue;
+ };
+
+ var ct = effect.getComputedTiming();
+ assert_equals(ct.delay, expected("delay", 0),
+ "computed delay");
+ assert_equals(ct.fill, expected("fill", "none"),
+ "computed fill");
+ assert_equals(ct.iterations, expected("iterations", 1),
+ "computed iterations");
+ assert_equals(ct.duration, expected("duration", 0),
+ "computed duration");
+ assert_equals(ct.direction, expected("direction", "normal"),
+ "computed direction");
+
+ }, "values of getComputedTiming() when a KeyframeEffectReadOnly is " +
+ "constructed by " + stest.desc);
+});
+
+var gActiveDurationTests = [
+ { desc: "an empty KeyframeEffectOptions object",
+ input: { },
+ expected: 0 },
+ { desc: "a non-zero duration and default iteration count",
+ input: { duration: 1000 },
+ expected: 1000 },
+ { desc: "a non-zero duration and integral iteration count",
+ input: { duration: 1000, iterations: 7 },
+ expected: 7000 },
+ { desc: "a non-zero duration and fractional iteration count",
+ input: { duration: 1000, iterations: 2.5 },
+ expected: 2500 },
+ { desc: "an non-zero duration and infinite iteration count",
+ input: { duration: 1000, iterations: Infinity },
+ expected: Infinity },
+ { desc: "an non-zero duration and zero iteration count",
+ input: { duration: 1000, iterations: 0 },
+ expected: 0 },
+ { desc: "a zero duration and default iteration count",
+ input: { duration: 0 },
+ expected: 0 },
+ { desc: "a zero duration and fractional iteration count",
+ input: { duration: 0, iterations: 2.5 },
+ expected: 0 },
+ { desc: "a zero duration and infinite iteration count",
+ input: { duration: 0, iterations: Infinity },
+ expected: 0 },
+ { desc: "a zero duration and zero iteration count",
+ input: { duration: 0, iterations: 0 },
+ expected: 0 },
+ { desc: "an infinite duration and default iteration count",
+ input: { duration: Infinity },
+ expected: Infinity },
+ { desc: "an infinite duration and zero iteration count",
+ input: { duration: Infinity, iterations: 0 },
+ expected: 0 },
+ { desc: "an infinite duration and fractional iteration count",
+ input: { duration: Infinity, iterations: 2.5 },
+ expected: Infinity },
+ { desc: "an infinite duration and infinite iteration count",
+ input: { duration: Infinity, iterations: Infinity },
+ expected: Infinity },
+ { desc: "an infinite duration and zero iteration count",
+ input: { duration: Infinity, iterations: 0 },
+ expected: 0 },
+ { desc: "a non-zero duration and invalid iteration count",
+ input: { duration: 1000, iterations: "cabbage" },
+ expected: 1000 }
+];
+
+gActiveDurationTests.forEach(function(stest) {
+ test(function(t) {
+ var effect = new KeyframeEffectReadOnly(target,
+ { left: ["10px", "20px"] },
+ stest.input);
+
+ assert_equals(effect.getComputedTiming().activeDuration,
+ stest.expected);
+
+ }, "getComputedTiming().activeDuration for " + stest.desc);
+});
+
+var gEndTimeTests = [
+ { desc: "an empty KeyframeEffectOptions object",
+ input: { },
+ expected: 0 },
+ { desc: "a non-zero duration and default iteration count",
+ input: { duration: 1000 },
+ expected: 1000 },
+ { desc: "a non-zero duration and non-default iteration count",
+ input: { duration: 1000, iterations: 2.5 },
+ expected: 2500 },
+ { desc: "a non-zero duration and non-zero delay",
+ input: { duration: 1000, delay: 1500 },
+ expected: 2500 },
+ { desc: "a non-zero duration, non-zero delay and non-default iteration",
+ input: { duration: 1000, delay: 1500, iterations: 2 },
+ expected: 3500 },
+ { desc: "an infinite iteration count",
+ input: { duration: 1000, iterations: Infinity },
+ expected: Infinity },
+ { desc: "an infinite duration",
+ input: { duration: Infinity, iterations: 10 },
+ expected: Infinity },
+ { desc: "an infinite duration and delay",
+ input: { duration: Infinity, iterations: 10, delay: 1000 },
+ expected: Infinity },
+ { desc: "an infinite duration and negative delay",
+ input: { duration: Infinity, iterations: 10, delay: -1000 },
+ expected: Infinity },
+ { desc: "an non-zero duration and negative delay",
+ input: { duration: 1000, iterations: 2, delay: -1000 },
+ expected: 1000 },
+ { desc: "an non-zero duration and negative delay greater than active " +
+ "duration",
+ input: { duration: 1000, iterations: 2, delay: -3000 },
+ expected: -1000 },
+ { desc: "a zero duration and negative delay",
+ input: { duration: 0, iterations: 2, delay: -1000 },
+ expected: -1000 }
+];
+
+gEndTimeTests.forEach(function(stest) {
+ test(function(t) {
+ var effect = new KeyframeEffectReadOnly(target,
+ { left: ["10px", "20px"] },
+ stest.input);
+
+ assert_equals(effect.getComputedTiming().endTime,
+ stest.expected);
+
+ }, "getComputedTiming().endTime for " + stest.desc);
+});
+
+done();
+</script>
+</body>

Powered by Google App Engine
This is Rietveld 408576698