<html>
<head>
<script src="../../resources/js-test-pre.js"></script>
</head>
<body>
<div id="listbox" role="listbox" tabindex="0"></div>
<p id="description"></p>
<div id="console"></div>
<script>
window.jsTestIsAsync = true;
description("This tests that changing the aria-busy value results in a state-changed notification.");

if (window.testRunner && window.accessibilityController) {
    accessibilityController.addNotificationListener(function(element, notification) {
        if (notification != "AXElementBusyChanged")
            return;
        debug(notification + ": " + element.title + " " + element.role);
    });

    var element = document.getElementById("listbox");
    element.focus();

    debug("Setting aria-busy to true on listbox.");
    element.setAttribute("aria-busy", "true");

    debug("Setting aria-busy to false on listbox.");
    element.setAttribute("aria-busy", "false");

    window.setTimeout(function() {
        accessibilityController.removeNotificationListener();
        finishJSTest();
    }, 0);
}
</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>
