<!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-bottom-right-radius using 0 value</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-radius-001-ref.xht" />
        <meta name="flags" content="" />
        <meta name="assert" content="To verify border-bottom-right-radius property, when set with 0, works as expected" />
        <style type="text/css">
        /* <![CDATA[ */
        	div
            {
        		border:2px solid #a1a1a1;
        		background:#dddddd;
        		width:200px;
        		height: 100px;
        	}
        	#test
        	{
        		border-bottom-right-radius: 0;
        	}
        /* ]]> */
        </style>
<!--
        <script type="text/javascript" src="js/css3_test_helper.js"></script>
-->
    </head>
    <body>
    	<p>
			There should be two boxes with no rounded corners.
		</p>
		<!-- PASS AND FAIL CRITERIA ARE IN THE LIST BELOW -->
				<ul>
					<li>PASS if the two boxes below are the same.</li>
					<li>FAIL if the output is not as expected.</li>
				</ul>

        <!-- PLACE TEST CONTENT FROM HERE -->
    	<div id="test"></div>
		<p><br/></p>
    	<div id="reference"></div>
<!--
    	<script type="text/javascript">
        /* <![CDATA[ */
        	var expectedBorderRadius = "0px";

        	var testResult = check_CSS_property("border-bottom-right-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>

