<!doctype html>
<meta charset="utf-8">
<script src='/resources/testharness.js'></script>
<script src='/resources/testharnessreport.js'></script>
<link rel='stylesheet' href='support/base.css' />
<link rel="author" title="Joy Yu" href="mailto:joysyu@mit.edu">
<link rel="help" href="https://drafts.csswg.org/css-tables-3/#computing-the-table-height">
<style>
    x-table {
      border: 5px solid black;
    }
    x-table span {
        display: inline-block;
        vertical-align: top;
        background: lime;
        margin: 3px;
        height: 100px;
        width: 100px;
    }
</style>
<main>
    <h1>Visibility collapse</h1>
    <a href="https://drafts.csswg.org/css-tables-3/#computing-the-table-height">Spec</a>
    <p>
    Setting a row to visibility:collapse changes table height but not width.
    </p>
    <x-table id="one">
        <x-tr>
            <x-td>
                <img src="../support/cat.png">
            </x-td>
            <x-td>
                <span></span><span></span>
            </x-td>
        </x-tr>
        <x-tr>
            <x-td>
                <span>row 2</span>
            </x-td>
            <x-td>
                <span></span>
            </x-td>
        </x-tr>
    </x-table>
    Bottom table is identical to top except row 1 has been collapsed.
    <x-table id="two">
        <x-tr id="collapse">
            <x-td>
                <img src="../support/cat.png">
            </x-td>
            <x-td>
                <span></span><span></span>
            </x-td>
        </x-tr>
        <x-tr>
            <x-td>
                <span>row 2</span>
            </x-td>
            <x-td>
                <span></span>
            </x-td>
        </x-tr>
    </x-table>
</main>

<script>
    row = document.getElementById("collapse");
    row.style.visibility = "collapse";

    tests = [
        [
            document.getElementById('two').offsetWidth,
            document.getElementById('one').offsetWidth,
            "row visibility:collapse doesn't change table width, unlike display:none"
        ],
        [
            document.getElementById('two').offsetHeight,
            116,
            "row visibility:collapse changes table height, unlike visibility:hidden"
        ]];
    for (i = 0; i< tests.length; i++) {
        test(function()
            {
                assert_equals.apply(this, tests[i]);
            },
            tests[i][2]);
    };
</script>
</html>
