| Index: third_party/WebKit/LayoutTests/imported/wpt/web-animations/animation-model/animation-types/type-per-property.html
|
| diff --git a/third_party/WebKit/LayoutTests/imported/wpt/web-animations/animation-model/animation-types/type-per-property.html b/third_party/WebKit/LayoutTests/imported/wpt/web-animations/animation-model/animation-types/type-per-property.html
|
| deleted file mode 100644
|
| index 683b0093ac4929aec9a8d67b4f0d06b838ef5241..0000000000000000000000000000000000000000
|
| --- a/third_party/WebKit/LayoutTests/imported/wpt/web-animations/animation-model/animation-types/type-per-property.html
|
| +++ /dev/null
|
| @@ -1,569 +0,0 @@
|
| -<!DOCTYPE html>
|
| -<meta charset=utf-8>
|
| -<title>Tests for animation types</title>
|
| -<link rel="help" href="https://w3c.github.io/web-animations/#animation-types">
|
| -<script src="/resources/testharness.js"></script>
|
| -<script src="/resources/testharnessreport.js"></script>
|
| -<script src="../../testcommon.js"></script>
|
| -<style>
|
| -html {
|
| - font-size: 10px;
|
| -}
|
| -</style>
|
| -<body>
|
| -<div id="log"></div>
|
| -<script>
|
| -"use strict";
|
| -
|
| -var gCSSProperties = {
|
| - "align-content": {
|
| - // https://drafts.csswg.org/css-align/#propdef-align-content
|
| - tests: [
|
| - discrete("flex-start", "flex-end")
|
| - ]
|
| - },
|
| - "align-items": {
|
| - // https://drafts.csswg.org/css-align/#propdef-align-items
|
| - tests: [
|
| - discrete("flex-start", "flex-end")
|
| - ]
|
| - },
|
| - "align-self": {
|
| - // https://drafts.csswg.org/css-align/#propdef-align-self
|
| - tests: [
|
| - discrete("flex-start", "flex-end")
|
| - ]
|
| - },
|
| - "clip-rule": {
|
| - // https://drafts.fxtf.org/css-masking-1/#propdef-clip-rule
|
| - tests: [
|
| - discrete("evenodd", "nonzero")
|
| - ]
|
| - },
|
| - "color-interpolation": {
|
| - // https://svgwg.org/svg2-draft/painting.html#ColorInterpolationProperty
|
| - tests: [
|
| - discrete("linearRGB", "auto")
|
| - ]
|
| - },
|
| - "color-interpolation-filters": {
|
| - // https://drafts.fxtf.org/filters-1/#propdef-color-interpolation-filters
|
| - tests: [
|
| - discrete("sRGB", "linearRGB")
|
| - ]
|
| - },
|
| - "dominant-baseline": {
|
| - // https://drafts.csswg.org/css-inline/#propdef-dominant-baseline
|
| - tests: [
|
| - discrete("ideographic", "alphabetic")
|
| - ]
|
| - },
|
| - "fill-rule": {
|
| - // https://svgwg.org/svg2-draft/painting.html#FillRuleProperty
|
| - tests: [
|
| - discrete("evenodd", "nonzero")
|
| - ]
|
| - },
|
| - "flex-basis": {
|
| - // https://drafts.csswg.org/css-flexbox/#propdef-flex-basis
|
| - tests: [
|
| - lengthPercentageOrCalc(),
|
| - discrete("auto", "10px")
|
| - ]
|
| - },
|
| - "flex-direction": {
|
| - // https://drafts.csswg.org/css-flexbox/#propdef-flex-direction
|
| - tests: [
|
| - discrete("row", "row-reverse")
|
| - ]
|
| - },
|
| - "flex-grow": {
|
| - // https://drafts.csswg.org/css-flexbox/#flex-grow-property
|
| - tests: [
|
| - positiveNumber()
|
| - ]
|
| - },
|
| - "flex-shrink": {
|
| - // https://drafts.csswg.org/css-flexbox/#propdef-flex-shrink
|
| - tests: [
|
| - positiveNumber()
|
| - ]
|
| - },
|
| - "flex-wrap": {
|
| - // https://drafts.csswg.org/css-flexbox/#propdef-flex-wrap
|
| - tests: [
|
| - discrete("nowrap", "wrap")
|
| - ]
|
| - },
|
| - "font-style": {
|
| - // https://drafts.csswg.org/css-fonts/#propdef-font-style
|
| - tests: [
|
| - discrete("italic", "oblique")
|
| - ]
|
| - },
|
| - "image-rendering": {
|
| - // https://drafts.csswg.org/css-images/#propdef-image-rendering
|
| - tests: [
|
| - discrete("optimizeQuality", "pixelated")
|
| - ]
|
| - },
|
| - "justify-content": {
|
| - // https://drafts.csswg.org/css-align/#propdef-justify-content
|
| - tests: [
|
| - discrete("baseline", "last-baseline")
|
| - ]
|
| - },
|
| - "justify-items": {
|
| - // https://drafts.csswg.org/css-align/#propdef-justify-items
|
| - tests: [
|
| - discrete("baseline", "last-baseline")
|
| - ]
|
| - },
|
| - "justify-self": {
|
| - // https://drafts.csswg.org/css-align/#propdef-justify-self
|
| - tests: [
|
| - discrete("baseline", "last-baseline")
|
| - ]
|
| - },
|
| - "mask-type": {
|
| - // https://drafts.fxtf.org/css-masking-1/#propdef-mask-type
|
| - tests: [
|
| - discrete("alpha", "luminance")
|
| - ]
|
| - },
|
| - "order": {
|
| - // https://drafts.csswg.org/css-flexbox/#propdef-order
|
| - tests: [
|
| - integer()
|
| - ]
|
| - },
|
| - "pointer-events": {
|
| - // https://svgwg.org/svg2-draft/interact.html#PointerEventsProperty
|
| - tests: [
|
| - discrete("fill", "none")
|
| - ]
|
| - },
|
| - "ruby-align": {
|
| - // https://drafts.csswg.org/css-ruby-1/#propdef-ruby-align
|
| - tests: [
|
| - discrete("start", "center")
|
| - ]
|
| - },
|
| - "ruby-position": {
|
| - // https://drafts.csswg.org/css-ruby-1/#propdef-ruby-position
|
| - tests: [
|
| - discrete("under", "over")
|
| - ],
|
| - tagName: "ruby"
|
| - },
|
| - "shape-rendering": {
|
| - // https://svgwg.org/svg2-draft/painting.html#ShapeRenderingProperty
|
| - tests: [
|
| - discrete("optimizeSpeed", "crispEdges")
|
| - ]
|
| - },
|
| - "stroke-linecap": {
|
| - // https://svgwg.org/svg2-draft/painting.html#StrokeLinecapProperty
|
| - tests: [
|
| - discrete("round", "square")
|
| - ]
|
| - },
|
| - "stroke-linejoin": {
|
| - // https://svgwg.org/svg2-draft/painting.html#StrokeLinejoinProperty
|
| - tests: [
|
| - discrete("round", "miter")
|
| - ],
|
| - tagName: "rect"
|
| - },
|
| - "text-anchor": {
|
| - // https://svgwg.org/svg2-draft/text.html#TextAnchorProperty
|
| - tests: [
|
| - discrete("middle", "end")
|
| - ]
|
| - },
|
| - "text-combine-upright": {
|
| - // https://drafts.csswg.org/css-writing-modes-3/#propdef-text-combine-upright
|
| - tests: [
|
| - discrete("all", "digits")
|
| - ]
|
| - },
|
| - "text-decoration-line": {
|
| - // https://drafts.csswg.org/css-text-decor-3/#propdef-text-decoration-line
|
| - tests: [
|
| - discrete("underline", "overline")
|
| - ]
|
| - },
|
| - "text-orientation": {
|
| - // https://drafts.csswg.org/css-writing-modes-3/#propdef-text-orientation
|
| - tests: [
|
| - discrete("upright", "sideways")
|
| - ]
|
| - },
|
| - "text-rendering": {
|
| - // https://svgwg.org/svg2-draft/painting.html#TextRenderingProperty
|
| - tests: [
|
| - discrete("optimizeSpeed", "optimizeLegibility")
|
| - ]
|
| - },
|
| - "vector-effect": {
|
| - // https://svgwg.org/svg2-draft/coords.html#VectorEffectProperty
|
| - tests: [
|
| - discrete("none", "non-scaling-stroke")
|
| - ]
|
| - },
|
| - "visibility": {
|
| - // https://drafts.csswg.org/css2/visufx.html#propdef-visibility
|
| - tests: [
|
| - visibility()
|
| - ]
|
| - },
|
| - "word-break": {
|
| - // https://drafts.csswg.org/css-text-3/#propdef-word-break
|
| - tests: [
|
| - discrete("keep-all", "break-all")
|
| - ]
|
| - },
|
| - "writing-mode": {
|
| - // https://drafts.csswg.org/css-writing-modes-3/#propdef-writing-mode
|
| - tests: [
|
| - discrete("vertical-rl", "sideways-rl")
|
| - ]
|
| - },
|
| -}
|
| -
|
| -for (var property in gCSSProperties) {
|
| - if (!isSupported(property)) {
|
| - continue;
|
| - }
|
| - var testData = gCSSProperties[property];
|
| - testData.tests.forEach(function(testFunction) {
|
| - testFunction(property, testData);
|
| - });
|
| -}
|
| -
|
| -function discrete(from, to) {
|
| - return function(property, options) {
|
| - test(function(t) {
|
| - var idlName = propertyToIDL(property);
|
| - var keyframes = {};
|
| - keyframes[idlName] = [from, to];
|
| - var target = createElement(t, options.tagName);
|
| - var animation = target.animate(keyframes,
|
| - { duration: 1000, fill: "both" });
|
| - testAnimationSamples(animation, idlName,
|
| - [{ time: 0, expected: from.toLowerCase() },
|
| - { time: 499, expected: from.toLowerCase() },
|
| - { time: 500, expected: to.toLowerCase() },
|
| - { time: 1000, expected: to.toLowerCase() }]);
|
| - }, property + " uses discrete animation when animating between '"
|
| - + from + "' and '" + to + "' with linear easing");
|
| -
|
| - test(function(t) {
|
| - // Easing: http://cubic-bezier.com/#.68,0,1,.01
|
| - // With this curve, we don't reach the 50% point until about 95% of
|
| - // the time has expired.
|
| - var idlName = propertyToIDL(property);
|
| - var keyframes = {};
|
| - keyframes[idlName] = [from, to];
|
| - var target = createElement(t, options.tagName);
|
| - var animation = target.animate(keyframes,
|
| - { duration: 1000, fill: "both",
|
| - easing: "cubic-bezier(0.68,0,1,0.01)" });
|
| - testAnimationSamples(animation, idlName,
|
| - [{ time: 0, expected: from.toLowerCase() },
|
| - { time: 940, expected: from.toLowerCase() },
|
| - { time: 960, expected: to.toLowerCase() }]);
|
| - }, property + " uses discrete animation when animating between '"
|
| - + from + "' and '" + to + "' with effect easing");
|
| -
|
| - test(function(t) {
|
| - // Easing: http://cubic-bezier.com/#.68,0,1,.01
|
| - // With this curve, we don't reach the 50% point until about 95% of
|
| - // the time has expired.
|
| - var idlName = propertyToIDL(property);
|
| - var keyframes = {};
|
| - keyframes[idlName] = [from, to];
|
| - keyframes.easing = "cubic-bezier(0.68,0,1,0.01)";
|
| - var target = createElement(t, options.tagName);
|
| - var animation = target.animate(keyframes,
|
| - { duration: 1000, fill: "both" });
|
| - testAnimationSamples(animation, idlName,
|
| - [{ time: 0, expected: from.toLowerCase() },
|
| - { time: 940, expected: from.toLowerCase() },
|
| - { time: 960, expected: to.toLowerCase() }]);
|
| - }, property + " uses discrete animation when animating between '"
|
| - + from + "' and '" + to + "' with keyframe easing");
|
| - }
|
| -}
|
| -
|
| -function length() {
|
| - return function(property, options) {
|
| - test(function(t) {
|
| - var idlName = propertyToIDL(property);
|
| - var keyframes = {};
|
| - keyframes[idlName] = ["10px", "50px"];
|
| - var target = createElement(t, options.tagName);
|
| - var animation = target.animate(keyframes,
|
| - { duration: 1000, fill: "both" });
|
| - testAnimationSamples(animation, idlName,
|
| - [{ time: 0, expected: "10px" },
|
| - { time: 500, expected: "30px" },
|
| - { time: 1000, expected: "50px" }]);
|
| - }, property + " supports animating as a length");
|
| -
|
| - test(function(t) {
|
| - var idlName = propertyToIDL(property);
|
| - var keyframes = {};
|
| - keyframes[idlName] = ["1rem", "5rem"];
|
| - var target = createElement(t, options.tagName);
|
| - var animation = target.animate(keyframes,
|
| - { duration: 1000, fill: "both" });
|
| - testAnimationSamples(animation, idlName,
|
| - [{ time: 0, expected: "10px" },
|
| - { time: 500, expected: "30px" },
|
| - { time: 1000, expected: "50px" }]);
|
| - }, property + " supports animating as a length of rem");
|
| - }
|
| -}
|
| -
|
| -function percentage() {
|
| - return function(property, options) {
|
| - test(function(t) {
|
| - var idlName = propertyToIDL(property);
|
| - var keyframes = {};
|
| - keyframes[idlName] = ["10%", "50%"];
|
| - var target = createElement(t, options.tagName);
|
| - var animation = target.animate(keyframes,
|
| - { duration: 1000, fill: "both" });
|
| - testAnimationSamples(animation, idlName,
|
| - [{ time: 0, expected: "10%" },
|
| - { time: 500, expected: "30%" },
|
| - { time: 1000, expected: "50%" }]);
|
| - }, property + " supports animating as a percentage");
|
| - }
|
| -}
|
| -
|
| -function integer() {
|
| - return function(property, options) {
|
| - test(function(t) {
|
| - var idlName = propertyToIDL(property);
|
| - var keyframes = {};
|
| - keyframes[idlName] = [-2, 2];
|
| - var target = createElement(t, options.tagName);
|
| - var animation = target.animate(keyframes,
|
| - { duration: 1000, fill: "both" });
|
| - testAnimationSamples(animation, idlName,
|
| - [{ time: 0, expected: "-2" },
|
| - { time: 500, expected: "0" },
|
| - { time: 1000, expected: "2" }]);
|
| - }, property + " supports animating as an integer");
|
| - }
|
| -}
|
| -
|
| -function positiveNumber() {
|
| - return function(property, options) {
|
| - test(function(t) {
|
| - var idlName = propertyToIDL(property);
|
| - var keyframes = {};
|
| - keyframes[idlName] = [1.1, 1.5];
|
| - var target = createElement(t, options.tagName);
|
| - var animation = target.animate(keyframes,
|
| - { duration: 1000, fill: "both" });
|
| - testAnimationSamples(animation, idlName,
|
| - [{ time: 0, expected: "1.1" },
|
| - { time: 500, expected: "1.3" },
|
| - { time: 1000, expected: "1.5" }]);
|
| - }, property + " supports animating as a positive number");
|
| - }
|
| -}
|
| -
|
| -function lengthPercentageOrCalc() {
|
| - return function(property, options) {
|
| - length()(property, options);
|
| - percentage()(property, options);
|
| -
|
| - test(function(t) {
|
| - var idlName = propertyToIDL(property);
|
| - var keyframes = {};
|
| - keyframes[idlName] = ["10px", "20%"];
|
| - var target = createElement(t, options.tagName);
|
| - var animation = target.animate(keyframes,
|
| - { duration: 1000, fill: "both" });
|
| - testAnimationSamples(animation, idlName,
|
| - [{ time: 0, expected: "10px" },
|
| - { time: 500, expected: "calc(5px + 10%)" },
|
| - { time: 1000, expected: "20%" }]);
|
| - }, property + " supports animating as combination units 'px' and '%'");
|
| -
|
| - test(function(t) {
|
| - var idlName = propertyToIDL(property);
|
| - var keyframes = {};
|
| - keyframes[idlName] = ["10%", "2em"];
|
| - var target = createElement(t, options.tagName);
|
| - var animation = target.animate(keyframes,
|
| - { duration: 1000, fill: "both" });
|
| - testAnimationSamples(animation, idlName,
|
| - [{ time: 0, expected: "10%" },
|
| - { time: 500, expected: "calc(10px + 5%)" },
|
| - { time: 1000, expected: "20px" }]);
|
| - }, property + " supports animating as combination units '%' and 'em'");
|
| -
|
| - test(function(t) {
|
| - var idlName = propertyToIDL(property);
|
| - var keyframes = {};
|
| - keyframes[idlName] = ["1em", "2rem"];
|
| - var target = createElement(t, options.tagName);
|
| - var animation = target.animate(keyframes,
|
| - { duration: 1000, fill: "both" });
|
| - testAnimationSamples(animation, idlName,
|
| - [{ time: 0, expected: "10px" },
|
| - { time: 500, expected: "15px" },
|
| - { time: 1000, expected: "20px" }]);
|
| - }, property + " supports animating as combination units 'em' and 'rem'");
|
| -
|
| - test(function(t) {
|
| - var idlName = propertyToIDL(property);
|
| - var keyframes = {};
|
| - keyframes[idlName] = ["10px", "calc(1em + 20%)"];
|
| - var target = createElement(t, options.tagName);
|
| - var animation = target.animate(keyframes,
|
| - { duration: 1000, fill: "both" });
|
| - testAnimationSamples(animation, idlName,
|
| - [{ time: 0, expected: "10px" },
|
| - { time: 500, expected: "calc(10px + 10%)" },
|
| - { time: 1000, expected: "calc(10px + 20%)" }]);
|
| - }, property + " supports animating as combination units 'px' and 'calc'");
|
| -
|
| - test(function(t) {
|
| - var idlName = propertyToIDL(property);
|
| - var keyframes = {};
|
| - keyframes[idlName] = ["calc(10px + 10%)", "calc(1em + 1rem + 20%)"];
|
| - var target = createElement(t, options.tagName);
|
| - var animation = target.animate(keyframes,
|
| - { duration: 1000, fill: "both" });
|
| - testAnimationSamples(animation, idlName,
|
| - [{ time: 0,
|
| - expected: "calc(10px + 10%)" },
|
| - { time: 500,
|
| - expected: "calc(15px + 15%)" },
|
| - { time: 1000,
|
| - expected: "calc(20px + 20%)" }]);
|
| - }, property + " supports animating as a calc");
|
| - }
|
| -}
|
| -
|
| -function visibility() {
|
| - return function(property, options) {
|
| - test(function(t) {
|
| - var idlName = propertyToIDL(property);
|
| - var keyframes = {};
|
| - keyframes[idlName] = ["visible", "hidden"];
|
| - var target = createElement(t, options.tagName);
|
| - var animation = target.animate(keyframes,
|
| - { duration: 1000, fill: "both" });
|
| - testAnimationSamples(animation, idlName,
|
| - [{ time: 0, expected: "visible" },
|
| - { time: 999, expected: "visible" },
|
| - { time: 1000, expected: "hidden" }]);
|
| - }, property + " uses visibility animation when animating "
|
| - + "from 'visible' to 'hidden'");
|
| -
|
| - test(function(t) {
|
| - var idlName = propertyToIDL(property);
|
| - var keyframes = {};
|
| - keyframes[idlName] = ["hidden", "visible"];
|
| - var target = createElement(t, options.tagName);
|
| - var animation = target.animate(keyframes,
|
| - { duration: 1000, fill: "both" });
|
| - testAnimationSamples(animation, idlName,
|
| - [{ time: 0, expected: "hidden" },
|
| - { time: 1, expected: "visible" },
|
| - { time: 1000, expected: "visible" }]);
|
| - }, property + " uses visibility animation when animating "
|
| - + "from 'hidden' to 'visible'");
|
| -
|
| - test(function(t) {
|
| - var idlName = propertyToIDL(property);
|
| - var keyframes = {};
|
| - keyframes[idlName] = ["hidden", "collapse"];
|
| - var target = createElement(t, options.tagName);
|
| - var animation = target.animate(keyframes,
|
| - { duration: 1000, fill: "both" });
|
| - testAnimationSamples(animation, idlName,
|
| - [{ time: 0, expected: "hidden" },
|
| - { time: 499, expected: "hidden" },
|
| - { time: 500, expected: "collapse" },
|
| - { time: 1000, expected: "collapse" }]);
|
| - }, property + " uses visibility animation when animating "
|
| - + "from 'hidden' to 'collapse'");
|
| -
|
| - test(function(t) {
|
| - // Easing: http://cubic-bezier.com/#.68,-.55,.26,1.55
|
| - // With this curve, the value is less than 0 till about 34%
|
| - // also more than 1 since about 63%
|
| - var idlName = propertyToIDL(property);
|
| - var keyframes = {};
|
| - keyframes[idlName] = ["visible", "hidden"];
|
| - var target = createElement(t, options.tagName);
|
| - var animation =
|
| - target.animate(keyframes,
|
| - { duration: 1000, fill: "both",
|
| - easing: "cubic-bezier(0.68, -0.55, 0.26, 1.55)" });
|
| - testAnimationSamples(animation, idlName,
|
| - [{ time: 0, expected: "visible" },
|
| - { time: 1, expected: "visible" },
|
| - { time: 330, expected: "visible" },
|
| - { time: 340, expected: "visible" },
|
| - { time: 620, expected: "visible" },
|
| - { time: 630, expected: "hidden" },
|
| - { time: 1000, expected: "hidden" }]);
|
| - }, property + " uses visibility animation when animating "
|
| - + "from 'visible' to 'hidden' with easeInOutBack easing");
|
| - }
|
| -}
|
| -
|
| -function testAnimationSamples(animation, idlName, testSamples) {
|
| - var target = animation.effect.target;
|
| - testSamples.forEach(function(testSample) {
|
| - animation.currentTime = testSample.time;
|
| - assert_equals(getComputedStyle(target)[idlName], testSample.expected,
|
| - "The value should be " + testSample.expected +
|
| - " at " + testSample.time + "ms");
|
| - });
|
| -}
|
| -
|
| -function isSupported(property) {
|
| - var testKeyframe = new TestKeyframe(propertyToIDL(property));
|
| - try {
|
| - // Since TestKeyframe returns 'undefined' for |property|,
|
| - // the KeyframeEffect constructor will throw
|
| - // if the string "undefined" is not a valid value for the property.
|
| - new KeyframeEffect(null, testKeyframe);
|
| - } catch(e) {}
|
| - return testKeyframe.propAccessCount !== 0;
|
| -}
|
| -
|
| -function TestKeyframe(testProp) {
|
| - var _propAccessCount = 0;
|
| -
|
| - Object.defineProperty(this, testProp, {
|
| - get: function() { _propAccessCount++; },
|
| - enumerable: true
|
| - });
|
| -
|
| - Object.defineProperty(this, 'propAccessCount', {
|
| - get: function() { return _propAccessCount; }
|
| - });
|
| -}
|
| -
|
| -function propertyToIDL(property) {
|
| - // https://w3c.github.io/web-animations/#animation-property-name-to-idl-attribute-name
|
| - if (property === "float") {
|
| - return "cssFloat";
|
| - }
|
| - return property.replace(/-[a-z]/gi,
|
| - function (str) {
|
| - return str.substr(1).toUpperCase(); });
|
| -}
|
| -
|
| -</script>
|
|
|