chromium/third_party/blink/web_tests/external/wpt/css/css-paint-api/parsing/paint-function-valid.https.html

<!DOCTYPE html>
<meta charset=UTF-8>
<title>CSS Painting API Level 1: parsing paint() with valid values</title>
<link rel="help" href="https://drafts.css-houdini.org/css-paint-api/#paint-notation">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/parsing-testcommon.js"></script>
<script src="/common/worklet-reftest.js"></script>

<body>

<!--

This test registers the paint function it uses.  However, for access
to specified and computed values, this doesn't appear to be required
by the specification.  However, it does appear to be required by the
current implementation in Chromium.  See https://crbug.com/1344490 .

-->

<script id="code" type="text/worklet">

registerPaint('mypaint', class {
    paint(ctx, size, properties, args) { }
});

</script>

<script>

setup({ explicit_done: true });

let worklet_code = document.getElementById('code').textContent;
importWorklet(CSS.paintWorklet, worklet_code).then(() => {
  test_valid_value("background-image", "paint(mypaint)");
  test_valid_value("background-image", "paint( mypaint )", "paint(mypaint)");
  test_valid_value("background-image", "paint(mypaint ", "paint(mypaint)");
  test_valid_value("background-image", "paint( mypaint", "paint(mypaint)");
  test_valid_value("background-image", "paint(mypaint, blue)");
  test_valid_value("background-image", "paint(mypaint, {})");
  test_valid_value("background-image", "paint(mypaint, [])");
  test_valid_value("background-image", "paint(mypaint, ())");

  done();
});

</script>