mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-04-27 18:17:22 +02:00
LibWeb: Import WPT tests for percentage size with indefinite containers
Import tests covering percentage size resolution when the containing block has auto/indefinite size.
This commit is contained in:
committed by
Andreas Kling
parent
509aecc857
commit
a61a36b184
Notes:
github-actions[bot]
2026-04-03 12:31:38 +00:00
Author: https://github.com/awesomekling Commit: https://github.com/LadybirdBrowser/ladybird/commit/a61a36b1848 Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/8748
@@ -0,0 +1,62 @@
|
||||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>Cyclic percentages in min-width and min-height</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-sizing-3/#cyclic-percentage-contribution">
|
||||
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/10969">
|
||||
<link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com">
|
||||
|
||||
<style>
|
||||
#outer {
|
||||
display: inline-block;
|
||||
border: 5px solid;
|
||||
padding: 3px;
|
||||
}
|
||||
#inner {
|
||||
min-width: calc(100px + 50%);
|
||||
min-height: calc(100px + 50%);
|
||||
border: 2px solid cyan;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div id="outer">
|
||||
<div id="inner"></div>
|
||||
</div>
|
||||
|
||||
<script src="../../resources/testharness.js"></script>
|
||||
<script src="../../resources/testharnessreport.js"></script>
|
||||
<script>
|
||||
const innerBorder = 4;
|
||||
const outerPadding = 6;
|
||||
const bp = innerBorder + outerPadding;
|
||||
|
||||
// Intrinsic contributions should treat cyclic percentages equally in both axes.
|
||||
test(
|
||||
() => assert_equals(outer.clientWidth, outer.clientHeight),
|
||||
"Axis consistency of intrinsic contributions",
|
||||
);
|
||||
|
||||
// The spec says that the intrinsic size contributions should resolve cyclic percentages
|
||||
// in min size properties against zero, so here we should expect 110px.
|
||||
// However, most browsers just ignore the mininum in that case, resulting in 10px.
|
||||
// See https://github.com/w3c/csswg-drafts/issues/10969
|
||||
test(
|
||||
() => assert_in_array(outer.clientWidth, [0 + bp, 100 + bp]),
|
||||
"Intrinsic contribution for width",
|
||||
);
|
||||
test(
|
||||
() => assert_in_array(outer.clientHeight, [0 + bp, 100 + bp]),
|
||||
"Intrinsic contribution for height",
|
||||
);
|
||||
|
||||
// Regardless of how browsers treat cyclic percentages, once the size of #outer is known,
|
||||
// #inner should re-resolve its inline-axis percentage against the containing block,
|
||||
// but not re-resolve its block-axis percentage.
|
||||
test(
|
||||
() => assert_equals(inner.clientWidth, 100 + 0.5 * (outer.clientWidth - outerPadding)),
|
||||
"Final size for width",
|
||||
);
|
||||
test(
|
||||
() => assert_equals(inner.clientHeight, outer.clientHeight - bp),
|
||||
"Final size for height",
|
||||
);
|
||||
</script>
|
||||
Reference in New Issue
Block a user