| <!DOCTYPE HTML> |
| <html> |
| <style> |
| html { |
| zoom: 1.25; |
| } |
| </style> |
| <body> |
| Test for crbug.com/405468: zoom should not affect getComputedTextLength().<br> |
| <svg width="400" height="300"> |
| <text y="30" class="testLowDPI" font-size="16px">1 regular 16px abcd</text> |
| <text y="60" class="testLowDPI" font-size="16px" text-rendering="geometricPrecision">1 geometric precision 16px abcd</text> |
| <text y="90" class="testLowDPI" font-size="12px">1 regular 12px abcd</text> |
| |
| <text y="130" class="testHighDPI" font-size="16px">2 regular 16px abcd</text> |
| <text y="160" class="testHighDPI" font-size="16px" text-rendering="geometricPrecision">2 geometric precision 16px abcd</text> |
| <text y="190" class="testHighDPI" font-size="12px">2 regular 12px abcd</text> |
| </svg> |
| <script> |
| if (window.testRunner) { |
| testRunner.waitUntilDone(); |
| testRunner.dumpAsText(); |
| testRunner.setBackingScaleFactor(1, function() { |
| runTest('testLowDPI'); |
| testRunner.setBackingScaleFactor(2, function() { |
| runTest('testHighDPI'); |
| testRunner.notifyDone(); |
| }); |
| }); |
| } |
| |
| function runTest(className) { |
| var textElements = document.getElementsByClassName(className); |
| for (var t = 0; t < textElements.length; t++) { |
| var text = textElements[t]; |
| var longerLength = text.getComputedTextLength(); |
| // Remove one character from the text so that it is now shorter. |
| text.textContent = text.textContent.substring(0, text.textContent.length - 1); |
| var shorterLength = text.getComputedTextLength(); |
| |
| if (longerLength > shorterLength) |
| text.textContent = "PASS"; |
| else |
| text.textContent = "FAIL, " + longerLength + " should be greater than " + shorterLength; |
| } |
| } |
| </script> |
| </body> |
| </html> |
| |