chromium/third_party/blink/web_tests/external/wpt/css/css-tables/caption-side-1.html

<!doctype html>
<script src='/resources/testharness.js'></script>
<script src='/resources/testharnessreport.js'></script>
<link rel='stylesheet' href='./support/base.css' />
<link rel="help" href="https://drafts.csswg.org/css-tables-3/#caption-side-property">
<main>

    <h1>Caption-side</h1>
    <p>Checks that browsers implement properly the caption-side property</p>

    <hr/>
    <p>This should read ABC:</p>
    <p>
        The first caption (C) should be put on the bottom because it inherits caption-side:bottom from the table;<br/>
        The second captin (A) should be put on the top because it has caption-side:top specified;
    </p>
    <div><table style="caption-side:bottom"><caption>C</caption><tbody><tr><td>B</td></tr></tbody><caption style="caption-side:top">A</caption></table></div>

    <script>void function() { var table; while(table = document.querySelector('.to-remove')) table.parentNode.replaceChild(table.firstChild,table) }();</script>
    <script>void function() { var td; while(td = document.querySelector('table.no-td td')) td.parentNode.replaceChild(document.createElement('x-td'),td) }();</script>
    <script>void function() { var divs = document.querySelectorAll("main > div"); for(var i = divs.length; i--;) { var div = divs[i]; var pre = document.createElement('pre'); pre.title = pre.textContent = div.innerHTML; div.parentNode.insertBefore(pre, div); }; }();</script>
    <hr/>

</main>

<script>

    var i = 1;
    generate_tests(assert_equals, [
        [
            "Caption-side inherits and reorder captions properly",
            document.querySelector("main > div:nth-of-type("+(i++)+") caption:first-child").offsetTop > document.querySelector("main > div:nth-of-type("+(i-1)+") caption:last-child").offsetTop,
            true
        ],
        [
            "Multiple captions can be rendered",
            document.querySelector("main > div:nth-of-type("+(i-1)+") table").offsetHeight > 3 * 16,
            true
        ],
    ])

</script>