<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>CSS Test: Borders. Border-top-left-radius using two percentage values: 20% 30%</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <meta http-equiv="Content-Style-Type" content="text/css"/>
        <meta http-equiv="Content-Script-Type" content="text/javascript"/>
        <link rel="author" title="Nokia" href="http://www.nokia.com/"/>
        <link rel="help" href="http://www.w3.org/TR/css3-background/#the-border-radius"/>
        <link rel="match" href="border-top-left-radius-006.xht" />
        <meta name="flags" content=""/>
        <meta name="assert" content="To verify border-top-left-radius property set to two percentage values, works fine"/>
        <style type="text/css">
        /* <![CDATA[ */
        	div
          {
        		border:2px solid #a1a1a1;
        		background:#dddddd;
        		width:200px;
        		height: 100px;
        		border-top-left-radius: 20% 30%;
        	}
         /* ]]> */
        </style>
<!--
        <script type="text/javascript" src="js/css3_test_helper.js"></script>
-->
    </head>
    <body>
		<p>
			There should be a box with a rounded top left corner.
		</p>
		 <!-- PASS AND FAIL CRITERIA ARE IN THE LIST BELOW -->
        <ul>
            <li>PASS if only top left corner is rounded.</li>
            <li>FAIL if the output is not as expected.</li>
        </ul>

         <!-- PLACE TEST CONTENT FROM HERE -->

    	<div id="test"></div>
    	<p><br/></p>
<!--
    	<script type="text/javascript">
         /* <![CDATA[ */
        	var expectedBorderRadius = "20% 30%";

        	var testResult = check_CSS_property("border-top-left-radius", expectedBorderRadius);

        	/* if (testResult.pass)
        	  // This portion of the code has been removed to ensure that the test case is not automated
        	else {
        		// This portion of the code has been removed to ensure that the test case is not automated
          } */

          if (top.FrameEnabled)	top.fnLog(testResult);
        /* ]]> */
        </script>
-->
    </body>
</html>

