<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../../../resources/js-test-pre.js"></script>
<script src="../resources/common.js"></script>
<script src="../resources/label-test-util.js"></script>
</head>
<body>
<p id="description"></p>
<div id="console"></div>
<script>
description('Test that the labels list of a form control is dynamically updated when the htmlFor attribute of a label changes to point to that control. ');

var tester = setupLabelsTest(withNoLabel, '<label id="labelId"></label>');
for (var name in tester.dataSet) {
    var data = tester.getLabelableElementData(name);
    if (data == null)
        continue;

    debug('Check ' + data.name);
    var element = data.element;
    shouldBe('element.labels.length', '0');

    var label = document.getElementById("labelId");
    label.htmlFor = element.id;
    shouldBe('element.labels.length', '1');
}
</script>
<script src="../../../resources/js-test-post.js"></script>
</body>
</html>
