| <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
| <html> |
| <head> |
| <script src="../../resources/js-test-pre.js"></script> |
| </head> |
| <body> |
| <canvas id="canvas" width="100" height="100"></canvas> |
| <script> |
| description("Bug 55696: Series of tests to ensure zero-length arc extends current subpath"); |
| var ctx = document.getElementById('canvas').getContext('2d'); |
| ctx.lineWidth = 4; |
| |
| function shouldBeBlackPixel(x,y) |
| { |
| var data = ctx.getImageData(x, y, 1, 1).data; |
| if (data[0] != 0 || data[1] != 0 || data[2] != 0 || data[3] != 255) { |
| testFailed("Pixel (" + x + "," + y + ") should be black; " + |
| "was [" + data[0] + "," + data[1] + "," + data[2] + "," + data[3] + "]"); |
| } else { |
| testPassed("Pixel (" + x + "," + y + ") is black."); |
| } |
| } |
| |
| // moveTo + empty arc (swing == 0) |
| ctx.beginPath(); |
| ctx.moveTo(20, 20); |
| ctx.arc(80, 30, 10, -Math.PI/2, -Math.PI/2, true); |
| ctx.stroke(); |
| shouldBeBlackPixel(50, 20); |
| |
| // moveTo + empty arc (radius == 0) |
| ctx.beginPath(); |
| ctx.moveTo(20, 40); |
| ctx.arc(80, 40, 0, 0, 6, false); |
| ctx.stroke(); |
| shouldBeBlackPixel(50, 40) |
| |
| // empty arc (swing == 0) + lineTo |
| ctx.beginPath(); |
| ctx.arc(20, 50, 10, Math.PI/2, Math.PI/2, false); |
| ctx.lineTo(80, 60); |
| ctx.stroke(); |
| shouldBeBlackPixel(50, 60); |
| |
| // empty arc (radius == 0) + lineTo |
| ctx.beginPath(); |
| ctx.arc(20, 80, 0, 0, 6, false); |
| ctx.lineTo(80, 80); |
| ctx.stroke(); |
| shouldBeBlackPixel(50, 80); |
| </script> |
| <script src="../../resources/js-test-post.js"></script> |
| </body> |
| </html> |