<!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 length values: 0.5in 10mm</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"/>
        <meta name="flags" content=""/>
        <meta name="assert" content="To verify border-top-left-radius property set to two length values (with different units), works fine"/>
        <style type="text/css">
        /* <![CDATA[ */
        	div
          {
        		border:2px solid #a1a1a1;
        		background:#dddddd;
        		width:200px;
        		height: 100px;
        		border-top-left-radius:  0.5in 10mm;
        	}
         /* ]]> */
        </style>
<!--
        <script type="text/javascript" src="js/css3_test_helper.js"></script>
-->
    </head>
    <body>
        <p id="testdetails">
        </p>
        <p>
            There should be a box with a rounded top left corner.</p>
        <ul>
            <li>PASS if only top left corner is rounded.</li>
            <li>FAIL if the output is not as expected.</li>
        </ul>

    	<div id="test"></div>
<!--
    	<script type="text/javascript">
         /* <![CDATA[ */
        	var expectedBorderRadius = "48px 37px";

        	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>

