| <!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> |