<!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>

