haikuwebkit/LayoutTests/animations/animation-shorthand.html

115 lines
3.7 KiB
HTML
Raw Permalink Normal View History

<html>
<head>
<title>Test animation shorthand property</title>
<style type="text/css" media="screen">
.box {
height: 10px;
width: 10px;
background-color: blue;
}
#a {
}
#b {
-webkit-animation: none;
}
#c {
-webkit-animation: anim1 10s;
}
#d {
-webkit-animation: anim1 10s linear;
}
#e {
-webkit-animation: anim1 10s linear 5s;
}
#f {
-webkit-animation: anim1 10s linear 5s 3;
}
#g {
-webkit-animation: anim1 10s linear 5s infinite alternate;
}
#h {
-webkit-animation: anim1 10s linear 5s infinite alternate forwards;
}
#i {
-webkit-animation: anim1 10s linear normal none;
}
#j {
-webkit-animation: anim1 10s ease infinite both paused;
}
#k {
-webkit-animation: anim1 10s linear infinite backwards, anim2 3s none paused, anim3 5s both;
}
@-webkit-keyframes anim1 { }
@-webkit-keyframes anim2 { }
</style>
<script type="text/javascript" charset="utf-8">
Use testRunner instead of layoutTestController in animations tests https://bugs.webkit.org/show_bug.cgi?id=88757 Reviewed by Tony Chang. * animations/3d/change-transform-in-end-event.html: * animations/3d/replace-filling-transform.html: * animations/3d/state-at-end-event-transform.html: * animations/3d/transform-origin-vs-functions.html: * animations/animation-add-events-in-handler.html: * animations/animation-border-overflow.html: * animations/animation-controller-drt-api.html: * animations/animation-direction-reverse-fill-mode-hardware.html: * animations/animation-direction-reverse-fill-mode.html: * animations/animation-drt-api-multiple-keyframes.html: * animations/animation-drt-api.html: * animations/animation-end-event-destroy-renderer.html: * animations/animation-end-event-short-iterations.html: * animations/animation-hit-test-transform.html: * animations/animation-hit-test.html: * animations/animation-iteration-event-destroy-renderer.html: * animations/animation-matrix-negative-scale-unmatrix.html: * animations/animation-on-inline-crash.html: * animations/animation-shorthand-overriding.html: * animations/animation-shorthand-removed.html: * animations/animation-shorthand.html: * animations/animation-start-event-destroy-renderer.html: * animations/animation-welcome-safari.html: * animations/body-removal-crash.html: * animations/change-keyframes-name.html: * animations/change-transform-style-during-animation.html: * animations/combo-transform-translate+scale.html: * animations/empty-keyframes.html: * animations/fill-mode-forwards.html: * animations/fill-mode-iteration-count-non-integer.html: * animations/fill-mode-missing-from-to-keyframes.html: * animations/fill-mode-multiple-keyframes.html: * animations/fill-mode-removed.html: * animations/fill-mode-reverse.html: * animations/fill-mode-transform.html: * animations/fill-mode.html: * animations/fill-unset-properties.html: * animations/font-size-using-ems.html-disabled: * animations/import-crash.html: * animations/keyframe-timing-functions-transform.html: * animations/keyframe-timing-functions2.html: * animations/keyframes-iteration-count-non-integer.html: * animations/longhand-timing-function.html: * animations/missing-from-to-transforms.html: * animations/missing-from-to.html: * animations/pause-crash.html: * animations/resources/animation-test-helpers.js: (checkExpectedValue): (endTest): * animations/state-at-end-event.html: * animations/suspend-resume-animation-events.html: * animations/suspend-transform-animation.html: * animations/transition-and-animation-3.html: * animations/unanimated-style.html: Canonical link: https://commits.webkit.org/106621@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@119985 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-06-11 17:22:07 +00:00
if (window.testRunner)
testRunner.dumpAsText();
const kProperties = [
"webkitAnimationName",
"webkitAnimationDuration",
"webkitAnimationTimingFunction",
"webkitAnimationDelay",
"webkitAnimationIterationCount",
"webkitAnimationDirection",
"webkitAnimationFillMode",
"webkitAnimationPlayState",
];
const kExpectedResults = [
{ id: 'a', values: [ "none", "0s", "ease", "0s", "1", "normal", "none", "running" ] },
{ id: 'b', values: [ "none", "0s", "ease", "0s", "1", "normal", "none", "running" ] },
{ id: 'c', values: [ "anim1", "10s", "ease", "0s", "1", "normal", "none", "running" ] },
{ id: 'd', values: [ "anim1", "10s", "linear", "0s", "1", "normal", "none", "running" ] },
{ id: 'e', values: [ "anim1", "10s", "linear", "5s", "1", "normal", "none", "running" ] },
{ id: 'f', values: [ "anim1", "10s", "linear", "5s", "3", "normal", "none", "running" ] },
{ id: 'g', values: [ "anim1", "10s", "linear", "5s", "infinite", "alternate", "none", "running" ] },
{ id: 'h', values: [ "anim1", "10s", "linear", "5s", "infinite", "alternate", "forwards", "running" ] },
{ id: 'i', values: [ "anim1", "10s", "linear", "0s", "1", "normal", "none", "running" ] },
{ id: 'j', values: [ "anim1", "10s", "ease", "0s", "infinite", "normal", "both", "paused" ] },
{ id: 'k', values: [ "anim1, anim2, anim3", "10s, 3s, 5s", "linear, ease, ease", "0s, 0s, 0s", "infinite, 1, 1", "normal, normal, normal", "backwards, none, both", "running, paused, running" ] },
];
function start()
{
var resultsString = "";
kExpectedResults.forEach(function(curItem) {
var el = document.getElementById(curItem.id);
var elStyle = window.getComputedStyle(el);
for (var i=0; i < kProperties.length; i++) {
var computedValue = elStyle[kProperties[i]];
var expectedValue = curItem.values[i];
if (computedValue == expectedValue)
resultsString += "Testing " + kProperties[i] + " on " + curItem.id + ": PASS" + "<br>";
else
resultsString += "Testing " + kProperties[i] + " on " + curItem.id + " expected <code>" + expectedValue + "</code> got <code>" + computedValue + "</code>: FAIL" + "<br>";
}
});
var results = document.getElementById('result');
results.innerHTML = resultsString;
}
window.addEventListener('load', start, false);
</script>
</head>
<body>
<div id="a" class="box"></div>
<div id="b" class="box"></div>
<div id="c" class="box"></div>
<div id="d" class="box"></div>
<div id="e" class="box"></div>
<div id="f" class="box"></div>
<div id="g" class="box"></div>
<div id="h" class="box"></div>
<div id="i" class="box"></div>
<div id="j" class="box"></div>
<div id="k" class="box"></div>
<div id="result">
</div>
</body>
</html>