<!DOCTYPE html>
<link href="../css-intrinsic-dimensions/resources/width-keyword-classes.css" rel="stylesheet">
<link href="resources/grid.css" rel="stylesheet">
<link href="resources/grid-alignment.css" rel="stylesheet">
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<style>
.grid {
  position: relative;
  grid-template-columns: 100px;
  grid-template-rows: 200px;
  font: 10px/1 Ahem;
}
</style>
<p>Test to verify that grid item's stretched size is reset when changing to a different alignment value.</p>
<div class="grid fit-content">
  <div id="item">XXXXX</div>
</div>
<script>
"use strict";
var child = document.getElementById("item");
const values = ['self-start', 'self-end', 'start', 'end', 'center', 'baseline'];
values.forEach(function(value) {
  child.style.alignSelf = 'stretch';
  child.style.justifySelf = 'stretch';
  test(function() {
    assert_equals(child.offsetWidth, 100, "The width is not what it should:");
    assert_equals(child.offsetHeight, 200, "The height is not what it should:");
  }, "Checking stretched size before changing to " + value + ".");

  child.style.alignSelf = value;
  child.style.justifySelf = value;
  test(function() {
    assert_equals(child.offsetWidth, 50, "The width is not what it should:");
    assert_equals(child.offsetHeight, 10, "The height is not what it should:");
  }, "Checking size after changing to " + value + ".");
});
</script>
