mirror of
https://github.com/servo/servo.git
synced 2025-06-23 16:44:33 +01:00
- Update CSS tests to revision e05bfd5e30ed662c2f8a353577003f8eed230180. - Update web-platform-tests to revision a052787dd5c069a340031011196b73affbd68cd9.
112 lines
No EOL
5 KiB
HTML
112 lines
No EOL
5 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml"><head>
|
|
<meta charset="utf-8" />
|
|
<title>CSS Transitions Test: Parsing transition-timing-function</title>
|
|
<meta content="Test checks that transition-timing-function values are parsed properly" name="assert" />
|
|
<link href="http://www.w3.org/TR/css3-transitions/#transition-timing-function-property" rel="help" title="2.3. The 'transition-timing-function' Property" />
|
|
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm" />
|
|
<meta content="dom" name="flags" />
|
|
|
|
<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>
|
|
|
|
<script id="metadata_cache">/*
|
|
{
|
|
"parse 'ease'": {},
|
|
"parse 'linear'": {},
|
|
"parse 'ease-in'": {},
|
|
"parse 'ease-out'": {},
|
|
"parse 'ease-in-out'": {},
|
|
"parse 'step-start'": {},
|
|
"parse 'step-end'": {},
|
|
"parse 'cubic-bezier(0.1, 0.2, 0.3, 0.4)'": {},
|
|
"parse 'cubic-bezier(0.1, -0.2, 0.3, -0.4)'": {},
|
|
"parse 'cubic-bezier(0.1, 1.2, 0.3, 1.4)'": {},
|
|
"parse 'steps(3, start)'": {},
|
|
"parse 'steps(3, end)'": {},
|
|
"parse 'steps(3)'": {},
|
|
"parse 'cubic-bezier(foobar)'": { "flags": "invalid" },
|
|
"parse 'steps(foobar)'": { "flags": "invalid" },
|
|
"parse 'steps(3.3, end)'": { "flags": "invalid" },
|
|
"parse 'steps(3, top)'": { "flags": "invalid" },
|
|
"parse 'steps(-3, top)'": { "flags": "invalid" },
|
|
"parse 'cubic-bezier(-0.1, -0.2, -0.3, -0.4)'": { "flags": "invalid" },
|
|
"parse 'cubic-bezier(1.1, 1.2, 1.3, 1.4)'": { "flags": "invalid" }
|
|
}
|
|
*/</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');
|
|
// "ease"
|
|
var defaultValue = 'cubic-bezier(0.25, 0.1, 0.25, 1)';
|
|
var values = {
|
|
// keywords
|
|
'ease': 'cubic-bezier(0.25, 0.1, 0.25, 1)',
|
|
'linear': 'cubic-bezier(0, 0, 1, 1)',
|
|
'ease-in': 'cubic-bezier(0.42, 0, 1, 1)',
|
|
'ease-out': 'cubic-bezier(0, 0, 0.58, 1)',
|
|
'ease-in-out': 'cubic-bezier(0.42, 0, 0.58, 1)',
|
|
'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)',
|
|
// invalid
|
|
'cubic-bezier(foobar)': defaultValue,
|
|
'steps(foobar)': defaultValue,
|
|
'steps(3.3, end)': defaultValue,
|
|
'steps(3, top)': defaultValue,
|
|
'steps(-3, top)': 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> |