3 <meta charset="UTF-8" />
4 <title>Canvas Normalized String Test</title>
8 <p>On success, two same text string with equal width will be rendered.</p>
9 <canvas id="myCanvas" width="300px" height="300px" style="border:1px solid #c3c3c3;">
10 Your browser does not support the canvas element.
12 <div id="console"></div>
14 <script type="text/javascript">
15 function compareImageData(img1,img2)
17 if(img1.data.length != img2.data.length)
20 for(var i = 0; i < img1.data.length; ++i){
21 if(img1.data[i] != img2.data[i])
27 function compareStrings(string1, string2, fontSize, ctx, yCo)
29 ctx.fillText(string1, 10, yCo);
30 var imgDataCombinedText = ctx.getImageData(10,yCo-fontSize, ctx.measureText(string1).width,fontSize);
33 ctx.fillText(string2, 10, yCo);
34 var imgData = ctx.getImageData(10, yCo-fontSize, ctx.measureText(string2).width,fontSize);
35 return compareImageData(imgDataCombinedText, imgData);
38 if (window.testRunner)
39 testRunner.dumpAsText();
41 var c=document.getElementById("myCanvas");
42 var ctx=c.getContext("2d");
46 var fontFamily = "Arial, san-serif";
48 ctx.font = fontSize + "px " + fontFamily;
50 // This will test both Complex and Simple code path
51 var latinString="Sample string \u0009 \u000A \u000D string end";
52 var normalizedLatinString="Sample string \u0020 \u0020 \u0020 string end";
54 var HindiString="हिन्दी \u0009 \u000A \u000D हिन्दी ";
55 var normalizedHindiString="हिन्दी \u0020 \u0020 \u0020 हिन्दी ";
57 testFlag = compareStrings(latinString, normalizedLatinString, fontSize, ctx, yCo);
59 testFlag = compareStrings(HindiString, normalizedHindiString, fontSize, ctx, yCo);
61 document.getElementById("console").innerHTML = "TEST PASSED";
63 document.getElementById("console").innerHTML = "TEST FAILED";