<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Grid Layout Test: Grid item which is also a flex container</title>
<link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com">
<link rel="help" href="http://www.w3.org/TR/css-grid-1">
<meta name="assert" content="Checks that the grid is updated when the contents of the grid item flex container change their size dynamically.">
<style>
.grid {
  display: grid;
  width: 100px;
  background: cyan;
}
.flex {
  display: flex;
  min-height: 0;
  height: 100%;
}
.height200 {
  height: 200px;
}
.height100 {
  height: 100px;
}
</style>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>

<div id="log"></div>

<pre>grid-template-rows: minmax(auto, auto);</pre>

<div class="grid" style="grid-template-rows: minmax(auto, auto);" data-expected-height="100" >
  <div class="flex">
    <div>
      <div class="height200"></div>
    </div>
  </div>
</div>

<pre>grid-template-rows: minmax(min-content, auto);</pre>

<div class="grid" style="grid-template-rows: minmax(min-content, auto);" data-expected-height="100">
  <div class="flex">
    <div>
      <div class="height200"></div>
    </div>
  </div>
</div>

<pre>grid-template-rows: minmax(max-content, auto);</pre>

<div class="grid" style="grid-template-rows: minmax(max-content, auto);" data-expected-height="100">
  <div class="flex">
    <div>
      <div class="height200"></div>
    </div>
  </div>
</div>

<pre>grid-template-rows: minmax(auto, min-content);</pre>

<div class="grid" style="grid-template-rows: minmax(auto, min-content);" data-expected-height="100">
  <div class="flex">
    <div>
      <div class="height200"></div>
    </div>
  </div>
</div>

<pre>grid-template-rows: minmax(min-content, min-content);</pre>

<div class="grid" style="grid-template-rows: minmax(min-content, min-content);" data-expected-height="100">
  <div class="flex">
    <div>
      <div class="height200"></div>
    </div>
  </div>
</div>

<pre>grid-template-rows: minmax(max-content, min-content);</pre>

<div class="grid" style="grid-template-rows: minmax(max-content, min-content);" data-expected-height="100">
  <div class="flex">
    <div>
      <div class="height200"></div>
    </div>
  </div>
</div>

<pre>grid-template-rows: minmax(auto, max-content);</pre>

<div class="grid" style="grid-template-rows: minmax(auto, max-content);" data-expected-height="100">
  <div class="flex">
    <div>
      <div class="height200"></div>
    </div>
  </div>
</div>

<pre>grid-template-rows: minmax(min-content, max-content);</pre>

<div class="grid" style="grid-template-rows: minmax(min-content, max-content);" data-expected-height="100">
  <div class="flex">
    <div>
      <div class="height200"></div>
    </div>
  </div>
</div>

<pre>grid-template-rows: minmax(max-content, max-content);</pre>

<div class="grid" style="grid-template-rows: minmax(max-content, max-content);" data-expected-height="100">
  <div class="flex">
    <div>
      <div class="height200"></div>
    </div>
  </div>
</div>

<script>
// Force layout
document.body.offsetLeft;

// Change content sizes
for (let el of document.querySelectorAll(".height200")) {
  el.className = "height100";
}

// Check final layout
checkLayout('.grid');
</script>
