<!DOCTYPE html>
<html class="reftest-wait">
<title>Test styleMap functions</title>
<link rel="help" href="https://www.w3.org/TR/css-paint-api-1/#examples">
<link rel="match" href="parse-input-arguments-ref.html">
<script src="/common/reftest-wait.js"></script>
<script src="/common/worklet-reftest.js"></script>
<script src="./resources/utils.js"></script>
<body>
<style>
  #target {
    width: 100px;
    height: 100px;
    background: paint(style-map);
  }
</style>
<div id="target"></div>
<script>
    try {
      CSS.registerProperty({
        name: '--prop',
        syntax: '<length>+',
        initialValue: '10px 10px 10px 10px',
        inherits: false
      });

      const worklet = `
        registerPaint('style-map', class {
          static get inputProperties() { return ['--prop']; }
          paint(ctx, geom, styleMap) {
            let serialize = (v) => '[' + v.constructor.name + ' ' + v.toString() + ']';
            let expected = '[CSSUnitValue 10px]';
            let isExpected = x => serialize(x) === expected;

            let pass = true;

            pass &= styleMap.has('--prop');
            pass &= isExpected(styleMap.get('--prop'));
            pass &= styleMap.getAll('--prop').length == 4;
            pass &= styleMap.getAll('--prop').every(isExpected);
            pass &= Array.from(styleMap).filter(e => e[0] == '--prop')[0][1].length == 4;
            pass &= Array.from(styleMap).filter(e => e[0] == '--prop')[0][1].every(isExpected);

            ctx.strokeStyle = pass ? 'green' : 'red';
            ctx.lineWidth = 4;
            ctx.strokeRect(0, 0, geom.width, geom.height);
          }
        });`

        importWorkletAndTerminateTestAfterAsyncPaint(CSS.paintWorklet, worklet);
    } catch(e) {
      document.body.textContent = e;
      takeScreenshot();
    }
</script>
</body>
</html>
