<!DOCTYPE html>
<html>
    <head>
        <title>Shape Outside Ellipse Radii - positive/negative, decimal/non-decimal</title>
        <link rel="author" title="Adobe" href="http://html.adobe.com/">
        <link rel="author" title="Rebecca Hauck" href="mailto:rhauck@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-ellipse">
        <link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
        <meta name="assert" content="An ellipse's radii may be in signed positive or decimal/non-decimal format. Negative
                                     radii are invalid.">
        <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 valid_ellipse_radii_tests = [
                {
                  "actual": "ellipse(+10px +20px)",
                  "expected_inline": "ellipse(10px 20px at 50% 50%)",
                  "expected_computed": "ellipse(10px 20px at 50% 50%)"
                },
                {
                  "actual": "ellipse(+30px 40px)",
                  "expected_inline": "ellipse(30px 40px at 50% 50%)",
                  "expected_computed": "ellipse(30px 40px at 50% 50%)"
                },
                {
                  "actual": "ellipse(50px +60px)",
                  "expected_inline": "ellipse(50px 60px at 50% 50%)",
                  "expected_computed": "ellipse(50px 60px at 50% 50%)"
                },
                {
                  "actual": "ellipse(+10.00px +20.230px)",
                  "expected_inline": "ellipse(10px 20.23px at 50% 50%)",
                  "expected_computed": "ellipse(10px 20.23px at 50% 50%)"
                },
                {
                  "actual": "ellipse(+30.00px 40.567px)",
                  "expected_inline": "ellipse(30px 40.567px at 50% 50%)",
                  "expected_computed": "ellipse(30px 40.567px at 50% 50%)"
                },
                {
                  "actual": "ellipse(50.10px +60.7px)",
                  "expected_inline": "ellipse(50.1px 60.7px at 50% 50%)",
                  "expected_computed": "ellipse(50.1px 60.7px at 50% 50%)"
                },
                {
                  "actual": "ellipse(+10% +20%)",
                  "expected_inline": "ellipse(10% 20% at 50% 50%)",
                  "expected_computed": "ellipse(10% 20% at 50% 50%)"
                },
                {
                  "actual": "ellipse(+30% 40%)",
                  "expected_inline": "ellipse(30% 40% at 50% 50%)",
                  "expected_computed": "ellipse(30% 40% at 50% 50%)"
                },
                {
                  "actual": "ellipse(+50% +60%)",
                  "expected_inline": "ellipse(50% 60% at 50% 50%)",
                  "expected_computed": "ellipse(50% 60% at 50% 50%)"
                },
                {
                  "actual": "ellipse(+10.00% +20.230%)",
                  "expected_inline": "ellipse(10% 20.23% at 50% 50%)",
                  "expected_computed": "ellipse(10% 20.23% at 50% 50%)"
                },
                {
                  "actual": "ellipse(+30.00% 40.567%)",
                  "expected_inline": "ellipse(30% 40.567% at 50% 50%)",
                  "expected_computed": "ellipse(30% 40.567% at 50% 50%)"
                },
                {
                  "actual": "ellipse(50.10% +60.7%)",
                  "expected_inline": "ellipse(50.1% 60.7% at 50% 50%)",
                  "expected_computed": "ellipse(50.1% 60.7% at 50% 50%)"
                }
            ];
            invalid_ellipse_radii_tests = [
                {"name": "ellipse(-10px -20px)"},
                {"name": "ellipse(-30px 40px)"},
                {"name": "ellipse(50px -60px)"}
            ];
            generate_tests( ParsingUtils.testInlineStyle,
                            ParsingUtils.buildTestCases(valid_ellipse_radii_tests, "inline") );
            generate_tests( ParsingUtils.testComputedStyle,
                            ParsingUtils.buildTestCases(valid_ellipse_radii_tests, "computed") );
            generate_tests( ParsingUtils.testInlineStyle,
                            ParsingUtils.buildTestCases(invalid_ellipse_radii_tests) );
        </script>
    </body>
</html>
