<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"><!-- webkit-test-runner [ KeygenElementEnabled=true ] -->
<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 adding a label as parent for that form control. ');

var tester = setupLabelsTest();
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.createElement("label");
    tester.outerElement.appendChild(label);
    label.appendChild(element);
    shouldBe('element.labels.length', '1');
}
</script>
<script src="../../../resources/js-test-post.js"></script>
</body>
</html>
