<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../../../resources/js-test-pre.js"></script>
</head>
<body>
<script>
description('Test the elements collection when the form is not a descendant of the document. This test case failed in an early version of Acid3.');

var f = document.createElement('form');
var i = document.createElement('input');
i.name = 'first';
i.type = 'text';
i.value = 'test';
f.appendChild(i);

shouldBe("i.getAttribute('name')", "'first'");
shouldBe("i.name", "'first'");
shouldBe("i.getAttribute('type')", "'text'");
shouldBe("i.type", "'text'");
shouldBe("i.value", "'test'");
shouldBe("f.elements.length", "1");
shouldBe("f.elements[0]", "i");
shouldBe("f.elements.first", "i");

f.elements.second;
i.name = 'second';
i.type = 'password';
i.value = 'TEST';

// This has to be the first expression tested, because reporting the result will fix the bug.
shouldBe("f.elements.second", "i");

shouldBe("i.getAttribute('name')", "'second'");
shouldBe("i.name", "'second'");
shouldBe("i.getAttribute('type')", "'password'");
shouldBe("i.type", "'password'");
shouldBe("i.value", "'TEST'");
shouldBe("f.elements.length", "1");
shouldBe("f.elements[0]", "i");
shouldBe("f.elements.first", "undefined");
shouldBe("f.elements.second", "i");
</script>
<script src="../../../resources/js-test-post.js"></script>
</body>
</html>
