| OLD | NEW |
| 1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> | 1 <script src="../../resources/testharness.js"></script> |
| 2 <html> | 2 <script src="../../resources/testharnessreport.js"></script> |
| 3 <head> | |
| 4 <script src="../../resources/js-test.js"></script> | |
| 5 </head> | |
| 6 <body> | |
| 7 <canvas width="600" height="300" style="border: solid 1px gray"></canvas> | 3 <canvas width="600" height="300" style="border: solid 1px gray"></canvas> |
| 4 |
| 8 <script> | 5 <script> |
| 9 description('Tests that (vertical) shadow offsets are applied correctly when usi
ng fillText() regardless of blur amount.'); | 6 |
| 7 // Tests that (vertical) shadow offsets are applied correctly when using fillTex
t() regardless of blur amount. |
| 8 |
| 10 var ctx = document.getElementsByTagName('canvas')[0].getContext('2d'); | 9 var ctx = document.getElementsByTagName('canvas')[0].getContext('2d'); |
| 11 ctx.font = 'bold 128px sans-serif'; | 10 ctx.font = 'bold 128px sans-serif'; |
| 12 ctx.shadowColor = 'red' | 11 ctx.shadowColor = 'red' |
| 13 ctx.shadowOffsetY = 100; | 12 ctx.shadowOffsetY = 100; |
| 14 | 13 |
| 15 function testWithBlur(blur, belowOffset) { | 14 function testWithBlur(blur, belowOffset) { |
| 16 ctx.clearRect(0, 0, 600, 300); | 15 ctx.clearRect(0, 0, 600, 300); |
| 17 ctx.shadowBlur = blur; | 16 ctx.shadowBlur = blur; |
| 18 | 17 |
| 19 // Center the I around the Y axis. | 18 // Center the I around the Y axis. |
| 20 ctx.fillText('I', -ctx.measureText('I').width/2, 128); | 19 ctx.fillText('I', -ctx.measureText('I').width/2, 128); |
| 21 | |
| 22 debug('Testing with blur of ' + blur + ' pixels'); | |
| 23 | 20 |
| 24 // Make sure that the shadow doesn't end up above the text... | 21 // Make sure that the shadow doesn't end up above the text... |
| 25 var imageData = ctx.getImageData(0, 0, 1, 1); | 22 var imageData = ctx.getImageData(0, 0, 1, 1).data; |
| 26 imgdata = imageData.data; | 23 assert_array_equals(imageData, [0, 0, 0, 0]); |
| 27 | 24 |
| 28 shouldBe('imgdata[0]', '0'); | 25 // ...but below. |
| 29 shouldBe('imgdata[1]', '0'); | 26 var imageData = ctx.getImageData(0, belowOffset, 1, 1).data; |
| 30 shouldBe('imgdata[2]', '0'); | 27 assert_array_equals(imageData, [255, 0, 0, 255]); |
| 31 shouldBe('imgdata[3]', '0'); | |
| 32 | |
| 33 // ...but below. | |
| 34 var imageData = ctx.getImageData(0, belowOffset, 1, 1); | |
| 35 imgdata = imageData.data; | |
| 36 shouldBe('imgdata[0]', '255'); | |
| 37 shouldBe('imgdata[1]', '0'); | |
| 38 shouldBe('imgdata[2]', '0'); | |
| 39 shouldBe('imgdata[3]', '255'); | |
| 40 } | 28 } |
| 41 | 29 |
| 42 debug('Testing with no transform'); | 30 var testScenariosNoTransform = [ |
| 43 testWithBlur(0, 150); | 31 ['TestShadowOffsetWithNoTransform 1', 0, 150], |
| 44 testWithBlur(1, 150); | 32 ['TestShadowOffsetWithNoTransform 2', 1, 150], |
| 45 testWithBlur(5, 150); | 33 ['TestShadowOffsetWithNoTransform 3', 5, 150], |
| 34 ]; |
| 46 | 35 |
| 47 debug('Testing with scale transform'); | 36 var testScenariosScaleTransform = [ |
| 37 ['TestShadowOffsetWithScaleTransform 1', 0, 299], |
| 38 ['TestShadowOffsetWithScaleTransform 2', 1, 299], |
| 39 ['TestShadowOffsetWithScaleTransform 3', 5, 299], |
| 40 ]; |
| 41 |
| 42 generate_tests(testWithBlur, testScenariosNoTransform); |
| 43 |
| 48 ctx.scale(1, 2); | 44 ctx.scale(1, 2); |
| 49 testWithBlur(0, 299); | 45 generate_tests(testWithBlur, testScenariosScaleTransform); |
| 50 testWithBlur(1, 299); | |
| 51 testWithBlur(5, 299); | |
| 52 | 46 |
| 53 </script> | 47 </script> |
| 54 </body> | |
| 55 </html> | |
| OLD | NEW |