<!DOCTYPE html>
<html>
    <head>
        <title>Shape Margin Valid Values - Decimal, Positive/Negative lengths</title>
        <link rel="author" title="Adobe" href="http://html.adobe.com/">
        <link rel="author" title="Rebecca Hauck" href="mailto:rhauck@adobe.com">
        <link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-margin-property">
        <meta name="assert" content="shape-margin values may be either a length or percentage">
        <meta name="flags" content="ahem 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 shape_margin_valid_tests = [
            {
              "actual": "10.12345px",
              "expected_inline": "10.12345px",
              "expected_computed": "10.12345px"
            },
            {
              "actual": ".5px",
              "expected_inline": "0.5px",
              "expected_computed": "0.5px"
            },
            {
              "actual": "+15px",
              "expected_inline": "15px",
              "expected_computed": "15px"
            },
            {
              "actual": "+10.678px",
              "expected_inline": "10.678px",
              "expected_computed": "10.678px"
            },
        ];
        generate_tests( ParsingUtils.testShapeMarginInlineStyle,
                        ParsingUtils.buildTestCases(shape_margin_valid_tests, "inline"), true);
        generate_tests( ParsingUtils.testShapeMarginComputedStyle,
                        ParsingUtils.buildTestCases(shape_margin_valid_tests, "computed"), true);
        </script>
    </body>
</html>
