<!DOCTYPE html>
<html>
    <head>
        <title>Shape Outside Circle 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-circle">
        <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="A circle'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 circle_position_calc_tests = [];
            ParsingUtils.calcTestValues.forEach(function(value) {
                testCase = ['circle(at '+ value[0] +')',
                            'circle(at '+ value[1] +' 50%)'];
                if(Object.prototype.toString.call( value[2] ) === '[object Array]' && value[2].length == 2) {
                    testCase.push([ 'circle(at '+ value[2][0] +' 50%)',
                                    'circle(at '+ value[2][1] +' 50%)'
                                  ]);
                } else {
                    testCase.push('circle(at '+ value[2] +' 50%)');
                }
                circle_position_calc_tests.push(testCase);
            });
            generate_tests(ParsingUtils.testInlineStyle, ParsingUtils.buildCalcTests(circle_position_calc_tests, 'inline'));
            generate_tests(ParsingUtils.testComputedStyle, ParsingUtils.buildCalcTests(circle_position_calc_tests, 'computed'));
        </script>
    </body>
</html>
