<!DOCTYPE html>
<script src="../resources/js-test.js"></script>
<script src="../resources/accessibility-helper.js"></script>
<ul id="target1" role="menubar">
  <li id="descendant1" role="menuitem">a</li>
</ul>
<ul id="target2" role="menubar">
  <li id="descendant2" role="menuitem">b</li>
</ul>
<ul id="target3" role="menubar">
  <li id="descendant3" role="menuitem">c</li>
</ul>

<script>
  description("Checks that element reflection is exposed to the a11y tree for 'ariaActiveDescendantElement'");
  if (!window.accessibilityController) {
    debug("This test requires accessibilityController");
  } else {
    window.jsTestIsAsync = true

    var ax = accessibilityController;
    var axTarget1, axTarget2, axDescendant2, axDescendantFirstChild, axTarget3, axDescendant3;
    var output = "";
    setTimeout(function() {
        target1.ariaActiveDescendantElement = descendant1;
        axTarget1 = accessibilityController.accessibleElementById("target1");
        axDescendant1 = accessibilityController.accessibleElementById("descendant1");
        output += expect("axTarget1.selectedChildrenCount", "1");
        output += expect("axTarget1.selectedChildAtIndex(0).isEqual(axDescendant1)", "true");
        target2.ariaActiveDescendantElement = descendant2;
        target2.setAttribute("aria-activedescendant", "descendant2");
        axTarget2 = accessibilityController.accessibleElementById("target2");
        axDescendant2 = accessibilityController.accessibleElementById("descendant2");
        axDescendantFirstChild = axTarget2.childAtIndex(0);
        output += expect("axTarget2.selectedChildrenCount", "1");
        output += expect("axTarget2.selectedChildAtIndex(0).isEqual(axDescendantFirstChild)", "true");

        target2.setAttribute("aria-activedescendant", "descendant2");
        output += expect("axTarget2.selectedChildrenCount", "1");
        output += expect("axTarget2.selectedChildAtIndex(0).isEqual(axDescendant2)", "true");

        target3.ariaActiveDescendantElement = descendant3;
        descendant3.id = "descendant3-new";
        axTarget3 = accessibilityController.accessibleElementById("target3");
        axDescendant3 = accessibilityController.accessibleElementById("descendant3-new");
        output += expect("axTarget3.selectedChildrenCount", "1");
        output += expect("axTarget3.selectedChildAtIndex(0).isEqual(axDescendant3)", "true");
        debug(output);
        finishJSTest();
    }, 0);
  }
</script>
