CSS Painting API should allow image values in inputProperties
[WebKit-https.git] / LayoutTests / fast / css-custom-paint / arguments.html
1 <!DOCTYPE html><!-- webkit-test-runner [ experimental:CSSPaintingAPIEnabled=true ] -->
2 <meta name="author" title="Justin Michaud" href="mailto:justin_michaud@webkit.org">
3 <meta name="assert" content="Test that paint worklets parse arguments correctly">
4 <link rel="help" content="https://drafts.css-houdini.org/css-paint-api-1/">
5 <script src="resources/testharness.js"></script>
6
7 <script id="code" type="text/worklet">
8 class MyPaint {
9   static get inputArguments() { return Array(5).fill('*') }
10   paint(ctx, geom, props, args) {
11     // Note: This does not pass on Chrome. Chrome seems to strip the whitespace.
12     const expected = [" a", " url(\"\")", " (d)", "e", " f"];
13     for (const i of expected.keys()) {
14       assert_equals(args[i].toString(), expected[i]);
15     }
16     ctx.fillStyle = "green";
17     ctx.fillRect(0, 0, geom.width, geom.height);
18   }
19 }
20 registerPaint('my-paint', MyPaint);
21 </script>
22
23 <script type="text/javascript">
24 importWorklet(CSS.paintWorklet, document.getElementById('code').textContent);
25 </script>
26
27 <style>
28   .paint {
29     width: 150px;
30     height: 150px;
31     background: paint(my-paint, a, url(''), (d),e,          f);
32   }
33 </style>
34
35 <body>
36   <div class="paint"></div>
37 </body>