<html>
<head>
<script>
function print(message) {
	var paragraph = document.createElement("p");
	paragraph.appendChild(document.createTextNode(message));
	document.getElementById("console").appendChild(paragraph);
}

function test() {
	if (window.layoutTestController) {
		window.layoutTestController.dumpAsText();
	}
	
	print("frames[0].name (should be frame0_name): " + frames[0].name);
	print("frames[0].id (should be undefined): " + frames[0].id);
	print("");

    delete frames[0].name; // force dynamic property creation
    
	frames[0].name = "frame0_newname"
	frames[0].id = "frame0_newid";
	print("frames[0].name (should be frame0_newname): " + frames[0].name);
	print("frames[0].id (should be frame0_newid): " + frames[0].id);
}
</script>
</head>
<body onload="test()">
<p>Tests: getting and setting frames[x].name on an iFrame</p>
<p>Related bug: <i>rdar://problem/4170960 http://bugzilla.opendarwin.org/show_bug.cgi?id=3952 <a href=http://bugzilla.opendarwin.org/show_bug.cgi?id=3952>iFrame name and id information incorrectly returned</a></i></p>
<hr>
<div id='console'/>
<iframe name="frame0_name" id="frame0_id"></iframe>
</body>
</html>
