<!DOCTYPE HTML>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<select id="menulist">
<option id="item0">Alicia</option>
<option id="item1">Peter</option>
<option id="item2">Kalinda</option>
</select>
<script>
async_test(function(t)
{
var menulist = document.getElementById("menulist");
menulist.selectedIndex = 0;
menulist.focus();
var roleToExpectedNotifications = new Map();
roleToExpectedNotifications.set("AXRole: AXMenuListPopup", new Set(["ActiveDescendantChanged"]));
roleToExpectedNotifications.set("AXRole: AXMenuListOption", new Set(["MarkDirty"]));
accessibilityController.addNotificationListener(function listener(element, notification) {
let expectedNotifications = roleToExpectedNotifications.get(element.role);
if (!expectedNotifications)
return;
if (element.role == 'AXRole: AXMenuListOption' && notification == 'MarkDirty')
assert_equals(element.name, "Alicia");
expectedNotifications.delete(notification);
if (!expectedNotifications.size)
roleToExpectedNotifications.delete(element.role);
if (!roleToExpectedNotifications.size)
t.done();
});
var axMenuList = accessibilityController.accessibleElementById("menulist");
eventSender.mouseMoveTo(axMenuList.x + 10, axMenuList.y + 10);
eventSender.mouseDown();
eventSender.mouseUp();
}, "menu list fires correct events on open");
</script>