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