<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../resources/accessibility-helper.js"></script>
<script src="../resources/js-test.js"></script>
</head>
<body>

<input type="checkbox" id="checkbox">

<script>
var output = "This test ensures mixed values are reported properly on native checkboxes.\n\n";

if (window.accessibilityController) {
    window.jsTestIsAsync = true;
    output += expect("accessibilityController.accessibleElementById('checkbox').isIndeterminate", "false");

    output += evalAndReturn("document.getElementById('checkbox').indeterminate = true");
    setTimeout(async function() {
        await waitFor(() => accessibilityController.accessibleElementById("checkbox").isIndeterminate);
        output += expect("accessibilityController.accessibleElementById('checkbox').isIndeterminate", "true");

        output += evalAndReturn("document.getElementById('checkbox').indeterminate = false");
        await waitFor(() => !accessibilityController.accessibleElementById("checkbox").isIndeterminate);
        output += expect("accessibilityController.accessibleElementById('checkbox').isIndeterminate", "false");

        debug(output);
        finishJSTest();
    }, 0);
}
</script>
</body>
</html>

