commit 07f7f784b0cdf126477f2d05b62c9b95f8d815e8
parent b13e90b6db834deba5cf8e39f217d992b228a88e
Author: Emilio Cobos Álvarez <emilio@crisal.io>
Date: Tue, 25 Nov 2025 10:23:01 +0000
Bug 1979593 - Make try-tactic-position-area test rendering, not getComputedStyle(). r=jwatt
Same reasoning as https://github.com/web-platform-tests/wpt/pull/55489
(from bug 1994673) applies to this test.
Differential Revision: https://phabricator.services.mozilla.com/D273797
Diffstat:
2 files changed, 163 insertions(+), 554 deletions(-)
diff --git a/testing/web-platform/meta/css/css-anchor-position/try-tactic-position-area.html.ini b/testing/web-platform/meta/css/css-anchor-position/try-tactic-position-area.html.ini
@@ -1,393 +0,0 @@
-[try-tactic-position-area.html]
- [flip-inline, position-area:left top, ltr horizontal-tb]
- expected: FAIL
-
- [flip-inline, position-area:left bottom, ltr horizontal-tb]
- expected: FAIL
-
- [flip-inline, position-area:right bottom, ltr horizontal-tb]
- expected: FAIL
-
- [flip-inline, position-area:right top, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block, position-area:left top, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block, position-area:left bottom, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block, position-area:right bottom, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block, position-area:right top, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-inline, position-area:left top, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-inline, position-area:left bottom, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-inline, position-area:right bottom, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-inline, position-area:right top, ltr horizontal-tb]
- expected: FAIL
-
- [flip-start, position-area:left top, ltr horizontal-tb]
- expected: FAIL
-
- [flip-start, position-area:left bottom, ltr horizontal-tb]
- expected: FAIL
-
- [flip-start, position-area:right bottom, ltr horizontal-tb]
- expected: FAIL
-
- [flip-start, position-area:right top, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-start, position-area:left top, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-start, position-area:left bottom, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-start, position-area:right bottom, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-start, position-area:right top, ltr horizontal-tb]
- expected: FAIL
-
- [flip-inline flip-start, position-area:left top, ltr horizontal-tb]
- expected: FAIL
-
- [flip-inline flip-start, position-area:left bottom, ltr horizontal-tb]
- expected: FAIL
-
- [flip-inline flip-start, position-area:right bottom, ltr horizontal-tb]
- expected: FAIL
-
- [flip-inline flip-start, position-area:right top, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-inline flip-start, position-area:left top, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-inline flip-start, position-area:left bottom, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-inline flip-start, position-area:right bottom, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-inline flip-start, position-area:right top, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-inline, position-area:span-left span-top, ltr horizontal-tb]
- expected: FAIL
-
- [flip-inline, position-area:x-start y-start, ltr horizontal-tb]
- expected: FAIL
-
- [flip-inline, position-area:x-start y-end, ltr horizontal-tb]
- expected: FAIL
-
- [flip-inline, position-area:x-end y-end, ltr horizontal-tb]
- expected: FAIL
-
- [flip-inline, position-area:x-end y-start, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block, position-area:x-start y-start, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block, position-area:x-start y-end, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block, position-area:x-end y-end, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block, position-area:x-end y-start, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-inline, position-area:x-start y-start, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-inline, position-area:x-start y-end, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-inline, position-area:x-end y-end, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-inline, position-area:x-end y-start, ltr horizontal-tb]
- expected: FAIL
-
- [flip-start, position-area:x-start y-start, ltr horizontal-tb]
- expected: FAIL
-
- [flip-start, position-area:x-start y-end, ltr horizontal-tb]
- expected: FAIL
-
- [flip-start, position-area:x-end y-end, ltr horizontal-tb]
- expected: FAIL
-
- [flip-start, position-area:x-end y-start, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-start, position-area:x-start y-start, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-start, position-area:x-start y-end, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-start, position-area:x-end y-end, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-start, position-area:x-end y-start, ltr horizontal-tb]
- expected: FAIL
-
- [flip-inline flip-start, position-area:x-start y-start, ltr horizontal-tb]
- expected: FAIL
-
- [flip-inline flip-start, position-area:x-start y-end, ltr horizontal-tb]
- expected: FAIL
-
- [flip-inline flip-start, position-area:x-end y-end, ltr horizontal-tb]
- expected: FAIL
-
- [flip-inline flip-start, position-area:x-end y-start, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-inline flip-start, position-area:x-start y-start, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-inline flip-start, position-area:x-start y-end, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-inline flip-start, position-area:x-end y-end, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-inline flip-start, position-area:x-end y-start, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-inline, position-area:span-x-start span-y-start, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-inline, position-area:self-x-start self-y-start, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-inline, position-area:span-self-x-start span-self-y-start, ltr horizontal-tb]
- expected: FAIL
-
- [flip-inline, position-area:block-start inline-start, ltr horizontal-tb]
- expected: FAIL
-
- [flip-inline, position-area:block-end inline-start, ltr horizontal-tb]
- expected: FAIL
-
- [flip-inline, position-area:block-end inline-end, ltr horizontal-tb]
- expected: FAIL
-
- [flip-inline, position-area:block-start inline-end, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block, position-area:block-start inline-start, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block, position-area:block-end inline-start, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block, position-area:block-end inline-end, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block, position-area:block-start inline-end, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-inline, position-area:block-start inline-start, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-inline, position-area:block-end inline-start, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-inline, position-area:block-end inline-end, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-inline, position-area:block-start inline-end, ltr horizontal-tb]
- expected: FAIL
-
- [flip-start, position-area:block-start inline-start, ltr horizontal-tb]
- expected: FAIL
-
- [flip-start, position-area:block-end inline-start, ltr horizontal-tb]
- expected: FAIL
-
- [flip-start, position-area:block-end inline-end, ltr horizontal-tb]
- expected: FAIL
-
- [flip-start, position-area:block-start inline-end, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-start, position-area:block-start inline-start, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-start, position-area:block-end inline-start, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-start, position-area:block-end inline-end, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-start, position-area:block-start inline-end, ltr horizontal-tb]
- expected: FAIL
-
- [flip-inline flip-start, position-area:block-start inline-start, ltr horizontal-tb]
- expected: FAIL
-
- [flip-inline flip-start, position-area:block-end inline-start, ltr horizontal-tb]
- expected: FAIL
-
- [flip-inline flip-start, position-area:block-end inline-end, ltr horizontal-tb]
- expected: FAIL
-
- [flip-inline flip-start, position-area:block-start inline-end, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-inline flip-start, position-area:block-start inline-start, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-inline flip-start, position-area:block-end inline-start, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-inline flip-start, position-area:block-end inline-end, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-inline flip-start, position-area:block-start inline-end, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-inline, position-area:span-block-start span-inline-start, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-inline, position-area:self-block-start self-inline-start, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-inline, position-area:span-self-block-start span-self-inline-start, ltr horizontal-tb]
- expected: FAIL
-
- [, position-area:start end, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block, position-area:start end, ltr horizontal-tb]
- expected: FAIL
-
- [flip-inline, position-area:start end, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-inline, position-area:start end, ltr horizontal-tb]
- expected: FAIL
-
- [flip-start, position-area:start, ltr horizontal-tb]
- expected: FAIL
-
- [flip-start, position-area:end, ltr horizontal-tb]
- expected: FAIL
-
- [flip-start, position-area:start end, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-start, position-area:start end, ltr horizontal-tb]
- expected: FAIL
-
- [flip-inline flip-start, position-area:start end, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-inline flip-start, position-area:start end, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-inline, position-area:span-start span-end, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-inline, position-area:self-start self-end, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block flip-inline, position-area:span-self-start span-self-end, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block, position-area:left center, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block, position-area:center top, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block, position-area:center, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block, position-area:start center, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block, position-area:center start, ltr horizontal-tb]
- expected: FAIL
-
- [flip-inline, position-area:center start, ltr horizontal-tb]
- expected: FAIL
-
- [flip-start, position-area:center start, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block, position-area:left span-all, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block, position-area:span-all top, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block, position-area:span-all, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block, position-area:start span-all, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block, position-area:span-all start, ltr horizontal-tb]
- expected: FAIL
-
- [flip-inline, position-area:span-all start, ltr horizontal-tb]
- expected: FAIL
-
- [flip-start, position-area:span-all start, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block, position-area:left span-top, ltr horizontal-tb]
- expected: FAIL
-
- [flip-inline, position-area:left span-top, ltr horizontal-tb]
- expected: FAIL
-
- [flip-start, position-area:span-block-start inline-end, ltr horizontal-tb]
- expected: FAIL
-
- [flip-block, position-area:left top, ltr vertical-rl]
- expected: FAIL
-
- [, position-area:x-start y-start, rtl horizontal-tb]
- expected: FAIL
-
- [flip-block, position-area:x-start y-start, rtl horizontal-tb]
- expected: FAIL
-
- [flip-inline, position-area:x-start y-start, rtl horizontal-tb]
- expected: FAIL
-
- [flip-block, position-area:x-end y-start, ltr vertical-rl]
- expected: FAIL
-
- [flip-inline, position-area:x-end y-start, ltr vertical-rl]
- expected: FAIL
-
- [flip-inline, position-area:start end, rtl horizontal-tb]
- expected: FAIL
-
- [flip-inline, position-area:start end, ltr vertical-rl]
- expected: FAIL
-
- [flip-block, position-area:start end, rtl horizontal-tb]
- expected: FAIL
-
- [flip-block, position-area:start end, ltr vertical-rl]
- expected: FAIL
diff --git a/testing/web-platform/tests/css/css-anchor-position/try-tactic-position-area.html b/testing/web-platform/tests/css/css-anchor-position/try-tactic-position-area.html
@@ -18,7 +18,7 @@
height: 50px;
background-color: coral;
}
- #target {
+ #target, #ref {
position: absolute;
left: 450px; /* force fallback */
width: 40px;
@@ -30,16 +30,11 @@
</style>
<div id=cb>
<div id=target></div>
+ <div id=ref></div>
</div>
<script>
-function test_computed_value(try_tactic, property, value, expected, direction, writing_mode) {
- if (direction==undefined) {
- direction = 'ltr';
- }
- if (writing_mode==undefined) {
- writing_mode = 'horizontal-tb';
- }
+function test_position_area_tactic(try_tactic, property, value, expected, direction = 'ltr', writing_mode = 'horizontal-tb') {
test((t) => {
t.add_cleanup(() => {
style.textContent = '';
@@ -55,197 +50,204 @@ function test_computed_value(try_tactic, property, value, expected, direction, w
#target {
position-try-fallbacks: --pf ${try_tactic};
}
+ #ref {
+ inset: initial;
+ ${property}:${expected};
+ }
`;
- assert_equals(getComputedStyle(target).getPropertyValue(property), expected);
+ let targetRect = target.getBoundingClientRect();
+ let refRect = ref.getBoundingClientRect();
+ for (let prop of ["top", "right", "bottom", "left"]) {
+ assert_equals(targetRect[prop], refRect[prop], `Should render as ${property}: ${expected}: ${prop}`);
+ }
}, `${try_tactic}, ${property}:${value}, ${direction} ${writing_mode}`);
}
-
// Physical:
-test_computed_value('flip-inline', 'position-area', 'left top', 'right top');
-test_computed_value('flip-inline', 'position-area', 'left bottom', 'right bottom');
-test_computed_value('flip-inline', 'position-area', 'right bottom', 'left bottom');
-test_computed_value('flip-inline', 'position-area', 'right top', 'left top');
-
-test_computed_value('flip-block', 'position-area', 'left top', 'left bottom');
-test_computed_value('flip-block', 'position-area', 'left bottom', 'left top');
-test_computed_value('flip-block', 'position-area', 'right bottom', 'right top');
-test_computed_value('flip-block', 'position-area', 'right top', 'right bottom');
-
-test_computed_value('flip-block flip-inline', 'position-area', 'left top', 'right bottom');
-test_computed_value('flip-block flip-inline', 'position-area', 'left bottom', 'right top');
-test_computed_value('flip-block flip-inline', 'position-area', 'right bottom', 'left top');
-test_computed_value('flip-block flip-inline', 'position-area', 'right top', 'left bottom');
-
-test_computed_value('flip-start', 'position-area', 'left top', 'left top');
-test_computed_value('flip-start', 'position-area', 'left bottom', 'right top');
-test_computed_value('flip-start', 'position-area', 'right bottom', 'right bottom');
-test_computed_value('flip-start', 'position-area', 'right top', 'left bottom');
-
-test_computed_value('flip-block flip-start', 'position-area', 'left top', 'right top');
-test_computed_value('flip-block flip-start', 'position-area', 'left bottom', 'left top');
-test_computed_value('flip-block flip-start', 'position-area', 'right bottom', 'left bottom');
-test_computed_value('flip-block flip-start', 'position-area', 'right top', 'right bottom');
-
-test_computed_value('flip-inline flip-start', 'position-area', 'left top', 'left bottom');
-test_computed_value('flip-inline flip-start', 'position-area', 'left bottom', 'right bottom');
-test_computed_value('flip-inline flip-start', 'position-area', 'right bottom', 'right top');
-test_computed_value('flip-inline flip-start', 'position-area', 'right top', 'left top');
-
-test_computed_value('flip-block flip-inline flip-start', 'position-area', 'left top', 'right bottom');
-test_computed_value('flip-block flip-inline flip-start', 'position-area', 'left bottom', 'left bottom');
-test_computed_value('flip-block flip-inline flip-start', 'position-area', 'right bottom', 'left top');
-test_computed_value('flip-block flip-inline flip-start', 'position-area', 'right top', 'right top');
+test_position_area_tactic('flip-inline', 'position-area', 'left top', 'right top');
+test_position_area_tactic('flip-inline', 'position-area', 'left bottom', 'right bottom');
+test_position_area_tactic('flip-inline', 'position-area', 'right bottom', 'left bottom');
+test_position_area_tactic('flip-inline', 'position-area', 'right top', 'left top');
+
+test_position_area_tactic('flip-block', 'position-area', 'left top', 'left bottom');
+test_position_area_tactic('flip-block', 'position-area', 'left bottom', 'left top');
+test_position_area_tactic('flip-block', 'position-area', 'right bottom', 'right top');
+test_position_area_tactic('flip-block', 'position-area', 'right top', 'right bottom');
+
+test_position_area_tactic('flip-block flip-inline', 'position-area', 'left top', 'right bottom');
+test_position_area_tactic('flip-block flip-inline', 'position-area', 'left bottom', 'right top');
+test_position_area_tactic('flip-block flip-inline', 'position-area', 'right bottom', 'left top');
+test_position_area_tactic('flip-block flip-inline', 'position-area', 'right top', 'left bottom');
+
+test_position_area_tactic('flip-start', 'position-area', 'left top', 'left top');
+test_position_area_tactic('flip-start', 'position-area', 'left bottom', 'right top');
+test_position_area_tactic('flip-start', 'position-area', 'right bottom', 'right bottom');
+test_position_area_tactic('flip-start', 'position-area', 'right top', 'left bottom');
+
+test_position_area_tactic('flip-block flip-start', 'position-area', 'left top', 'right top');
+test_position_area_tactic('flip-block flip-start', 'position-area', 'left bottom', 'left top');
+test_position_area_tactic('flip-block flip-start', 'position-area', 'right bottom', 'left bottom');
+test_position_area_tactic('flip-block flip-start', 'position-area', 'right top', 'right bottom');
+
+test_position_area_tactic('flip-inline flip-start', 'position-area', 'left top', 'left bottom');
+test_position_area_tactic('flip-inline flip-start', 'position-area', 'left bottom', 'right bottom');
+test_position_area_tactic('flip-inline flip-start', 'position-area', 'right bottom', 'right top');
+test_position_area_tactic('flip-inline flip-start', 'position-area', 'right top', 'left top');
+
+test_position_area_tactic('flip-block flip-inline flip-start', 'position-area', 'left top', 'right bottom');
+test_position_area_tactic('flip-block flip-inline flip-start', 'position-area', 'left bottom', 'left bottom');
+test_position_area_tactic('flip-block flip-inline flip-start', 'position-area', 'right bottom', 'left top');
+test_position_area_tactic('flip-block flip-inline flip-start', 'position-area', 'right top', 'right top');
// Variations:
-test_computed_value('flip-block flip-inline', 'position-area', 'span-left span-top', 'span-right span-bottom');
+test_position_area_tactic('flip-block flip-inline', 'position-area', 'span-left span-top', 'span-right span-bottom');
// XY:
-test_computed_value('flip-inline', 'position-area', 'x-start y-start', 'x-end y-start');
-test_computed_value('flip-inline', 'position-area', 'x-start y-end', 'x-end y-end');
-test_computed_value('flip-inline', 'position-area', 'x-end y-end', 'x-start y-end');
-test_computed_value('flip-inline', 'position-area', 'x-end y-start', 'x-start y-start');
-
-test_computed_value('flip-block', 'position-area', 'x-start y-start', 'x-start y-end');
-test_computed_value('flip-block', 'position-area', 'x-start y-end', 'x-start y-start');
-test_computed_value('flip-block', 'position-area', 'x-end y-end', 'x-end y-start');
-test_computed_value('flip-block', 'position-area', 'x-end y-start', 'x-end y-end');
-
-test_computed_value('flip-block flip-inline', 'position-area', 'x-start y-start', 'x-end y-end');
-test_computed_value('flip-block flip-inline', 'position-area', 'x-start y-end', 'x-end y-start');
-test_computed_value('flip-block flip-inline', 'position-area', 'x-end y-end', 'x-start y-start');
-test_computed_value('flip-block flip-inline', 'position-area', 'x-end y-start', 'x-start y-end');
-
-test_computed_value('flip-start', 'position-area', 'x-start y-start', 'x-start y-start');
-test_computed_value('flip-start', 'position-area', 'x-start y-end', 'x-end y-start');
-test_computed_value('flip-start', 'position-area', 'x-end y-end', 'x-end y-end');
-test_computed_value('flip-start', 'position-area', 'x-end y-start', 'x-start y-end');
-
-test_computed_value('flip-block flip-start', 'position-area', 'x-start y-start', 'x-end y-start');
-test_computed_value('flip-block flip-start', 'position-area', 'x-start y-end', 'x-start y-start');
-test_computed_value('flip-block flip-start', 'position-area', 'x-end y-end', 'x-start y-end');
-test_computed_value('flip-block flip-start', 'position-area', 'x-end y-start', 'x-end y-end');
-
-test_computed_value('flip-inline flip-start', 'position-area', 'x-start y-start', 'x-start y-end');
-test_computed_value('flip-inline flip-start', 'position-area', 'x-start y-end', 'x-end y-end');
-test_computed_value('flip-inline flip-start', 'position-area', 'x-end y-end', 'x-end y-start');
-test_computed_value('flip-inline flip-start', 'position-area', 'x-end y-start', 'x-start y-start');
-
-test_computed_value('flip-block flip-inline flip-start', 'position-area', 'x-start y-start', 'x-end y-end');
-test_computed_value('flip-block flip-inline flip-start', 'position-area', 'x-start y-end', 'x-start y-end');
-test_computed_value('flip-block flip-inline flip-start', 'position-area', 'x-end y-end', 'x-start y-start');
-test_computed_value('flip-block flip-inline flip-start', 'position-area', 'x-end y-start', 'x-end y-start');
+test_position_area_tactic('flip-inline', 'position-area', 'x-start y-start', 'x-end y-start');
+test_position_area_tactic('flip-inline', 'position-area', 'x-start y-end', 'x-end y-end');
+test_position_area_tactic('flip-inline', 'position-area', 'x-end y-end', 'x-start y-end');
+test_position_area_tactic('flip-inline', 'position-area', 'x-end y-start', 'x-start y-start');
+
+test_position_area_tactic('flip-block', 'position-area', 'x-start y-start', 'x-start y-end');
+test_position_area_tactic('flip-block', 'position-area', 'x-start y-end', 'x-start y-start');
+test_position_area_tactic('flip-block', 'position-area', 'x-end y-end', 'x-end y-start');
+test_position_area_tactic('flip-block', 'position-area', 'x-end y-start', 'x-end y-end');
+
+test_position_area_tactic('flip-block flip-inline', 'position-area', 'x-start y-start', 'x-end y-end');
+test_position_area_tactic('flip-block flip-inline', 'position-area', 'x-start y-end', 'x-end y-start');
+test_position_area_tactic('flip-block flip-inline', 'position-area', 'x-end y-end', 'x-start y-start');
+test_position_area_tactic('flip-block flip-inline', 'position-area', 'x-end y-start', 'x-start y-end');
+
+test_position_area_tactic('flip-start', 'position-area', 'x-start y-start', 'x-start y-start');
+test_position_area_tactic('flip-start', 'position-area', 'x-start y-end', 'x-end y-start');
+test_position_area_tactic('flip-start', 'position-area', 'x-end y-end', 'x-end y-end');
+test_position_area_tactic('flip-start', 'position-area', 'x-end y-start', 'x-start y-end');
+
+test_position_area_tactic('flip-block flip-start', 'position-area', 'x-start y-start', 'x-end y-start');
+test_position_area_tactic('flip-block flip-start', 'position-area', 'x-start y-end', 'x-start y-start');
+test_position_area_tactic('flip-block flip-start', 'position-area', 'x-end y-end', 'x-start y-end');
+test_position_area_tactic('flip-block flip-start', 'position-area', 'x-end y-start', 'x-end y-end');
+
+test_position_area_tactic('flip-inline flip-start', 'position-area', 'x-start y-start', 'x-start y-end');
+test_position_area_tactic('flip-inline flip-start', 'position-area', 'x-start y-end', 'x-end y-end');
+test_position_area_tactic('flip-inline flip-start', 'position-area', 'x-end y-end', 'x-end y-start');
+test_position_area_tactic('flip-inline flip-start', 'position-area', 'x-end y-start', 'x-start y-start');
+
+test_position_area_tactic('flip-block flip-inline flip-start', 'position-area', 'x-start y-start', 'x-end y-end');
+test_position_area_tactic('flip-block flip-inline flip-start', 'position-area', 'x-start y-end', 'x-start y-end');
+test_position_area_tactic('flip-block flip-inline flip-start', 'position-area', 'x-end y-end', 'x-start y-start');
+test_position_area_tactic('flip-block flip-inline flip-start', 'position-area', 'x-end y-start', 'x-end y-start');
// Variations:
-test_computed_value('flip-block flip-inline', 'position-area', 'span-x-start span-y-start', 'span-x-end span-y-end');
-test_computed_value('flip-block flip-inline', 'position-area', 'self-x-start self-y-start', 'self-x-end self-y-end');
-test_computed_value('flip-block flip-inline', 'position-area', 'span-self-x-start span-self-y-start', 'span-self-x-end span-self-y-end');
+test_position_area_tactic('flip-block flip-inline', 'position-area', 'span-x-start span-y-start', 'span-x-end span-y-end');
+test_position_area_tactic('flip-block flip-inline', 'position-area', 'self-x-start self-y-start', 'self-x-end self-y-end');
+test_position_area_tactic('flip-block flip-inline', 'position-area', 'span-self-x-start span-self-y-start', 'span-self-x-end span-self-y-end');
// Logical:
-test_computed_value('flip-inline', 'position-area', 'block-start inline-start', 'start end');
-test_computed_value('flip-inline', 'position-area', 'block-end inline-start', 'end');
-test_computed_value('flip-inline', 'position-area', 'block-end inline-end', 'end start');
-test_computed_value('flip-inline', 'position-area', 'block-start inline-end', 'start');
-
-test_computed_value('flip-block', 'position-area', 'block-start inline-start', 'end start');
-test_computed_value('flip-block', 'position-area', 'block-end inline-start', 'start');
-test_computed_value('flip-block', 'position-area', 'block-end inline-end', 'start end');
-test_computed_value('flip-block', 'position-area', 'block-start inline-end', 'end');
-
-test_computed_value('flip-block flip-inline', 'position-area', 'block-start inline-start', 'end');
-test_computed_value('flip-block flip-inline', 'position-area', 'block-end inline-start', 'start end');
-test_computed_value('flip-block flip-inline', 'position-area', 'block-end inline-end', 'start');
-test_computed_value('flip-block flip-inline', 'position-area', 'block-start inline-end', 'end start');
-
-test_computed_value('flip-start', 'position-area', 'block-start inline-start', 'start');
-test_computed_value('flip-start', 'position-area', 'block-end inline-start', 'start end');
-test_computed_value('flip-start', 'position-area', 'block-end inline-end', 'end');
-test_computed_value('flip-start', 'position-area', 'block-start inline-end', 'end start');
-
-test_computed_value('flip-block flip-start', 'position-area', 'block-start inline-start', 'start end');
-test_computed_value('flip-block flip-start', 'position-area', 'block-end inline-start', 'start');
-test_computed_value('flip-block flip-start', 'position-area', 'block-end inline-end', 'end start');
-test_computed_value('flip-block flip-start', 'position-area', 'block-start inline-end', 'end');
-
-test_computed_value('flip-inline flip-start', 'position-area', 'block-start inline-start', 'end start');
-test_computed_value('flip-inline flip-start', 'position-area', 'block-end inline-start', 'end');
-test_computed_value('flip-inline flip-start', 'position-area', 'block-end inline-end', 'start end');
-test_computed_value('flip-inline flip-start', 'position-area', 'block-start inline-end', 'start');
-
-test_computed_value('flip-block flip-inline flip-start', 'position-area', 'block-start inline-start', 'end');
-test_computed_value('flip-block flip-inline flip-start', 'position-area', 'block-end inline-start', 'end start');
-test_computed_value('flip-block flip-inline flip-start', 'position-area', 'block-end inline-end', 'start');
-test_computed_value('flip-block flip-inline flip-start', 'position-area', 'block-start inline-end', 'start end');
+test_position_area_tactic('flip-inline', 'position-area', 'block-start inline-start', 'start end');
+test_position_area_tactic('flip-inline', 'position-area', 'block-end inline-start', 'end');
+test_position_area_tactic('flip-inline', 'position-area', 'block-end inline-end', 'end start');
+test_position_area_tactic('flip-inline', 'position-area', 'block-start inline-end', 'start');
+
+test_position_area_tactic('flip-block', 'position-area', 'block-start inline-start', 'end start');
+test_position_area_tactic('flip-block', 'position-area', 'block-end inline-start', 'start');
+test_position_area_tactic('flip-block', 'position-area', 'block-end inline-end', 'start end');
+test_position_area_tactic('flip-block', 'position-area', 'block-start inline-end', 'end');
+
+test_position_area_tactic('flip-block flip-inline', 'position-area', 'block-start inline-start', 'end');
+test_position_area_tactic('flip-block flip-inline', 'position-area', 'block-end inline-start', 'start end');
+test_position_area_tactic('flip-block flip-inline', 'position-area', 'block-end inline-end', 'start');
+test_position_area_tactic('flip-block flip-inline', 'position-area', 'block-start inline-end', 'end start');
+
+test_position_area_tactic('flip-start', 'position-area', 'block-start inline-start', 'start');
+test_position_area_tactic('flip-start', 'position-area', 'block-end inline-start', 'start end');
+test_position_area_tactic('flip-start', 'position-area', 'block-end inline-end', 'end');
+test_position_area_tactic('flip-start', 'position-area', 'block-start inline-end', 'end start');
+
+test_position_area_tactic('flip-block flip-start', 'position-area', 'block-start inline-start', 'start end');
+test_position_area_tactic('flip-block flip-start', 'position-area', 'block-end inline-start', 'start');
+test_position_area_tactic('flip-block flip-start', 'position-area', 'block-end inline-end', 'end start');
+test_position_area_tactic('flip-block flip-start', 'position-area', 'block-start inline-end', 'end');
+
+test_position_area_tactic('flip-inline flip-start', 'position-area', 'block-start inline-start', 'end start');
+test_position_area_tactic('flip-inline flip-start', 'position-area', 'block-end inline-start', 'end');
+test_position_area_tactic('flip-inline flip-start', 'position-area', 'block-end inline-end', 'start end');
+test_position_area_tactic('flip-inline flip-start', 'position-area', 'block-start inline-end', 'start');
+
+test_position_area_tactic('flip-block flip-inline flip-start', 'position-area', 'block-start inline-start', 'end');
+test_position_area_tactic('flip-block flip-inline flip-start', 'position-area', 'block-end inline-start', 'end start');
+test_position_area_tactic('flip-block flip-inline flip-start', 'position-area', 'block-end inline-end', 'start');
+test_position_area_tactic('flip-block flip-inline flip-start', 'position-area', 'block-start inline-end', 'start end');
// Variations:
-test_computed_value('flip-block flip-inline', 'position-area', 'span-block-start span-inline-start', 'span-end');
-test_computed_value('flip-block flip-inline', 'position-area', 'self-block-start self-inline-start', 'self-end');
-test_computed_value('flip-block flip-inline', 'position-area', 'span-self-block-start span-self-inline-start', 'span-self-end');
+test_position_area_tactic('flip-block flip-inline', 'position-area', 'span-block-start span-inline-start', 'span-end');
+test_position_area_tactic('flip-block flip-inline', 'position-area', 'self-block-start self-inline-start', 'self-end');
+test_position_area_tactic('flip-block flip-inline', 'position-area', 'span-self-block-start span-self-inline-start', 'span-self-end');
// start/end
-test_computed_value('', 'position-area', 'start end', 'start end');
+test_position_area_tactic('', 'position-area', 'start end', 'start end');
-test_computed_value('flip-block', 'position-area', 'start end', 'end');
+test_position_area_tactic('flip-block', 'position-area', 'start end', 'end');
-test_computed_value('flip-inline', 'position-area', 'start end', 'start');
+test_position_area_tactic('flip-inline', 'position-area', 'start end', 'start');
-test_computed_value('flip-block flip-inline', 'position-area', 'start end', 'end start');
+test_position_area_tactic('flip-block flip-inline', 'position-area', 'start end', 'end start');
-test_computed_value('flip-start', 'position-area', 'start', 'start');
-test_computed_value('flip-start', 'position-area', 'end', 'end');
-test_computed_value('flip-start', 'position-area', 'start end', 'end start');
+test_position_area_tactic('flip-start', 'position-area', 'start', 'start');
+test_position_area_tactic('flip-start', 'position-area', 'end', 'end');
+test_position_area_tactic('flip-start', 'position-area', 'start end', 'end start');
-test_computed_value('flip-block flip-start', 'position-area', 'start end', 'end');
+test_position_area_tactic('flip-block flip-start', 'position-area', 'start end', 'end');
-test_computed_value('flip-inline flip-start', 'position-area', 'start end', 'start');
+test_position_area_tactic('flip-inline flip-start', 'position-area', 'start end', 'start');
-test_computed_value('flip-block flip-inline flip-start', 'position-area', 'start end', 'start end');
+test_position_area_tactic('flip-block flip-inline flip-start', 'position-area', 'start end', 'start end');
// Variations:
-test_computed_value('flip-block flip-inline', 'position-area', 'span-start span-end', 'span-end span-start');
-test_computed_value('flip-block flip-inline', 'position-area', 'self-start self-end', 'self-end self-start');
-test_computed_value('flip-block flip-inline', 'position-area', 'span-self-start span-self-end', 'span-self-end span-self-start');
+test_position_area_tactic('flip-block flip-inline', 'position-area', 'span-start span-end', 'span-end span-start');
+test_position_area_tactic('flip-block flip-inline', 'position-area', 'self-start self-end', 'self-end self-start');
+test_position_area_tactic('flip-block flip-inline', 'position-area', 'span-self-start span-self-end', 'span-self-end span-self-start');
// center
-test_computed_value('flip-block', 'position-area', 'left center', 'left center');
-test_computed_value('flip-block', 'position-area', 'center top', 'center bottom');
-test_computed_value('flip-block', 'position-area', 'center', 'center');
-test_computed_value('flip-block', 'position-area', 'start center', 'end center');
-test_computed_value('flip-block', 'position-area', 'center start', 'center start');
-test_computed_value('flip-inline', 'position-area', 'center start', 'center end');
-test_computed_value('flip-start', 'position-area', 'center start', 'start center');
+test_position_area_tactic('flip-block', 'position-area', 'left center', 'left center');
+test_position_area_tactic('flip-block', 'position-area', 'center top', 'center bottom');
+test_position_area_tactic('flip-block', 'position-area', 'center', 'center');
+test_position_area_tactic('flip-block', 'position-area', 'start center', 'end center');
+test_position_area_tactic('flip-block', 'position-area', 'center start', 'center start');
+test_position_area_tactic('flip-inline', 'position-area', 'center start', 'center end');
+test_position_area_tactic('flip-start', 'position-area', 'center start', 'start center');
// span-all
-test_computed_value('flip-block', 'position-area', 'left span-all', 'left');
-test_computed_value('flip-block', 'position-area', 'span-all top', 'bottom');
-test_computed_value('flip-block', 'position-area', 'span-all', 'span-all');
-test_computed_value('flip-block', 'position-area', 'start span-all', 'block-end');
-test_computed_value('flip-block', 'position-area', 'span-all start', 'inline-start');
-test_computed_value('flip-inline', 'position-area', 'span-all start', 'inline-end');
-test_computed_value('flip-start', 'position-area', 'span-all start', 'block-start');
+test_position_area_tactic('flip-block', 'position-area', 'left span-all', 'left');
+test_position_area_tactic('flip-block', 'position-area', 'span-all top', 'bottom');
+test_position_area_tactic('flip-block', 'position-area', 'span-all', 'span-all');
+test_position_area_tactic('flip-block', 'position-area', 'start span-all', 'block-end');
+test_position_area_tactic('flip-block', 'position-area', 'span-all start', 'inline-start');
+test_position_area_tactic('flip-inline', 'position-area', 'span-all start', 'inline-end');
+test_position_area_tactic('flip-start', 'position-area', 'span-all start', 'block-start');
// Span mix:
-test_computed_value('flip-block', 'position-area', 'left span-top', 'left span-bottom');
-test_computed_value('flip-inline', 'position-area', 'left span-top', 'right span-top');
-test_computed_value('flip-start', 'position-area', 'span-block-start inline-end', 'end span-start');
+test_position_area_tactic('flip-block', 'position-area', 'left span-top', 'left span-bottom');
+test_position_area_tactic('flip-inline', 'position-area', 'left span-top', 'right span-top');
+test_position_area_tactic('flip-start', 'position-area', 'span-block-start inline-end', 'end span-start');
// Writing modes:
-test_computed_value('flip-block', 'position-area', 'left top', 'right top', 'ltr', 'vertical-rl');
-
-test_computed_value('', 'position-area', 'x-start y-start', 'x-start y-start', 'rtl');
-test_computed_value('flip-block', 'position-area', 'x-start y-start', 'x-start y-end', 'rtl');
-test_computed_value('flip-inline', 'position-area', 'x-start y-start', 'x-end y-start', 'rtl');
-test_computed_value('flip-block', 'position-area', 'x-end y-start', 'x-start y-start', 'ltr', 'vertical-rl');
-test_computed_value('flip-inline', 'position-area', 'x-end y-start', 'x-end y-end', 'ltr', 'vertical-rl');
-
-test_computed_value('flip-inline', 'position-area', 'start end', 'start', 'rtl');
-test_computed_value('flip-inline', 'position-area', 'start end', 'start', 'ltr', 'vertical-rl');
-test_computed_value('flip-block', 'position-area', 'start end', 'end', 'rtl');
-test_computed_value('flip-block', 'position-area', 'start end', 'end', 'ltr', 'vertical-rl');
+test_position_area_tactic('flip-block', 'position-area', 'left top', 'right top', 'ltr', 'vertical-rl');
+
+test_position_area_tactic('', 'position-area', 'x-start y-start', 'x-start y-start', 'rtl');
+test_position_area_tactic('flip-block', 'position-area', 'x-start y-start', 'x-start y-end', 'rtl');
+test_position_area_tactic('flip-inline', 'position-area', 'x-start y-start', 'x-end y-start', 'rtl');
+test_position_area_tactic('flip-block', 'position-area', 'x-end y-start', 'x-start y-start', 'ltr', 'vertical-rl');
+test_position_area_tactic('flip-inline', 'position-area', 'x-end y-start', 'x-end y-end', 'ltr', 'vertical-rl');
+
+test_position_area_tactic('flip-inline', 'position-area', 'start end', 'start', 'rtl');
+test_position_area_tactic('flip-inline', 'position-area', 'start end', 'start', 'ltr', 'vertical-rl');
+test_position_area_tactic('flip-block', 'position-area', 'start end', 'end', 'rtl');
+test_position_area_tactic('flip-block', 'position-area', 'start end', 'end', 'ltr', 'vertical-rl');
</script>