test_bug1567544.html (1390B)
1 <!DOCTYPE HTML> 2 <!-- 3 https://bugzilla.mozilla.org/show_bug.cgi?id=1567544 4 5 Test that globalCompositeOperation is applied to SVG images drawn with `drawImage`. 6 --> 7 <title>Test for Bug 1567544</title> 8 <script src="/tests/SimpleTest/SimpleTest.js"></script> 9 <link rel="stylesheet" href="/tests/SimpleTest/test.css"> 10 <body> 11 <canvas id="c" width="100" height="50"></canvas> 12 <script> 13 function isPixel(ctx, x,y, r,g,b,a, pos, colour, d) { 14 var pixel = ctx.getImageData(x, y, 1, 1); 15 var pr = pixel.data[0], 16 pg = pixel.data[1], 17 pb = pixel.data[2], 18 pa = pixel.data[3]; 19 ok(r-d <= pr && pr <= r+d && 20 g-d <= pg && pg <= g+d && 21 b-d <= pb && pb <= b+d && 22 a-d <= pa && pa <= a+d, 23 "pixel "+pos+" is "+pr+","+pg+","+pb+","+pa+"; expected "+colour+" +/- "+d); 24 } 25 26 SimpleTest.waitForExplicitFinish(); 27 addLoadEvent(function () { 28 29 var canvas = document.getElementById('c'); 30 var ctx = canvas.getContext('2d'); 31 32 ctx.beginPath(); 33 ctx.arc(50, 50, 37.5, 0, Math.PI * 2); 34 ctx.fillStyle = 'red'; 35 ctx.fill(); 36 ctx.globalCompositeOperation = 'destination-in'; 37 ctx.drawImage(document.getElementById('roundrectangle.svg'), 50, 40); 38 39 isPixel(ctx, 82,38, 0,0,0,0, "82,38", "0,0,0,0", 0); 40 isPixel(ctx, 82,48, 255,0,0,255, "82,48", "255,0,0,255", 0); 41 42 SimpleTest.finish(); 43 44 }); 45 </script> 46 <img src="image_roundrectangle.svg" id="roundrectangle.svg" class="resource">