test_bug745685.html 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <!doctype html>
  2. <!--
  3. https://bugzilla.mozilla.org/show_bug.cgi?id=745685
  4. -->
  5. <title>Test for Bug 745685</title>
  6. <script src="/tests/SimpleTest/SimpleTest.js"></script>
  7. <link rel="stylesheet" href="/tests/SimpleTest/test.css"/>
  8. <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=745685">Mozilla Bug 745685</a>
  9. <font>Test text</font>
  10. <font size=1>1</font>
  11. <font size=2>2</font>
  12. <font size=3>3</font>
  13. <font size=4>4</font>
  14. <font size=5>5</font>
  15. <font size=6>6</font>
  16. <font size=7>7</font>
  17. <script>
  18. /** Test for Bug 745685 **/
  19. var referenceSizes = {};
  20. for (var i = 1; i <= 7; i++) {
  21. referenceSizes[i] =
  22. getComputedStyle(document.querySelector('[size="' + i + '"]'))
  23. .fontSize;
  24. if (i > 1) {
  25. isnot(referenceSizes[i], referenceSizes[i - 1],
  26. "Sanity check: different <font size>s give different .fontSize");
  27. }
  28. }
  29. function testFontSize(input, expected) {
  30. var font = document.querySelector("font");
  31. font.setAttribute("size", input);
  32. is(font.getAttribute("size"), input,
  33. "Setting doesn't round-trip (.getAttribute)");
  34. is(font.size, input,
  35. "Setting doesn't round-trip (.size)");
  36. is(getComputedStyle(font).fontSize, referenceSizes[expected],
  37. 'Incorrect size for "' + input + '" : expected the same as ' + expected);
  38. }
  39. function testFontSizes(input, expected) {
  40. testFontSize(input, expected);
  41. // Leading whitespace
  42. testFontSize(" " + input, expected);
  43. testFontSize("\t" + input, expected);
  44. testFontSize("\n" + input, expected);
  45. testFontSize("\f" + input, expected);
  46. testFontSize("\r" + input, expected);
  47. // Trailing garbage
  48. testFontSize(input + "abcd", expected);
  49. testFontSize(input + ".5", expected);
  50. testFontSize(input + "e2", expected);
  51. }
  52. // Parse error
  53. testFontSizes("", 3);
  54. // No sign
  55. testFontSizes("0", 1);
  56. testFontSizes("1", 1);
  57. testFontSizes("2", 2);
  58. testFontSizes("3", 3);
  59. testFontSizes("4", 4);
  60. testFontSizes("5", 5);
  61. testFontSizes("6", 6);
  62. testFontSizes("7", 7);
  63. testFontSizes("8", 7);
  64. testFontSizes("9", 7);
  65. testFontSizes("10", 7);
  66. testFontSizes("10000000000000000000000", 7);
  67. // Minus sign
  68. testFontSizes("-0", 3);
  69. testFontSizes("-1", 2);
  70. testFontSizes("-2", 1);
  71. testFontSizes("-3", 1);
  72. testFontSizes("-4", 1);
  73. testFontSizes("-5", 1);
  74. testFontSizes("-6", 1);
  75. testFontSizes("-7", 1);
  76. testFontSizes("-8", 1);
  77. testFontSizes("-9", 1);
  78. testFontSizes("-10", 1);
  79. testFontSizes("-10000000000000000000000", 1);
  80. // Plus sign
  81. testFontSizes("+0", 3);
  82. testFontSizes("+1", 4);
  83. testFontSizes("+2", 5);
  84. testFontSizes("+3", 6);
  85. testFontSizes("+4", 7);
  86. testFontSizes("+5", 7);
  87. testFontSizes("+6", 7);
  88. testFontSizes("+7", 7);
  89. testFontSizes("+8", 7);
  90. testFontSizes("+9", 7);
  91. testFontSizes("+10", 7);
  92. testFontSizes("+10000000000000000000000", 7);
  93. // Non-HTML5 whitespace
  94. testFontSize("\b1", 3);
  95. testFontSize("\v1", 3);
  96. testFontSize("\0u00a01", 3);
  97. </script>