<!DOCTYPE html>
<html class="reftest-wait">
<link rel="help" href="https://drafts.css-houdini.org/css-paint-api/">
<link rel="match" href="style-background-image-ref.html">
<style>
.container {
  width: 100px;
  height: 100px;
  margin-left: 2px;
  --foo:bar;
}

#canvas-geometry {
  background-image: paint(geometry);
}
</style>
<script src="/common/reftest-wait.js"></script>
<script src="/common/worklet-reftest.js"></script>
<body>
<div id="canvas-geometry" class="container"></div>

<script id="code" type="text/worklet">
registerPaint('geometry', class {
    static get inputProperties() {
        return [
            '--bar',
            '--foo',
            'empty-cells',
            'margin-left',
        ];
    }
    paint(ctx, geom, styleMap) {
        const properties = [...styleMap.keys()].sort();
        var serializedStrings = [];
        for (let i = 0; i < properties.length; i++) {
            const value = styleMap.get(properties[i]);
            let serialized;
            if (value)
                serialized = properties[i].toString() + ': [' + value.constructor.name + '=' + value.toString() + ']';
            else
                serialized = properties[i].toString() + ': [null]';
            serializedStrings.push(serialized);
        }
        ctx.fillStyle = 'green';
        if (serializedStrings[0] != "--bar: [CSSUnparsedValue=]")
            ctx.fillStyle = 'red';
        if (serializedStrings[1] != "--foo: [CSSUnparsedValue=bar]")
            ctx.fillStyle = 'blue';
        if (serializedStrings[2] != "empty-cells: [CSSKeywordValue=show]")
            ctx.fillStyle = 'yellow';
        if (serializedStrings[3] != "margin-left: [CSSUnitValue=2px]")
            ctx.fillStyle = 'cyan';
        ctx.fillRect(0, 0, geom.width, geom.height);
    }
});
</script>

<script>
    importWorkletAndTerminateTestAfterAsyncPaint(CSS.paintWorklet, document.getElementById('code').textContent);
</script>
</body>
</html>
