<!DOCTYPE html>
<html>
    <head>
        <title>Shape Outside Ellipse position args - calc() values</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">
        <link rel="help" href="http://www.w3.org/TR/css3-values/#calc-notation">
        <meta name="assert" content="An ellipse's <position> arguments may be in calc() values.">
        <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 ellipse_position_calc_tests = [];
            ParsingUtils.calcTestValues.forEach(function(value) {
                testCase = ['ellipse(at '+ value[0] +' 50%)',
                            'ellipse(at '+ value[1] +' 50%)'];
                if(Object.prototype.toString.call( value[2] ) === '[object Array]' && value[2].length == 2) {
                    testCase.push([
                                    'ellipse(at '+ value[2][0] +' 50%)',
                                    'ellipse(at '+ value[2][1] +' 50%)'
                                 ]);
                } else {
                    testCase.push('ellipse(at '+ value[2] +' 50%)');
                }
                ellipse_position_calc_tests.push(testCase);
            });
            ParsingUtils.calcTestValues.forEach(function(value) {
                testCase = ['ellipse(closest-side farthest-side at '+ value[0] +' '+ value[0] +')',
                            'ellipse(closest-side farthest-side at '+ value[1] +' '+ value[1] +')'];
                if(Object.prototype.toString.call( value[2] ) === '[object Array]' && value[2].length == 2) {
                    testCase.push([
                                    'ellipse(closest-side farthest-side at '+ value[2][0] +' '+ value[2][0] +')',
                                    'ellipse(closest-side farthest-side at '+ value[2][1] +' '+ value[2][1] +')'
                                 ]);
                } else {
                    testCase.push('ellipse(closest-side farthest-side at '+ value[2] +' '+ value[2] +')');
                }
                ellipse_position_calc_tests.push(testCase);
            });
            generate_tests(ParsingUtils.testInlineStyle, ParsingUtils.buildCalcTests(ellipse_position_calc_tests, 'inline'));
            generate_tests(ParsingUtils.testComputedStyle, ParsingUtils.buildCalcTests(ellipse_position_calc_tests, 'computed'));
        </script>
    </body>
</html>
