| <script src="../../resources/testharness.js"></script> |
| <script src="../../resources/testharnessreport.js"></script> |
| |
| <script> |
| test(function () { |
| var canvas = document.createElement('canvas'); |
| var context = canvas.getContext('2d'); |
| context.fillStyle = '#f00'; |
| |
| context.fillRect(0, 0, canvas.width, canvas.height); |
| context.fillRect(0, 0, 0, 0); |
| context.fillRect(0, 0, 0.0/1.0, 0.0/1.0); |
| context.fillRect(0, 0, NaN, NaN); |
| |
| context.clearRect(0, 0, 0, 0); |
| context.clearRect(0, 0, 0.0/1.0, 0.0/1.0); |
| context.clearRect(0, 0, NaN, NaN); |
| |
| context.rect(0, 0, 0, 0); |
| context.rect(0, 0, 0.0/1.0, 0.0/1.0); |
| context.rect(0, 0, NaN, NaN); |
| |
| context.fill(); |
| context.arc(2, 2, 0, 0, 90, true); |
| assert_throws("INDEX_SIZE_ERR", function() { |
| context.arc(2, 2, -10, 0, 90, true); |
| }); |
| context.arc(2, 2, Infinity, 0, 90, true); |
| context.arc(2, 2, NaN, 0, 90, true); |
| |
| context.beginPath(); |
| context.moveTo(10, 10); |
| context.arcTo(2, 2, 4, 4, 0); |
| context.closePath(); |
| |
| context.beginPath(); |
| context.moveTo(10, 10); |
| context.arc(2, 2, 4, 4, -10); |
| context.closePath(); |
| |
| context.beginPath(); |
| context.moveTo(10, 10); |
| context.arcTo(2, 2, 4, 4, Infinity); |
| context.closePath(); |
| |
| context.beginPath(); |
| context.moveTo(10, 10); |
| context.arcTo(2, 2, 4, 4, NaN); |
| context.closePath(); |
| |
| context.beginPath(); |
| context.moveTo(10, 10); |
| context.lineTo(Infinity, Infinity); |
| context.closePath(); |
| |
| context.beginPath(); |
| context.moveTo(10, 10); |
| context.lineTo(Infinity, 20); |
| context.closePath(); |
| |
| context.beginPath(); |
| context.moveTo(10, 10); |
| context.lineTo(20, Infinity); |
| context.closePath(); |
| |
| context.beginPath(); |
| context.moveTo(10, 10); |
| context.lineTo(NaN, NaN); |
| context.closePath(); |
| |
| context.beginPath(); |
| context.moveTo(10, 10); |
| context.lineTo(20, NaN); |
| context.closePath(); |
| |
| context.beginPath(); |
| context.moveTo(10, 10); |
| context.lineTo(NaN, 20); |
| context.closePath(); |
| |
| context.beginPath(); |
| context.moveTo(10, 10); |
| context.quadraticCurveTo(20, 20, Infinity, Infinity); |
| context.closePath(); |
| |
| context.beginPath(); |
| context.moveTo(10, 10); |
| context.quadraticCurveTo(Infinity, Infinity, 20, 20); |
| context.closePath(); |
| |
| context.beginPath(); |
| context.moveTo(10, 10); |
| context.quadraticCurveTo(Infinity, 20, 20, 20); |
| context.closePath(); |
| |
| context.beginPath(); |
| context.moveTo(10, 10); |
| context.quadraticCurveTo(20, Infinity, 20, 20); |
| context.closePath(); |
| |
| context.beginPath(); |
| context.moveTo(10, 10); |
| context.quadraticCurveTo(20, 20, Infinity, 20); |
| context.closePath(); |
| |
| context.beginPath(); |
| context.moveTo(10, 10); |
| context.quadraticCurveTo(20, 20, 20, Infinity); |
| context.closePath(); |
| |
| context.beginPath(); |
| context.moveTo(10, 10); |
| context.quadraticCurveTo(20, 20, NaN, NaN); |
| context.closePath(); |
| |
| context.beginPath(); |
| context.moveTo(10, 10); |
| context.quadraticCurveTo(NaN, NaN, 20, 20); |
| context.closePath(); |
| |
| context.beginPath(); |
| context.moveTo(10, 10); |
| context.quadraticCurveTo(NaN, 20, 20, 20); |
| context.closePath(); |
| |
| context.beginPath(); |
| context.moveTo(10, 10); |
| context.quadraticCurveTo(20, NaN, 20, 20); |
| context.closePath(); |
| |
| context.beginPath(); |
| context.moveTo(10, 10); |
| context.quadraticCurveTo(20, 20, NaN, 20); |
| context.closePath(); |
| |
| context.beginPath(); |
| context.moveTo(10, 10); |
| context.quadraticCurveTo(20, 20, 20, NaN); |
| context.closePath(); |
| |
| context.beginPath(); |
| context.moveTo(10, 10); |
| context.bezierCurveTo(20, 20, 30, 30, Infinity, Infinity); |
| context.closePath(); |
| |
| context.beginPath(); |
| context.moveTo(10, 10); |
| context.bezierCurveTo(20, 20, 30, 30, 30, Infinity); |
| context.closePath(); |
| |
| context.beginPath(); |
| context.moveTo(10, 10); |
| context.bezierCurveTo(20, 20, 30, 30, Infinity, 30); |
| context.closePath(); |
| |
| context.beginPath(); |
| context.moveTo(10, 10); |
| context.bezierCurveTo(20, 20, Infinity, Infinity, 30, 30); |
| context.closePath(); |
| |
| context.beginPath(); |
| context.moveTo(10, 10); |
| context.bezierCurveTo(20, 20, 30, Infinity, 30, 30); |
| context.closePath(); |
| |
| context.beginPath(); |
| context.moveTo(10, 10); |
| context.bezierCurveTo(20, 20, Infinity, 30, 30, 30); |
| context.closePath(); |
| |
| context.beginPath(); |
| context.moveTo(10, 10); |
| context.bezierCurveTo(Infinity, Infinity, 20, 20, 30, 30); |
| context.closePath(); |
| |
| context.beginPath(); |
| context.moveTo(10, 10); |
| context.bezierCurveTo(30, Infinity, 20, 20, 30, 30); |
| context.closePath(); |
| |
| context.beginPath(); |
| context.moveTo(10, 10); |
| context.bezierCurveTo(Infinity, 30, 20, 20, 30, 30); |
| context.closePath(); |
| |
| context.beginPath(); |
| context.moveTo(10, 10); |
| context.bezierCurveTo(20, 20, 30, 30, NaN, NaN); |
| context.closePath(); |
| |
| context.beginPath(); |
| context.moveTo(10, 10); |
| context.bezierCurveTo(20, 20, 30, 30, 0, NaN); |
| context.closePath(); |
| |
| context.beginPath(); |
| context.moveTo(10, 10); |
| context.bezierCurveTo(20, 20, 30, 30, NaN, 0); |
| context.closePath(); |
| |
| context.beginPath(); |
| context.moveTo(10, 10); |
| context.bezierCurveTo(20, 20, NaN, NaN, 30, 30); |
| context.closePath(); |
| |
| context.beginPath(); |
| context.moveTo(10, 10); |
| context.bezierCurveTo(20, 20, 30, NaN, 30, 30); |
| context.closePath(); |
| |
| context.beginPath(); |
| context.moveTo(10, 10); |
| context.bezierCurveTo(20, 20, NaN, 30, 30, 30); |
| context.closePath(); |
| |
| context.beginPath(); |
| context.moveTo(10, 10); |
| context.bezierCurveTo(NaN, NaN, 20, 20, 30, 30); |
| context.closePath(); |
| |
| context.beginPath(); |
| context.moveTo(10, 10); |
| context.bezierCurveTo(20, NaN, 20, 20, 30, 30); |
| context.closePath(); |
| |
| context.beginPath(); |
| context.moveTo(10, 10); |
| context.bezierCurveTo(NaN, 20, 20, 20, 30, 30); |
| context.closePath(); |
| |
| var canvas2 = document.createElement('canvas'); |
| canvas2.width = canvas2.height = 0; |
| assert_throws("INVALID_STATE_ERR", function() { |
| var pattern = context.createPattern(canvas2, 'repeat'); |
| }); |
| context.fillStyle = '#0f0'; |
| context.fillRect(0, 0, canvas.width, canvas.height); |
| }, "Verify the behavior of a number of the DOM Canvas drawing methods when given 0, Infinity, or NaN as parameters. Test should not crash."); |
| </script> |