<!DOCTYPE html>
<html>
    <head>
        <title>Shape Outside Polygon Valid Points</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's points may be either lengths or percentages">
        <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_points_tests = [
                {
                  "name": "Lengths",
                  "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": "Percentages",
                  "actual": "polygon(1% 2%, 3% 4%, 5% 6%)",
                  "expected_inline": "polygon(1% 2%, 3% 4%, 5% 6%)",
                  "expected_computed": "polygon(1% 2%, 3% 4%, 5% 6%)"
                },
                {
                  "name": "Mixed Lengths and Percentages",
                  "actual": "polygon(1px 2px, 3px 4%, 5% 6px, 7% 8%)",
                  "expected_inline": "polygon(1px 2px, 3px 4%, 5% 6px, 7% 8%)",
                  "expected_computed": "polygon(1px 2px, 3px 4%, 5% 6px, 7% 8%)"
                }
            ];
            generate_tests( ParsingUtils.testInlineStyle,
                            ParsingUtils.buildTestCases(valid_polygon_points_tests, 'inline') );
            generate_tests( ParsingUtils.testComputedStyle,
                            ParsingUtils.buildTestCases(valid_polygon_points_tests, 'computed') );
        </script>
    </body>
</html>
