<!DOCTYPE html>
<html>
    <head>
        <title>Shape Outside Shape Number Values</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/#typedef-basic-shape">
        <link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
        <link rel="help" href="http://www.w3.org/TR/cssom/#serializing-css-values">
        <meta name="assert" content="The basic shape can contain all valid number formats">
        <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">
            // number forms: d, +d, -d, .d, +.d, -.d, d.d, +d.d, -d.d
            var shape_number_values_tests = [
                {
                  "name": "Positive number variations",
                  "actual": "polygon(nonzero, 1px +2px, .3px +.4px, 5.5px +6.6px)",
                  "expected_inline": "polygon(1px 2px, 0.3px 0.4px, 5.5px 6.6px)",
                  "expected_computed": "polygon(1px 2px, 0.3px 0.4px, 5.5px 6.6px)"
                },
                {
                  "name": "Negative number variations",
                  "actual": "polygon(nonzero, -1px -.2px, -1.1px 0px)",
                  "expected_inline": "polygon(-1px -0.2px, -1.1px 0px)",
                  "expected_computed": "polygon(-1px -0.2px, -1.1px 0px)"
                }
            ];
            generate_tests( ParsingUtils.testInlineStyle,
                            ParsingUtils.buildTestCases(shape_number_values_tests, "inline") );
            generate_tests( ParsingUtils.testComputedStyle,
                            ParsingUtils.buildTestCases(shape_number_values_tests, "computed") );
        </script>
    </body>
</html>
