[css-grid-1] Update test to match https://github.com/w3c/csswg-drafts/issues/4783 and also fix some errors. (#24822)

diff --git a/css/css-grid/grid-definition/support/testing-utils.js b/css/css-grid/grid-definition/support/testing-utils.js
index 217b620..bfedc32 100644
--- a/css/css-grid/grid-definition/support/testing-utils.js
+++ b/css/css-grid/grid-definition/support/testing-utils.js
@@ -12,14 +12,14 @@
         assert_in_array(getComputedStyle(element).gridTemplateRows, value, "gridTemplateRows");
     }
 
-    function testGridTemplateColumnsRows(gridId, columnsStyle, rowsStyle, columnsComputedValue, rowsComputedValue) {
+    function testGridTemplateColumnsRows(gridId, columnsStyle, rowsStyle, columnsComputedValue, rowsComputedValue, label) {
         test(function() {
             var grid = document.getElementById(gridId);
             grid.style.gridTemplateColumns = columnsStyle;
             grid.style.gridTemplateRows = rowsStyle;
             checkGridTemplateColumns(grid, columnsComputedValue);
             checkGridTemplateRows(grid, rowsComputedValue);
-        }, "'" + gridId + "' with: grid-template-columns: " + columnsStyle  + "; and grid-template-rows: " + rowsStyle + ";");
+        }, (label + " " || "") + "'" + gridId + "' with: grid-template-columns: " + columnsStyle  + "; and grid-template-rows: " + rowsStyle + ";");
     }
 
     function checkGridTemplateAreas(element, value) {
diff --git a/css/css-grid/layout-algorithm/grid-flex-track-intrinsic-sizes-003.html b/css/css-grid/layout-algorithm/grid-flex-track-intrinsic-sizes-003.html
index 81a5d14..13c968e 100644
--- a/css/css-grid/layout-algorithm/grid-flex-track-intrinsic-sizes-003.html
+++ b/css/css-grid/layout-algorithm/grid-flex-track-intrinsic-sizes-003.html
@@ -3,14 +3,16 @@
 <title>CSS Grid Layout Test: Intrinsic contribution of an item with flex tracks</title>
 <link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com">
 <link rel="author" title="Tab Atkins-Bittner" href="mailto:jackalmage@gmail.com">
-<link rel="help" href="https://drafts.csswg.org/css-grid/#algo-spanning-items" title="11.5.3 Increase sizes to accommodate spanning items crossing content-sized tracks">
-<link rel="help" href="https://drafts.csswg.org/css-grid/#algo-spanning-flex-items" title="11.5.4 Increase sizes to accommodate spanning items crossing flexible tracks">
+<link rel="author" title="Elika J. Etemad" href="http://fantasai.inkedblade.net/contact">
+<link rel="help" href="https://drafts.csswg.org/css-grid-1/#algo-spanning-items">
+<link rel="help" href="https://drafts.csswg.org/css-grid-1/#algo-spanning-flex-items">
+<link rel="help" href="https://drafts.csswg.org/css-grid-1/#min-size-auto">
 <meta name="assert" content="This test checks that the intrinsic contribution of a single grid item is distributed correctly among the tracks it spans when flexible tracks are involved, and the item's size is determined by its children rather than explicitly.">
 <style>
 #grid {
   display: grid;
-  width: 50px;
-  height: 50px;
+  width: 60px;
+  height: 60px;
   border: solid;
 }
 #item {
@@ -35,24 +37,81 @@
 <script src="../grid-definition/support/testing-utils.js"></script>
 <script>
 const item = document.getElementById("item");
+let testset = "unlabeled";
 function checkTrackSizes(span, trackList, expected) {
   item.style.gridColumn = item.style.gridRow = `span ${span}`;
-  TestingUtils.testGridTemplateColumnsRows("grid", trackList, trackList, expected, expected);
+  TestingUtils.testGridTemplateColumnsRows("grid", trackList, trackList, expected, expected, testset);
 }
 
-// Item spanning an intrinsic flexible track
+// First check for distributing auto minimum ///////////////////////////////////
+testset = "auto min item";
+
+// Item spanning an auto flexible track
 checkTrackSizes(1, "0fr", "100px");
 checkTrackSizes(1, "1fr", "100px");
 checkTrackSizes(1, "2fr", "100px");
 
 // Item spanning a fixed flexible track
 checkTrackSizes(1, "minmax(0, 0fr)", "0px");
-checkTrackSizes(1, "minmax(0, .5fr)", "25px");
-checkTrackSizes(1, "minmax(0, 1fr)", "50px");
-checkTrackSizes(1, "minmax(0, 2fr)", "50px");
+checkTrackSizes(1, "minmax(0, .5fr)", "30px");
+checkTrackSizes(1, "minmax(0, 1fr)", "60px");
+checkTrackSizes(1, "minmax(0, 2fr)", "60px");
 checkTrackSizes(1, "minmax(75px, 1fr)", "75px");
 
-// Item spanning 2 intrinsic flexible tracks
+// Item spanning 2 auto flexible tracks
+checkTrackSizes(2, "0fr 0fr", "0px 0px");
+checkTrackSizes(2, "0fr 1fr", "0px 60px");
+checkTrackSizes(2, "1fr 0fr", "60px 0px");
+checkTrackSizes(2, "1fr 1fr", "30px 30px");
+checkTrackSizes(2, "1fr 3fr", "15px 45px");
+checkTrackSizes(2, "0fr 0fr 1fr", "0px 0px 60px");
+
+// Item spanning 2 fixed flexible tracks
+checkTrackSizes(2, "minmax(0, 0fr) minmax(0, 0fr)", "0px 0px");
+checkTrackSizes(2, "minmax(0, 0fr) minmax(0, 1fr)", "0px 60px");
+checkTrackSizes(2, "minmax(15px, 0fr) minmax(0, 1fr)", "15px 45px");
+checkTrackSizes(2, "minmax(20px, 1fr) minmax(0, 1fr)", "30px 30px");
+checkTrackSizes(2, "minmax(40px, 1fr) minmax(0, 1fr)", "40px 20px");
+
+// Item spanning an auto flexible track and a fixed flexible track
+checkTrackSizes(2, "0fr minmax(0, 0fr)", "0px 0px");
+checkTrackSizes(2, "0fr minmax(0, 1fr)", "0px 60px");
+checkTrackSizes(2, "1fr minmax(0, 1fr)", "30px 30px");
+checkTrackSizes(2, "1fr minmax(25px, 1fr)", "30px 30px");
+
+// Item spanning an auto flexible track and an intrinsic non-flexible track
+checkTrackSizes(2, "0fr min-content", "0px 0px");
+checkTrackSizes(2, "0fr auto", "0px 60px");
+checkTrackSizes(2, "0.5fr auto", "30px 30px");
+checkTrackSizes(2, "1fr auto", "60px 0px");
+checkTrackSizes(2, "1fr max-content", "60px 0px");
+checkTrackSizes(2, "1fr min-content", "60px 0px");
+
+// Item spanning a fixed flexible track and an intrinsic non-flexible track
+checkTrackSizes(2, "minmax(0, 0fr) min-content", "0px 0px");
+checkTrackSizes(2, "minmax(0, 0fr) auto", "0px 60px");
+checkTrackSizes(2, "minmax(0, 1fr) auto", "60px 0px");
+checkTrackSizes(2, "minmax(25px, 0fr) auto", "25px 35px");
+checkTrackSizes(2, "minmax(25px, 1fr) auto", "60px 0px");
+
+// Now check for distributing min content //////////////////////////////////////
+item.style.minWidth  = "min-content"; // min-content = 100px > grid
+item.style.minHeight = "100px"; // min-content doesn't resolve in block axis (yet?)
+testset = "min-content min item";
+
+// Item spanning an auto flexible track
+checkTrackSizes(1, "0fr", "100px");
+checkTrackSizes(1, "1fr", "100px");
+checkTrackSizes(1, "2fr", "100px");
+
+// Item spanning a fixed flexible track
+checkTrackSizes(1, "minmax(0, 0fr)", "0px");
+checkTrackSizes(1, "minmax(0, .5fr)", "30px");
+checkTrackSizes(1, "minmax(0, 1fr)", "60px");
+checkTrackSizes(1, "minmax(0, 2fr)", "60px");
+checkTrackSizes(1, "minmax(75px, 1fr)", "75px");
+
+// Item spanning 2 auto flexible tracks
 checkTrackSizes(2, "0fr 0fr", "50px 50px");
 checkTrackSizes(2, "0fr 1fr", "0px 100px");
 checkTrackSizes(2, "1fr 0fr", "100px 0px");
@@ -62,25 +121,82 @@
 
 // Item spanning 2 fixed flexible tracks
 checkTrackSizes(2, "minmax(0, 0fr) minmax(0, 0fr)", "0px 0px");
-checkTrackSizes(2, "minmax(0, 0fr) minmax(0, 1fr)", "0px 50px");
-checkTrackSizes(2, "minmax(15px, 0fr) minmax(0, 1fr)", "15px 35px");
-checkTrackSizes(2, "minmax(20px, 1fr) minmax(0, 1fr)", "25px 25px");
-checkTrackSizes(2, "minmax(30px, 1fr) minmax(0, 1fr)", "30px 20px");
+checkTrackSizes(2, "minmax(0, 0fr) minmax(0, 1fr)", "0px 60px");
+checkTrackSizes(2, "minmax(15px, 0fr) minmax(0, 1fr)", "15px 45px");
+checkTrackSizes(2, "minmax(20px, 1fr) minmax(0, 1fr)", "30px 30px");
+checkTrackSizes(2, "minmax(40px, 1fr) minmax(0, 1fr)", "40px 20px");
 
-// Item spanning an intrinsic flexible track and a fixed flexible track
+// Item spanning an auto flexible track and a fixed flexible track
 checkTrackSizes(2, "0fr minmax(0, 0fr)", "100px 0px");
 checkTrackSizes(2, "0fr minmax(0, 1fr)", "100px 0px");
 checkTrackSizes(2, "1fr minmax(0, 1fr)", "100px 0px");
 checkTrackSizes(2, "1fr minmax(25px, 1fr)", "75px 25px");
 
-// Item spanning an intrinsic flexible track and an intrinsic non-flexible track
+// Item spanning an auto flexible track and an intrinsic non-flexible track
+checkTrackSizes(2, "0fr min-content", "100px 0px");
 checkTrackSizes(2, "0fr auto", "100px 0px");
+checkTrackSizes(2, "0.5fr auto", "100px 0px");
 checkTrackSizes(2, "1fr auto", "100px 0px");
 checkTrackSizes(2, "1fr max-content", "100px 0px");
+checkTrackSizes(2, "1fr min-content", "100px 0px");
 
 // Item spanning a fixed flexible track and an intrinsic non-flexible track
-checkTrackSizes(2, "minmax(0, 0fr) auto", "0px 100px");
-checkTrackSizes(2, "minmax(0, 1fr) auto", "0px 100px");
-checkTrackSizes(2, "minmax(25px, 0fr) auto", "25px 75px");
-checkTrackSizes(2, "minmax(25px, 1fr) auto", "25px 75px");
+checkTrackSizes(2, "minmax(0, 0fr) min-content", "0px 0px");
+checkTrackSizes(2, "minmax(0, 0fr) auto", "0px 60px");
+checkTrackSizes(2, "minmax(0, 1fr) auto", "60px 0px");
+checkTrackSizes(2, "minmax(25px, 0fr) auto", "25px 35px");
+checkTrackSizes(2, "minmax(25px, 1fr) auto", "60px 0px");
+
+// Now check for distributing fixed min ////////////////////////////////////////
+item.style.minWidth = "50px"; // minimum < grid < min-content
+item.style.minHeight = "50px"; // minimum < grid < min-content
+testset = "50px min item";
+
+// Item spanning an auto flexible track
+checkTrackSizes(1, "0fr", "50px");
+checkTrackSizes(1, "1fr", "60px");
+checkTrackSizes(1, "2fr", "60px");
+
+// Item spanning a fixed flexible track
+checkTrackSizes(1, "minmax(0, 0fr)", "0px");
+checkTrackSizes(1, "minmax(0, .5fr)", "30px");
+checkTrackSizes(1, "minmax(0, 1fr)", "60px");
+checkTrackSizes(1, "minmax(0, 2fr)", "60px");
+checkTrackSizes(1, "minmax(75px, 1fr)", "75px");
+
+// Item spanning 2 auto flexible tracks
+checkTrackSizes(2, "0fr 0fr", "25px 25px");
+checkTrackSizes(2, "0fr 1fr", "0px 60px");
+checkTrackSizes(2, "1fr 0fr", "60px 0px");
+checkTrackSizes(2, "1fr 1fr", "30px 30px");
+checkTrackSizes(2, "1fr 3fr", "15px 45px");
+checkTrackSizes(2, "0fr 0fr 1fr", "25px 25px 10px");
+
+// Item spanning 2 fixed flexible tracks
+checkTrackSizes(2, "minmax(0, 0fr) minmax(0, 0fr)", "0px 0px");
+checkTrackSizes(2, "minmax(0, 0fr) minmax(0, 1fr)", "0px 60px");
+checkTrackSizes(2, "minmax(15px, 0fr) minmax(0, 1fr)", "15px 45px");
+checkTrackSizes(2, "minmax(20px, 1fr) minmax(0, 1fr)", "30px 30px");
+checkTrackSizes(2, "minmax(40px, 1fr) minmax(0, 1fr)", "40px 20px");
+
+// Item spanning an auto flexible track and a fixed flexible track
+checkTrackSizes(2, "0fr minmax(0, 0fr)", "50px 0px");
+checkTrackSizes(2, "0fr minmax(0, 1fr)", "50px 10px");
+checkTrackSizes(2, "1fr minmax(0, 1fr)", "50px 10px");
+checkTrackSizes(2, "1fr minmax(25px, 1fr)", "30px 30px");
+
+// Item spanning an auto flexible track and an intrinsic non-flexible track
+checkTrackSizes(2, "0fr min-content", "50px 0px");
+checkTrackSizes(2, "0fr auto", "50px 10px");
+checkTrackSizes(2, "0.5fr auto", "50px 10px");
+checkTrackSizes(2, "1fr auto", "60px 0px");
+checkTrackSizes(2, "1fr max-content", "60px 0px");
+checkTrackSizes(2, "1fr min-content", "60px 0px");
+
+// Item spanning a fixed flexible track and an intrinsic non-flexible track
+checkTrackSizes(2, "minmax(0, 0fr) min-content", "0px 0px");
+checkTrackSizes(2, "minmax(0, 0fr) auto", "0px 60px");
+checkTrackSizes(2, "minmax(0, 1fr) auto", "60px 0px");
+checkTrackSizes(2, "minmax(25px, 0fr) auto", "25px 35px");
+checkTrackSizes(2, "minmax(25px, 1fr) auto", "60px 0px");
 </script>