<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>CSS Transitions Test: Parsing transition-property</title>
        <meta name="assert" content="Test checks that transition-property values are parsed properly">
        <link rel="help" title="2.1. The 'transition-property' Property" href="http://www.w3.org/TR/css3-transitions/#transition-property-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');

            // syntax: none | [ all | <IDENT> ] [ ‘,’ [ all | <IDENT> ] ]*
            var values = [
                'none', 'all', 'width', 'all, width', 'width, all'
            ];

            for (var i = 0, value; value = values[i]; i++) {
                test(function() {
                    setStyle('#transition', {
                        'transition-property': value
                    });
                    var result = computedStyle(transition, 'transition-property');
                    assert_equals(result, value);
                }, "parse '" + value + "'");
            }
        </script>
    </body>
</html>
