mirror of
https://github.com/servo/servo.git
synced 2025-07-10 17:03:40 +01:00
94 lines
4.2 KiB
HTML
94 lines
4.2 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>CSS Transitions Test: Parsing transition-timing-function</title>
|
|
<meta name="assert" content="Test checks that transition-timing-function values are parsed properly">
|
|
<link rel="help" title="2.3. The 'transition-timing-function' Property" href="http://www.w3.org/TR/css3-transitions/#transition-timing-function-property">
|
|
<link rel="author" title="Rodney Rehm" href="http://rodneyrehm.de/en/">
|
|
<meta name="flags" content="dom">
|
|
|
|
<script src="/resources/testharness.js" type="text/javascript"></script>
|
|
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
|
|
|
|
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
|
|
<script src="./support/helper.js" type="text/javascript"></script>
|
|
</head>
|
|
<body>
|
|
<!-- required by testharnessreport.js -->
|
|
<div id="log"></div>
|
|
<!-- elements used for testing -->
|
|
<div id="container">
|
|
<div id="transition"></div>
|
|
</div>
|
|
|
|
<script>
|
|
var transition = document.getElementById('transition');
|
|
var defaultValue = 'ease';
|
|
var values = {
|
|
// keywords
|
|
'ease': 'ease',
|
|
'linear': 'linear',
|
|
'ease-in': 'ease-in',
|
|
'ease-out': 'ease-out',
|
|
'ease-in-out': 'ease-in-out',
|
|
'step-start': 'steps(1, start)',
|
|
'step-end': 'steps(1)',
|
|
// cubic bezier
|
|
'cubic-bezier(0.1, 0.2, 0.3, 0.4)': 'cubic-bezier(0.1, 0.2, 0.3, 0.4)',
|
|
'cubic-bezier(0.1, -0.2, 0.3, -0.4)': 'cubic-bezier(0.1, -0.2, 0.3, -0.4)',
|
|
'cubic-bezier(0.1, 1.2, 0.3, 1.4)': 'cubic-bezier(0.1, 1.2, 0.3, 1.4)',
|
|
// steps
|
|
'steps(3, start)': 'steps(3, start)',
|
|
'steps(3, end)': 'steps(3)',
|
|
'steps(3)': 'steps(3)',
|
|
'steps(3, jump-start)': 'steps(3, jump-start)',
|
|
'steps(3, jump-end)': 'steps(3)',
|
|
'steps(3, jump-both)': 'steps(3, jump-both)',
|
|
'steps(3, jump-none)': 'steps(3, jump-none)',
|
|
// invalid
|
|
'cubic-bezier(foobar)': defaultValue,
|
|
'steps(foobar)': defaultValue,
|
|
'steps(3.3, end)': defaultValue,
|
|
'steps(3, top)': defaultValue,
|
|
'steps(-3, top)': defaultValue,
|
|
'steps(0, jump-start)': defaultValue,
|
|
'steps(0, jump-end)': defaultValue,
|
|
'steps(0, jump-both)': defaultValue,
|
|
'steps(1, jump-none)': defaultValue,
|
|
// Both x values must be in the range [0, 1]
|
|
'cubic-bezier(-0.1, -0.2, -0.3, -0.4)': defaultValue,
|
|
'cubic-bezier(1.1, 1.2, 1.3, 1.4)': defaultValue
|
|
};
|
|
|
|
// these tests are supposed to fail and
|
|
// possibly make the engine issue a parser warning
|
|
var invalidTests = {
|
|
'cubic-bezier(foobar)': true,
|
|
'steps(foobar)': true,
|
|
'steps(3.3, end)': true,
|
|
'steps(3, top)': true,
|
|
'steps(-3, top)': true,
|
|
// Both x values must be in the range [0, 1]
|
|
'cubic-bezier(-0.1, -0.2, -0.3, -0.4)': true,
|
|
'cubic-bezier(1.1, 1.2, 1.3, 1.4)': true
|
|
};
|
|
|
|
for (var key in values) {
|
|
if (Object.prototype.hasOwnProperty.call(values, key)) {
|
|
test(function() {
|
|
setStyle('#transition', {
|
|
'transition-timing-function': key
|
|
});
|
|
var result = computedStyle(transition, 'transition-timing-function');
|
|
assert_equals(result, values[key], "Expected computed value");
|
|
}, "parse '" + key + "'",
|
|
{
|
|
// mark tests that fail as such
|
|
flags: invalidTests[key] ? "invalid" : ""
|
|
});
|
|
}
|
|
}
|
|
</script>
|
|
</body>
|
|
</html>
|