summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/css/css-layout-api/edges/support/edges.js
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/css/css-layout-api/edges/support/edges.js')
-rw-r--r--testing/web-platform/tests/css/css-layout-api/edges/support/edges.js38
1 files changed, 38 insertions, 0 deletions
diff --git a/testing/web-platform/tests/css/css-layout-api/edges/support/edges.js b/testing/web-platform/tests/css/css-layout-api/edges/support/edges.js
new file mode 100644
index 0000000000..b70a42f398
--- /dev/null
+++ b/testing/web-platform/tests/css/css-layout-api/edges/support/edges.js
@@ -0,0 +1,38 @@
+import {areArraysEqual} from '/common/arrays.js';
+
+function parseNumber(value) {
+ const num = parseInt(value.toString());
+ if (isNaN(num)) return 0;
+ return num;
+}
+
+registerLayout('test', class {
+ static get inputProperties() {
+ return [
+ '--edges-inline-start-expected',
+ '--edges-inline-end-expected',
+ '--edges-block-start-expected',
+ '--edges-block-end-expected',
+ ];
+ }
+
+ async intrinsicSizes() {}
+ async layout(children, edges, constraints, styleMap) {
+ const actual = this.constructor.inputProperties.map(
+ prop => parseNumber(styleMap.get(prop))
+ );
+
+ const expected = [
+ edges.inlineStart,
+ edges.inlineEnd,
+ edges.blockStart,
+ edges.blockEnd,
+ ];
+
+ if (!areArraysEqual(expected, actual)) {
+ return {autoBlockSize: 0, childFragments: []};
+ }
+
+ return {autoBlockSize: 100, childFragment: []};
+ }
+});