| <!DOCTYPE html> |
| <!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. --> |
| <title>Canvas test: 2d.layer.malformed-operations-with-promises.toBlob</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="/html/canvas/resources/canvas-tests.js"></script> |
| <link rel="stylesheet" href="/html/canvas/resources/canvas-tests.css"> |
| <body class="show_output"> |
| |
| <h1>2d.layer.malformed-operations-with-promises.toBlob</h1> |
| <p class="desc">Check that exceptions are thrown for operations that are malformed while layers are open.</p> |
| |
| |
| <p class="output">Actual output:</p> |
| <canvas id="c" class="output" width="200" height="200"><p class="fallback">FAIL (fallback content)</p></canvas> |
| |
| <ul id="d"></ul> |
| <script> |
| promise_test(async t => { |
| |
| var canvas = document.getElementById('c'); |
| var ctx = canvas.getContext('2d'); |
| |
| // Shouldn't throw on its own. |
| await new Promise(resolve => canvas.toBlob(resolve)); |
| // Make sure the exception isn't caused by calling the function twice. |
| await new Promise(resolve => canvas.toBlob(resolve)); |
| // Calling again inside a layer should throw. |
| ctx.beginLayer(); |
| await promise_rejects_dom(t, 'InvalidStateError', new Promise(resolve => canvas.toBlob(resolve))); |
| |
| }, "Check that exceptions are thrown for operations that are malformed while layers are open."); |
| </script> |
| |