<!DOCTYPE HTML>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/elementsFromPoint.js"></script>
<style>
html, body {
    margin: 0;
    padding: 0;
}
#testtable {
    margin: 100px;
    width: 200px;
    height: 200px;
    background-color: rgba(0,180,0,0.2);
}
#testtable tr {
    background-color: rgba(180,0,0,0.2);
}
#testtable td {
    background-color: rgba(0,0,180,0.2);
}
.rtl {
    direction: rtl;
}
.tblr {
    writing-mode: vertical-lr;
}
</style>
<div id='sandbox'>
    <table id='testtable'>
        <tr id='tr1'>
            <td id='td11'></td>
            <td id='td12'></td>
            <td id='td13'></td>
            <td id='td14'></td>
        </tr>
        <tr id='tr2'>
            <td id='td21'></td>
            <td id='td22'></td>
            <td id='td23'></td>
            <td id='td24'></td>
        </tr>
        <tr id='tr3'>
            <td id='td31'></td>
            <td id='td32'></td>
            <td id='td33'></td>
            <td id='td34'></td>
        </tr>
        <tr id='tr4'>
            <td id='td41'></td>
            <td id='td42'></td>
            <td id='td43'></td>
            <td id='td44'></td>
        </tr>
    </table>
</div>
<script>
test(function() {
    assertElementsFromPoint('document', 125, 125,
        [td11, testtable, sandbox, document.body, document.documentElement]);
    assertElementsFromPoint('document', 275, 125,
        [td14, testtable, sandbox, document.body, document.documentElement]);
    assertElementsFromPoint('document', 175, 175,
        [td22, testtable, sandbox, document.body, document.documentElement]);
    assertElementsFromPoint('document', 125, 275,
        [td41, testtable, sandbox, document.body, document.documentElement]);
}, 'elementsFromPoint for points inside table cells');

test(function() {
    assertElementsFromPoint('document', 100, 100,
        [testtable, sandbox, document.body, document.documentElement]);
    assertElementsFromPoint('document', 199, 199,
        [testtable, sandbox, document.body, document.documentElement]);
}, 'elementsFromPoint for points between table cells');

testtable.setAttribute('class', 'rtl');
test(function() {
    assertElementsFromPoint('document', 125, 125,
        [td14, testtable, sandbox, document.body, document.documentElement]);
    assertElementsFromPoint('document', 275, 125,
        [td11, testtable, sandbox, document.body, document.documentElement]);
    assertElementsFromPoint('document', 100, 100,
        [testtable, sandbox, document.body, document.documentElement]);
    assertElementsFromPoint('document', 199, 199,
        [testtable, sandbox, document.body, document.documentElement]);
}, 'elementsFromPoint for points inside cells in a right-to-left table');

testtable.setAttribute('class', 'tblr');
test(function() {
    assertElementsFromPoint('document', 125, 275,
        [td14, testtable, sandbox, document.body, document.documentElement]);
    assertElementsFromPoint('document', 275, 125,
        [td41, testtable, sandbox, document.body, document.documentElement]);
    assertElementsFromPoint('document', 100, 100,
        [testtable, sandbox, document.body, document.documentElement]);
    assertElementsFromPoint('document', 199, 199,
        [testtable, sandbox, document.body, document.documentElement]);
}, 'elementsFromPoint for points inside cells in a flipped (writing-mode:vertical-lr) table');
</script>
