mirror of
https://github.com/servo/servo.git
synced 2025-08-04 13:10:20 +01:00
Update web-platform-tests to revision 43899f53083e4e6285d7a55d66745d8f6518950d
This commit is contained in:
parent
6499367fe2
commit
60e5c9a277
58 changed files with 359 additions and 134 deletions
|
@ -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 @@ checkTrackSizes(2, "0fr 0fr 1fr", "50px 50px 0px");
|
|||
|
||||
// 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>
|
||||
|
|
|
@ -0,0 +1,89 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Grid Layout Test: Intrinsic contribution of a small item to intrinsic tracks</title>
|
||||
<link rel="author" title="Elika J. Etemad" href="http://fantasai.inkedblade.net/contact">
|
||||
<link rel="help" href="https://www.w3.org/TR/css-grid-1/#algo-content">
|
||||
<meta name="assert" content="This test checks that the intrinsic contribution of a single grid item smaller than its container is distributed correctly among the tracks it spans when intrinsic tracks are involved.">
|
||||
<base href="https://wpt.live/css/css-grid/grid-definition/">
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
|
||||
<style>
|
||||
#grid {
|
||||
display: grid;
|
||||
width: 120px;
|
||||
height: 120px;
|
||||
border: solid;
|
||||
font: 10px/1 Ahem;
|
||||
}
|
||||
#item {
|
||||
background: blue;
|
||||
/* make min-content contribution differ from minimum contribution */
|
||||
min-width: 12px;
|
||||
min-height: 12px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div id="grid">
|
||||
<div id="item">XXX XX<br>XX<br>XX</div>
|
||||
</div>
|
||||
|
||||
<div id="log"></div>
|
||||
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="../grid-definition/support/testing-utils.js"></script>
|
||||
<script>
|
||||
const item = document.getElementById("item");
|
||||
function checkTrackSizes(span, trackList, expectedCols, expectedRows) {
|
||||
item.style.gridColumn = item.style.gridRow = `span ${span}`;
|
||||
if (!expectedRows) {
|
||||
expectedRows = expectedCols;
|
||||
}
|
||||
TestingUtils.testGridTemplateColumnsRows("grid", trackList, trackList, expectedCols, expectedRows);
|
||||
}
|
||||
|
||||
// Item spanning a single track
|
||||
checkTrackSizes(1, "auto", "120px");
|
||||
checkTrackSizes(1, "min-content", "30px", "40px");
|
||||
checkTrackSizes(1, "max-content", "60px", "30px");
|
||||
|
||||
checkTrackSizes(1, "minmax(0, auto)", "120px");
|
||||
checkTrackSizes(1, "minmax(0, min-content)", "30px", "40px");
|
||||
checkTrackSizes(1, "minmax(0, max-content)", "60px", "30px");
|
||||
|
||||
checkTrackSizes(1, "minmax(auto, 10px)", "12px");
|
||||
checkTrackSizes(1, "minmax(min-content, 10px)", "30px", "40px");
|
||||
checkTrackSizes(1, "minmax(max-content, 10px)", "60px", "30px");
|
||||
|
||||
// Item spanning two identical tracks
|
||||
|
||||
checkTrackSizes(2, "auto auto", "60px 60px");
|
||||
checkTrackSizes(2, "min-content min-content", "15px 15px", "20px 20px");
|
||||
checkTrackSizes(2, "max-content max-content", "30px 30px", "15px 15px");
|
||||
|
||||
checkTrackSizes(2, "minmax(0, auto) minmax(0, auto)", "60px 60px");
|
||||
checkTrackSizes(2, "minmax(0, min-content) minmax(0, min-content)", "15px 15px", "20px 20px");
|
||||
checkTrackSizes(2, "minmax(0, max-content) minmax(0, max-content)", "30px 30px", "15px 15px");
|
||||
|
||||
checkTrackSizes(2, "minmax(auto, 4px) minmax(auto, 4px)", "6px 6px");
|
||||
checkTrackSizes(2, "minmax(auto, 10px) minmax(auto, 10px)", "10px 10px");
|
||||
checkTrackSizes(2, "minmax(min-content, 10px) minmax(min-content, 10px)", "15px 15px", "20px 20px");
|
||||
checkTrackSizes(2, "minmax(max-content, 10px) minmax(max-content, 10px)", "30px 30px", "15px 15px");
|
||||
|
||||
// Item spanning a fixed track also
|
||||
checkTrackSizes(2, "20px auto", "20px 100px");
|
||||
checkTrackSizes(2, "20px min-content", "20px 10px", "20px 20px");
|
||||
checkTrackSizes(2, "20px max-content", "20px 40px", "20px 10px");
|
||||
|
||||
checkTrackSizes(2, "20px minmax(0, auto)", "20px 100px");
|
||||
checkTrackSizes(2, "20px minmax(0, min-content)", "20px 10px", "20px 20px");
|
||||
checkTrackSizes(2, "20px minmax(0, max-content)", "20px 40px", "20px 10px");
|
||||
|
||||
checkTrackSizes(2, "20px minmax(auto, 30px)", "20px 30px");
|
||||
checkTrackSizes(2, "20px minmax(min-content, 6px)", "20px 10px", "20px 20px");
|
||||
checkTrackSizes(2, "20px minmax(min-content, 40px)", "20px 40px", "20px 40px");
|
||||
checkTrackSizes(2, "20px minmax(max-content, 6px)", "20px 40px", "20px 10px");
|
||||
checkTrackSizes(2, "20px minmax(max-content, 30px)", "20px 40px", "20px 30px");
|
||||
|
||||
// Item spanning two mismatched intrinsic tracks
|
||||
checkTrackSizes(2, "max-content min-content", "45px 15px", "15px 15px");
|
||||
</script>
|
Loading…
Add table
Add a link
Reference in a new issue