| <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
| <html> |
| <head> |
| <script src="../../resources/js-test-pre.js"></script> |
| </head> |
| <body> |
| <p id="description"></p> |
| <div id="console"></div> |
| <script> |
| description("This test measures the width of textareas and text inputs for different fonts."); |
| |
| var sizes = [1, 2, 3, 4, 5, 10, 20, 50, 100, 500, 1000]; |
| // This list was grabbed from Wikipedia |
| // http://en.wikipedia.org/wiki/Core_fonts_for_the_Web |
| // Impact was removed from the list as not all versions seem to have the same metrics |
| var ms_web_fonts = ['Andale Mono', 'Arial', 'Comic Sans MS', 'Courier New', 'Georgia', |
| 'Times New Roman', 'Trebuchet MS', 'Verdana', 'Webdings']; |
| |
| // These are fonts we expect to see installed on all systems. |
| var fonts = ['Lucida Grande', 'Courier', 'Helvetica', 'Monaco', 'Times'].concat(ms_web_fonts); |
| |
| function printElementWidth(tagname, font) { |
| debug('<b>' + tagname + '</b>'); |
| var node = document.createElement(tagname); |
| node.style.fontFamily = font; |
| document.body.appendChild(node); |
| var sizeProperty = tagname == 'input' ? 'size' : 'cols'; |
| for (var i = 0; i < sizes.length; i++) { |
| node[sizeProperty] = sizes[i]; |
| debug(sizeProperty + '=' + sizes[i] + ' clientWidth=' + node.clientWidth); |
| } |
| document.body.removeChild(node); |
| } |
| |
| for (var j = 0; j < fonts.length; j++) { |
| debug('<b>' + fonts[j] + '</b>'); |
| printElementWidth('input', fonts[j]); |
| debug('') |
| printElementWidth('textarea', fonts[j]); |
| debug(''); |
| } |
| </script> |
| <script src="../../resources/js-test-post.js"></script> |
| </body> |
| </html> |