diff options
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.js | 38 |
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: []}; + } +}); |