| <!DOCTYPE html> | |
| <html> | |
| <head> | |
| <meta charset="utf-8"> | |
| <title>CSS Transitions Test: Parsing transition shorthand</title> | |
| <meta name="assert" content="Test checks that transition shorthand values are parsed properly"> | |
| <link rel="help" title="2.5. The 'transition' Shorthand Property" href="http://www.w3.org/TR/css3-transitions/#transition-shorthand-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'); | |
| // Note that order is important in this property. The first value that can be parsed as a time is assigned to | |
| // the transition-duration. The second value that can be parsed as a time is assigned to transition-delay. | |
| // [<‘transition-property’> || <‘transition-duration’> || <‘transition-timing-function’> || <‘transition-delay’> [, [<‘transition-property’> || <‘transition-duration’> || <‘transition-timing-function’> || <‘transition-delay’>]]* | |
| var values = { | |
| // [property, duration, timing, delay] | |
| // random order | |
| '1s' : ["all", "1s", "ease", "0s"], | |
| '1s 2s' : ["all", "1s", "ease", "2s"], | |
| '1s 2s ease-in' : ["all", "1s", "ease-in", "2s"], | |
| '1s ease-in 2s' : ["all", "1s", "ease-in", "2s"], | |
| 'ease-in 1s 2s' : ["all", "1s", "ease-in", "2s"], | |
| '1s width' : ["width", "1s", "ease", "0s"], | |
| 'width 1s' : ["width", "1s", "ease", "0s"], | |
| '1s width 2s' : ["width", "1s", "ease", "2s"], | |
| '1s 2s width ease-in' : ["width", "1s", "ease-in", "2s"], | |
| '1s ease-in 2s width' : ["width", "1s", "ease-in", "2s"], | |
| 'width ease-in 1s 2s' : ["width", "1s", "ease-in", "2s"], | |
| 'width .1s ease-in .2s' : ["width", "0.1s", "ease-in", "0.2s"] | |
| }; | |
| for (var key in values) { | |
| if (Object.prototype.hasOwnProperty.call(values, key)) { | |
| test(function() { | |
| setStyle('#transition', { | |
| 'transition': key | |
| }); | |
| // WET much? | |
| assert_equals(computedStyle(transition, 'transition-property'), values[key][0], "transition-property"); | |
| assert_equals(computedStyle(transition, 'transition-duration'), values[key][1], "transition-duration"); | |
| assert_equals(computedStyle(transition, 'transition-timing-function'), values[key][2], "transition-timing-function"); | |
| assert_equals(computedStyle(transition, 'transition-delay'), values[key][3], "transition-delay"); | |
| }, "parse '" + key + "'"); | |
| } | |
| } | |
| </script> | |
| </body> | |
| </html> |