<!DOCTYPE html>
<html>
    <head>
        <title>Shape Outside Polygon Valid Formats</title>
        <link rel="author" title="Adobe" href="http://html.adobe.com/">
        <link rel="author" title="Bear Travis" href="mailto:betravis@adobe.com">
        <link rel="reviewer" title="Alan Stearns" href="mailto:stearns@adobe.com"> <!--  2014-03-04  -->
        <link rel="help" href="http://www.w3.org/TR/css-shapes-1/#funcdef-polygon">
        <link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
        <meta name="assert" content="A polygonal basic shape has an optional fill-rule and one or more pairs of coordinates">
        <meta name="flags" content="dom">
        <script src="../../../../resources/testharness.js"></script>
        <script src="../../../../resources/testharnessreport.js"></script>
        <script src="support/parsing-utils.js"></script>
    </head>
    <body>
        <div id="log"></div>
        <script type="text/javascript">
             var valid_polygon_tests = [
                    {
                      "name": "Single point",
                      "actual": "polygon(1px 2px)",
                      "expected_inline": "polygon(1px 2px)",
                      "expected_computed": "polygon(1px 2px)"
                    },
                    {
                      "name": "Single point with fill-rule",
                      "actual": "polygon(evenodd, 1px 2px)",
                      "expected_inline": "polygon(evenodd, 1px 2px)",
                      "expected_computed": "polygon(evenodd, 1px 2px)"
                    },
                    {
                      "name": "Multiple points",
                      "actual": "polygon(1px 2px, 3px 4px, 5px 6px)",
                      "expected_inline": "polygon(1px 2px, 3px 4px, 5px 6px)",
                      "expected_computed": "polygon(1px 2px, 3px 4px, 5px 6px)"
                    },
                    {
                      "name": "Multiple points with fill-rule",
                      "actual": "polygon(evenodd, 1px 2px, 3px 4px, 5px 6px)",
                      "expected_inline": "polygon(evenodd, 1px 2px, 3px 4px, 5px 6px)",
                      "expected_computed": "polygon(evenodd, 1px 2px, 3px 4px, 5px 6px)"
                    }
            ];
            generate_tests( ParsingUtils.testInlineStyle,
                            ParsingUtils.buildTestCases(valid_polygon_tests, "inline") );
            generate_tests( ParsingUtils.testComputedStyle,
                            ParsingUtils.buildTestCases(valid_polygon_tests, "computed") );
        </script>
    </body>
</html>
