| OLD | NEW |
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <html> | 2 <html> |
| 3 <head> | 3 <head> |
| 4 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" > | 4 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" > |
| 5 <title>Font Width Variant Text Combine</title> | 5 <title>Font Width Variant Text Combine</title> |
| 6 <style> | 6 <style> |
| 7 @font-face { | 7 @font-face { |
| 8 font-family: LiberationSansWidthVariants; | 8 font-family: LiberationSansWidthVariants; |
| 9 src: url(../../third_party/LiberationSansWidthVariants/liberation_sans_width
_variants.ttf) format("truetype"); | 9 src: url(../../third_party/LiberationSansWidthVariants/liberation_sans_width
_variants.ttf) format("truetype"); |
| 10 } | 10 } |
| 11 | 11 |
| 12 .vertical { | 12 #test { |
| 13 font-family: "LiberationSansWidthVariants"; | 13 font-family: "LiberationSansWidthVariants"; |
| 14 font-size: 24px; | 14 font-size: 24px; |
| 15 text-rendering: geometricPrecision; | 15 text-rendering: geometricPrecision; |
| 16 -webkit-writing-mode: vertical-lr; | |
| 17 line-height: 100%; | 16 line-height: 100%; |
| 18 margin: 0; | 17 margin: 0; |
| 19 padding: 0px; | 18 padding: 0px; |
| 20 } | 19 } |
| 21 | 20 |
| 22 .combine { | 21 .hwid { |
| 23 -webkit-text-combine: horizontal; | 22 -webkit-font-feature-settings: 'hwid'; |
| 23 } |
| 24 .twid { |
| 25 -webkit-font-feature-settings: 'twid'; |
| 26 } |
| 27 .qwid { |
| 28 -webkit-font-feature-settings: 'qwid'; |
| 24 } | 29 } |
| 25 | 30 |
| 26 </style> | 31 </style> |
| 27 <script src="../../resources/testharness.js"></script> | 32 <script src="../../resources/testharness.js"></script> |
| 28 <script src="../../resources/testharnessreport.js"></script> | 33 <script src="../../resources/testharnessreport.js"></script> |
| 29 | 34 <script> |
| 30 <script type="text/javascript"> | |
| 31 setup({ explicit_done: true }); | 35 setup({ explicit_done: true }); |
| 32 function testWidthVariant() { | 36 function testWidthVariant() { |
| 33 var EXPECTED_COMBINED_UNTIL = 8; | 37 var elements = document.querySelectorAll("#test > div"); |
| 34 var EXPECTED_LINE_HEIGHT = 24; | 38 for (var i = 0; i < elements.length; ++i) { |
| 35 var NUM_TESTS = 9; | 39 var div = elements[i]; |
| 36 for (var testId = 0; testId < NUM_TESTS; testId++) { | 40 var normal = div.firstChild; |
| 37 rectHeight = document.getElementsByClassName("combine")[testId].getB
oundingClientRect().height; | 41 var text = normal.innerText; |
| 38 if (testId < EXPECTED_COMBINED_UNTIL) { | 42 test(function () { |
| 39 test(function() { | 43 var hwid = addVariant(normal, "hwid"); |
| 40 assert_equals(rectHeight, EXPECTED_LINE_HEIGHT, "Numbers lai
d out in one combining block."); | 44 var twid = addVariant(normal, "twid"); |
| 41 }, "Numbers expected to be laid out in one combining block"); | 45 var qwid = addVariant(normal, "qwid"); |
| 42 } else { | 46 var width = normal.getBoundingClientRect().width; |
| 43 test(function() { | 47 var widthHwid = hwid.getBoundingClientRect().width; |
| 44 assert_true(rectHeight > EXPECTED_LINE_HEIGHT, EXPECTED_LINE
_HEIGHT, "Number laid out vertically, not combined."); | 48 var widthTwid = twid.getBoundingClientRect().width; |
| 45 }, "Number laid out vertically, not combined."); | 49 var widthQwid = qwid.getBoundingClientRect().width; |
| 46 } | 50 assert_less_than(widthHwid, width, "hwid"); |
| 51 assert_less_than(widthTwid, widthHwid, "twid"); |
| 52 assert_less_than(widthQwid, widthTwid, "qwid"); |
| 53 }, text); |
| 47 } | 54 } |
| 48 done(); | 55 done(); |
| 49 } | 56 } |
| 57 function addVariant(base, variantClassName) { |
| 58 var variant = base.cloneNode(true); |
| 59 variant.className = variantClassName; |
| 60 base.parentElement.appendChild(document.createTextNode(" ")); |
| 61 base.parentElement.appendChild(variant); |
| 62 return variant; |
| 63 } |
| 50 </script> | 64 </script> |
| 51 </head> | 65 </head> |
| 52 | 66 |
| 53 <body onload="testWidthVariant();"> | 67 <body onload="testWidthVariant();"> |
| 54 <div class="vertical"> | 68 <div id="test"> |
| 55 <!-- horizontally combined --> | 69 <div><span>1</span></div> |
| 56 <div><span class="combine">1</span></div> | 70 <div><span>9</span></div> |
| 57 <div><span class="combine">9</span></div> | 71 <div><span>22</span></div> |
| 58 <div><span class="combine">11</span></div> | 72 <div><span>99</span></div> |
| 59 <div><span class="combine">99</span></div> | 73 <div><span>123456</span></div> |
| 60 <div><span class="combine">111</span></div> | 74 <div><span>222222</span></div> |
| 61 <div><span class="combine">999</span></div> | 75 <div><span>999999</span></div> |
| 62 <div><span class="combine">1111</span></div> | |
| 63 <div><span class="combine">9999</span></div> | |
| 64 <!-- vertical --> | |
| 65 <div><span class="combine">11111</span></div> | |
| 66 <div><span class="combine">99999</span></div> | |
| 67 <div><span class="combine">123456</span></div> | |
| 68 <div><span class="combine">111111</span></div> | |
| 69 <div><span class="combine">999999</span></div> | |
| 70 </div> | 76 </div> |
| 71 <div id="log"></div> | 77 <div id="log"></div> |
| 72 </body> | 78 </body> |
| 73 </html> | 79 </html> |
| 74 | 80 |
| OLD | NEW |