summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/css/css-layout-api/position-fragment
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:22:09 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:22:09 +0000
commit43a97878ce14b72f0981164f87f2e35e14151312 (patch)
tree620249daf56c0258faa40cbdcf9cfba06de2a846 /testing/web-platform/tests/css/css-layout-api/position-fragment
parentInitial commit. (diff)
downloadfirefox-43a97878ce14b72f0981164f87f2e35e14151312.tar.xz
firefox-43a97878ce14b72f0981164f87f2e35e14151312.zip
Adding upstream version 110.0.1.upstream/110.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/css/css-layout-api/position-fragment')
-rw-r--r--testing/web-platform/tests/css/css-layout-api/position-fragment/htb-ltr.https.html54
-rw-r--r--testing/web-platform/tests/css/css-layout-api/position-fragment/htb-rtl.https.html54
-rw-r--r--testing/web-platform/tests/css/css-layout-api/position-fragment/ref.html33
-rw-r--r--testing/web-platform/tests/css/css-layout-api/position-fragment/support/layout-position-child-worklet.js20
-rw-r--r--testing/web-platform/tests/css/css-layout-api/position-fragment/vlr-ltr.https.html54
-rw-r--r--testing/web-platform/tests/css/css-layout-api/position-fragment/vlr-rtl.https.html54
-rw-r--r--testing/web-platform/tests/css/css-layout-api/position-fragment/vrl-ltr.https.html54
-rw-r--r--testing/web-platform/tests/css/css-layout-api/position-fragment/vrl-rtl.https.html54
8 files changed, 377 insertions, 0 deletions
diff --git a/testing/web-platform/tests/css/css-layout-api/position-fragment/htb-ltr.https.html b/testing/web-platform/tests/css/css-layout-api/position-fragment/htb-ltr.https.html
new file mode 100644
index 0000000000..f60109ca57
--- /dev/null
+++ b/testing/web-platform/tests/css/css-layout-api/position-fragment/htb-ltr.https.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layoutfragment">
+<link rel="match" href="ref.html">
+<meta name="assert" content="This test checks that child fragments get positioned correctly." />
+<style>
+.test {
+ background: red;
+ width: 100px;
+ height: 100px;
+}
+
+.test {
+ writing-mode: horizontal-tb;
+ direction: ltr;
+}
+
+.child-1 {
+ background: rebeccapurple;
+ width: 10px;
+ height: 20px;
+
+ --inline-offset: 5;
+ --block-offset: 25;
+}
+
+.child-2 {
+ writing-mode: vertical-rl;
+ background: rebeccapurple;
+ width: 15px;
+ height: 25px;
+
+ --inline-offset: 50;
+ --block-offset: 60;
+}
+
+@supports (display: layout(test)) {
+ .test {
+ background: green;
+ display: layout(test);
+ }
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+
+<div class="test">
+ <div class="child-1"></div>
+ <div class="child-2"></div>
+</div>
+
+<script>
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-position-child-worklet.js'});
+</script>
diff --git a/testing/web-platform/tests/css/css-layout-api/position-fragment/htb-rtl.https.html b/testing/web-platform/tests/css/css-layout-api/position-fragment/htb-rtl.https.html
new file mode 100644
index 0000000000..980a3cdc25
--- /dev/null
+++ b/testing/web-platform/tests/css/css-layout-api/position-fragment/htb-rtl.https.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layoutfragment">
+<link rel="match" href="ref.html">
+<meta name="assert" content="This test checks that child fragments get positioned correctly." />
+<style>
+.test {
+ background: red;
+ width: 100px;
+ height: 100px;
+}
+
+.test {
+ writing-mode: horizontal-tb;
+ direction: rtl;
+}
+
+.child-1 {
+ background: rebeccapurple;
+ width: 10px;
+ height: 20px;
+
+ --inline-offset: 85;
+ --block-offset: 25;
+}
+
+.child-2 {
+ writing-mode: vertical-rl;
+ background: rebeccapurple;
+ width: 15px;
+ height: 25px;
+
+ --inline-offset: 35;
+ --block-offset: 60;
+}
+
+@supports (display: layout(test)) {
+ .test {
+ background: green;
+ display: layout(test);
+ }
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+
+<div class="test">
+ <div class="child-1"></div>
+ <div class="child-2"></div>
+</div>
+
+<script>
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-position-child-worklet.js'});
+</script>
diff --git a/testing/web-platform/tests/css/css-layout-api/position-fragment/ref.html b/testing/web-platform/tests/css/css-layout-api/position-fragment/ref.html
new file mode 100644
index 0000000000..4ce0a6e39d
--- /dev/null
+++ b/testing/web-platform/tests/css/css-layout-api/position-fragment/ref.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<style>
+.result {
+ position: relative;
+ background: green;
+ width: 100px;
+ height: 100px;
+}
+
+.result-child-1 {
+ background: rebeccapurple;
+ width: 10px;
+ height: 20px;
+
+ position: absolute;
+ top: 25px;
+ left: 5px;
+}
+
+.result-child-2 {
+ background: rebeccapurple;
+ width: 15px;
+ height: 25px;
+
+ position: absolute;
+ top: 60px;
+ left: 50px;
+}
+</style>
+<div class="result">
+ <div class="result-child-1"></div>
+ <div class="result-child-2"></div>
+</div>
diff --git a/testing/web-platform/tests/css/css-layout-api/position-fragment/support/layout-position-child-worklet.js b/testing/web-platform/tests/css/css-layout-api/position-fragment/support/layout-position-child-worklet.js
new file mode 100644
index 0000000000..7d5c494952
--- /dev/null
+++ b/testing/web-platform/tests/css/css-layout-api/position-fragment/support/layout-position-child-worklet.js
@@ -0,0 +1,20 @@
+registerLayout('test', class {
+ static get childInputProperties() {
+ return [
+ '--inline-offset',
+ '--block-offset',
+ ];
+ }
+
+ async intrinsicSizes() {}
+ async layout(children, edges, constraints, styleMap) {
+ const childFragments = await Promise.all(children.map((child) => child.layoutNextFragment({})));
+
+ for (let i = 0; i < children.length; i++) {
+ childFragments[i].inlineOffset = parseInt(children[i].styleMap.get('--inline-offset').toString());
+ childFragments[i].blockOffset = parseInt(children[i].styleMap.get('--block-offset').toString());
+ }
+
+ return {autoBlockSize: 0, childFragments};
+ }
+});
diff --git a/testing/web-platform/tests/css/css-layout-api/position-fragment/vlr-ltr.https.html b/testing/web-platform/tests/css/css-layout-api/position-fragment/vlr-ltr.https.html
new file mode 100644
index 0000000000..d75a4af639
--- /dev/null
+++ b/testing/web-platform/tests/css/css-layout-api/position-fragment/vlr-ltr.https.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layoutfragment">
+<link rel="match" href="ref.html">
+<meta name="assert" content="This test checks that child fragments get positioned correctly." />
+<style>
+.test {
+ background: red;
+ width: 100px;
+ height: 100px;
+}
+
+.test {
+ writing-mode: vertical-lr;
+ direction: ltr;
+}
+
+.child-1 {
+ background: rebeccapurple;
+ width: 10px;
+ height: 20px;
+
+ --inline-offset: 25;
+ --block-offset: 5;
+}
+
+.child-2 {
+ writing-mode: vertical-rl;
+ background: rebeccapurple;
+ width: 15px;
+ height: 25px;
+
+ --inline-offset: 60;
+ --block-offset: 50;
+}
+
+@supports (display: layout(test)) {
+ .test {
+ background: green;
+ display: layout(test);
+ }
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+
+<div class="test">
+ <div class="child-1"></div>
+ <div class="child-2"></div>
+</div>
+
+<script>
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-position-child-worklet.js'});
+</script>
diff --git a/testing/web-platform/tests/css/css-layout-api/position-fragment/vlr-rtl.https.html b/testing/web-platform/tests/css/css-layout-api/position-fragment/vlr-rtl.https.html
new file mode 100644
index 0000000000..a8ef6c699c
--- /dev/null
+++ b/testing/web-platform/tests/css/css-layout-api/position-fragment/vlr-rtl.https.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layoutfragment">
+<link rel="match" href="ref.html">
+<meta name="assert" content="This test checks that child fragments get positioned correctly." />
+<style>
+.test {
+ background: red;
+ width: 100px;
+ height: 100px;
+}
+
+.test {
+ writing-mode: vertical-lr;
+ direction: rtl;
+}
+
+.child-1 {
+ background: rebeccapurple;
+ width: 10px;
+ height: 20px;
+
+ --inline-offset: 55;
+ --block-offset: 5;
+}
+
+.child-2 {
+ writing-mode: vertical-rl;
+ background: rebeccapurple;
+ width: 15px;
+ height: 25px;
+
+ --inline-offset: 15;
+ --block-offset: 50;
+}
+
+@supports (display: layout(test)) {
+ .test {
+ background: green;
+ display: layout(test);
+ }
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+
+<div class="test">
+ <div class="child-1"></div>
+ <div class="child-2"></div>
+</div>
+
+<script>
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-position-child-worklet.js'});
+</script>
diff --git a/testing/web-platform/tests/css/css-layout-api/position-fragment/vrl-ltr.https.html b/testing/web-platform/tests/css/css-layout-api/position-fragment/vrl-ltr.https.html
new file mode 100644
index 0000000000..21c9ce54d6
--- /dev/null
+++ b/testing/web-platform/tests/css/css-layout-api/position-fragment/vrl-ltr.https.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layoutfragment">
+<link rel="match" href="ref.html">
+<meta name="assert" content="This test checks that child fragments get positioned correctly." />
+<style>
+.test {
+ background: red;
+ width: 100px;
+ height: 100px;
+}
+
+.test {
+ writing-mode: vertical-rl;
+ direction: ltr;
+}
+
+.child-1 {
+ background: rebeccapurple;
+ width: 10px;
+ height: 20px;
+
+ --inline-offset: 25;
+ --block-offset: 85;
+}
+
+.child-2 {
+ writing-mode: vertical-rl;
+ background: rebeccapurple;
+ width: 15px;
+ height: 25px;
+
+ --inline-offset: 60;
+ --block-offset: 35;
+}
+
+@supports (display: layout(test)) {
+ .test {
+ background: green;
+ display: layout(test);
+ }
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+
+<div class="test">
+ <div class="child-1"></div>
+ <div class="child-2"></div>
+</div>
+
+<script>
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-position-child-worklet.js'});
+</script>
diff --git a/testing/web-platform/tests/css/css-layout-api/position-fragment/vrl-rtl.https.html b/testing/web-platform/tests/css/css-layout-api/position-fragment/vrl-rtl.https.html
new file mode 100644
index 0000000000..777e725da9
--- /dev/null
+++ b/testing/web-platform/tests/css/css-layout-api/position-fragment/vrl-rtl.https.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layoutfragment">
+<link rel="match" href="ref.html">
+<meta name="assert" content="This test checks that child fragments get positioned correctly." />
+<style>
+.test {
+ background: red;
+ width: 100px;
+ height: 100px;
+}
+
+.test {
+ writing-mode: vertical-rl;
+ direction: rtl;
+}
+
+.child-1 {
+ background: rebeccapurple;
+ width: 10px;
+ height: 20px;
+
+ --inline-offset: 55;
+ --block-offset: 85;
+}
+
+.child-2 {
+ writing-mode: vertical-rl;
+ background: rebeccapurple;
+ width: 15px;
+ height: 25px;
+
+ --inline-offset: 15;
+ --block-offset: 35;
+}
+
+@supports (display: layout(test)) {
+ .test {
+ background: green;
+ display: layout(test);
+ }
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+
+<div class="test">
+ <div class="child-1"></div>
+ <div class="child-2"></div>
+</div>
+
+<script>
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-position-child-worklet.js'});
+</script>