chromium/third_party/blink/web_tests/fast/css-grid-layout/grid-item-named-grid-area-resolution.html

<!DOCTYPE html>
<html>
<head>
<link href="resources/grid.css" rel="stylesheet">
<link href="resources/grid-alignment.css" rel="stylesheet">
<style>
.grid {
    grid-template-rows: [before] 50px [middle] 100px [after] 150px;
    grid-template-columns: 40px 80px 160px;
}

.gridWithoutRepeat {
    grid-template-areas: "first second third"
                         "fourth fifth sixth";
}

.gridWithRepeat {
    grid-template-areas: "first  second third"
                         "fourth fourth third";
}

.gridItemFirstArea {
    grid-area: first;
}

.gridItemSecondArea {
    grid-area: second;
}

.gridItemThirdArea {
    grid-area: third;
}

.gridItemFourthArea {
    grid-area: fourth;
}

.gridItemFifthArea {
    grid-area: fifth;
}

.gridItemSixthArea {
    grid-area: sixth;
}

.gridItemSpan2ThirdArea {
    grid-row: fourth;
    grid-column: span 2 / third;
}

.gridItemNamedGridLineWithArea {
    grid-row: third / after;
    grid-column: 1;
}
</style>
<script src="../../resources/check-layout.js"></script>
</head>
<body onload="checkLayout('.grid')">

<p>This test checks that we resolve named grid areas per the specification.</p>

<div style="position: relative">
    <div class="grid gridWithoutRepeat">
        <div class="sizedToGridArea gridItemSixthArea" data-offset-x="120" data-offset-y="50" data-expected-width="160" data-expected-height="100"></div>
        <div class="sizedToGridArea gridItemFifthArea" data-offset-x="40" data-offset-y="50" data-expected-width="80" data-expected-height="100"></div>
        <div class="sizedToGridArea gridItemFourthArea" data-offset-x="0" data-offset-y="50" data-expected-width="40" data-expected-height="100"></div>
        <div class="sizedToGridArea gridItemThirdArea" data-offset-x="120" data-offset-y="0" data-expected-width="160" data-expected-height="50"></div>
        <div class="sizedToGridArea gridItemSecondArea" data-offset-x="40" data-offset-y="0" data-expected-width="80" data-expected-height="50"></div>
        <div class="sizedToGridArea gridItemFirstArea" data-offset-x="0" data-offset-y="0" data-expected-width="40" data-expected-height="50"></div>

        <div class="sizedToGridArea gridItemSpan2ThirdArea" data-offset-x="40" data-offset-y="50" data-expected-width="240" data-expected-height="100"></div>
        <div class="sizedToGridArea gridItemNamedGridLineWithArea" data-offset-x="0" data-offset-y="0" data-expected-width="40" data-expected-height="150"></div>
    </div>
</div>

<div style="position: relative">
    <div class="grid gridWithRepeat justifyContentStart">
        <!-- fifth and sixth are invalid named grid areas. -->
        <div class="sizedToGridArea gridItemSixthArea" data-offset-x="280" data-offset-y="300" data-expected-width="0" data-expected-height="0"></div>
        <div class="sizedToGridArea gridItemFifthArea" data-offset-x="280" data-offset-y="300" data-expected-width="0" data-expected-height="0"></div>

        <div class="sizedToGridArea gridItemFourthArea" data-offset-x="0" data-offset-y="50" data-expected-width="120" data-expected-height="100"></div>
        <div class="sizedToGridArea gridItemThirdArea" data-offset-x="120" data-offset-y="0" data-expected-width="160" data-expected-height="150"></div>
        <div class="sizedToGridArea gridItemSecondArea" data-offset-x="40" data-offset-y="0" data-expected-width="80" data-expected-height="50"></div>
        <div class="sizedToGridArea gridItemFirstArea" data-offset-x="0" data-offset-y="0" data-expected-width="40" data-expected-height="50"></div>

        <div class="sizedToGridArea gridItemSpan2ThirdArea" data-offset-x="40" data-offset-y="50" data-expected-width="240" data-expected-height="100"></div>
        <div class="sizedToGridArea gridItemNamedGridLineWithArea" data-offset-x="0" data-offset-y="0" data-expected-width="40" data-expected-height="150"></div>
    </div>
</div>

</body>
</html>