<html>
<head>
    <meta name="viewport" content="user-scalable=no, width=320">
    <title>&lt;rdar://problem/6646628&gt; Text Autosizing: Overlapping text in message</title>
    <script>
    if (window.internals) {
        internals.settings.setTextAutosizingEnabled(true);
        internals.settings.setTextAutosizingWindowSizeOverride(320, 480);
    }
    </script>
    <style>
    body {
        font-size: 14px;
        line-height: 16px;
    }
    html {
        -webkit-text-size-adjust: 150%;
    }
    </style>
    <script src="../../../resources/js-test-pre.js"></script>
</head>
<body>
    <p id="lorem">This text should have a decent spacing between the lines. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras ante orci, posuere at aliquam eget, ornare ut sapien. Praesent commodo volutpat auctor. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Vivamus interdum tincidunt pulvinar. Donec nec libero eros. Morbi facilisis lacus quis mi mattis quis pretium velit fringilla. Integer ipsum metus, pretium et tincidunt eget, commodo vel nibh. Cras feugiat lorem et velit interdum eu luctus dui gravida. Nullam nec gravida orci. Vestibulum quis imperdiet nibh. Vivamus tincidunt erat ac risus egestas mattis.</p>
    <script>
    description("Tests length line-height adjustment for percentage -webkit-text-size-adjust values.");
    var p = document.getElementById("lorem");
    computedLineHeight = window.getComputedStyle(p)['line-height'];
    shouldBe("computedLineHeight", "'24px'");
    p.remove();
    successfullyParsed = true;
    </script>
    <script src="../../../resources/js-test-post.js"></script>
</body>
</html>
