<!DOCTYPE html>
<html>
<body id="body">
<script src="../../resources/js-test.js"></script>
<script src="../../resources/accessibility-helper.js"></script>
<div role="button" class="flowto">FlowTo1</div>
<div id="flowto2" role="button" class="flowto">FlowTo2</div>
<div class="label">label 1</div>
<div id="label2" class="label">label 2</div>
<div id="host"></div>
<script>

class CustomElement extends HTMLElement {
    constructor()
    {
        super();
        window.internals = this.attachInternals();
        internals.role = 'checkbox';
        internals.ariaFlowToElements = Array.from(document.querySelectorAll('.flowto'));
        internals.ariaLabelledByElements = Array.from(document.querySelectorAll('.label'));
        shouldBe('internals.ariaFlowToElements.length', '2');
        shouldBe('internals.ariaFlowToElements[0]', 'document.querySelectorAll(".flowto")[0]');
        shouldBe('internals.ariaFlowToElements[1]', 'document.querySelectorAll(".flowto")[1]');
        shouldBe('internals.ariaLabelledByElements.length', '2');
        shouldBe('internals.ariaLabelledByElements[0]', 'document.querySelectorAll(".label")[0]');
        shouldBe('internals.ariaLabelledByElements[1]', 'document.querySelectorAll(".label")[1]');
    }
};
customElements.define('custom-element', CustomElement);

const shadowRoot = host.attachShadow({'mode': 'closed'});
const customElement = new CustomElement;
customElement.id = 'custom-1';
shadowRoot.appendChild(customElement);

description("This tests that aria fallback roles work correctly.");
if (!window.accessibilityController)
    debug('This test requires accessibilityController');
else {
    shouldBeEqualToString('accessibilityController.accessibleElementById("custom-1").role', 'AXRole: AXCheckBox');
    shouldBeEqualToString('platformValueForW3CName(accessibilityController.accessibleElementById("custom-1"))', 'label 1 label 2');
    shouldBeEqualToString('accessibilityController.accessibleElementById("custom-1").ariaFlowToElementAtIndex(0).role', 'AXRole: AXButton');
    shouldBeEqualToString('accessibilityController.accessibleElementById("custom-1").ariaFlowToElementAtIndex(0).title', 'AXTitle: FlowTo1');
    shouldBeEqualToString('accessibilityController.accessibleElementById("custom-1").ariaFlowToElementAtIndex(1).role', 'AXRole: AXButton');
    shouldBeEqualToString('accessibilityController.accessibleElementById("custom-1").ariaFlowToElementAtIndex(1).title', 'AXTitle: FlowTo2');
    shouldBe('accessibilityController.accessibleElementById("custom-1").ariaFlowToElementAtIndex(2)', 'null');
}

</script>
</body>
</html>
