<!DOCTYPE html><!-- webkit-test-runner [ useFlexibleViewport=true contentMode=desktop ] -->
<html>
<head>
<meta name="viewport" content="initial-scale=0.6666">
<script>
if (window.internals) {
    window.internals.settings.setTextAutosizingEnabled(true);
    window.internals.settings.setTextAutosizingUsesIdempotentMode(true);
}
</script>
<script src="../../../../resources/js-test-pre.js"></script>
</head>
<body>
<div style="background: green;"><span id="target1" style="font-size: 12px;">Test</span></div>
<div style="background: green; overflow: auto;"><span id="target2" style="float: right; font-size: 12px;">Test</span></div>
<div style="background: green;"><span id="target3" style="display: inline-block; font-size: 12px; width: 20px;">Test</span></div>
<div style="background: green;"><span style="display: inline-block; height: 12px; font-size: 12px;"><span id="target4">Test</span></span></div>
<div style="background: green;"><span id="target5" style="position: absolute; left: 0px; top: 0px; font-size: 12px;">Test</span></div>
<div style="background: green;"><span id="target6" style="display: none; font-size: 12px;">Test</span></div>
<div style="background: green;"><span id="comparison" style="font-size: 12px;">Test<span>Test<span>Test<span id="target7">Test</span></span></span></span></div>
<div style="background: green;"><span id="target8" style="font-size: 12px; -webkit-text-size-adjust: 100%">Test</span></div>
<div style="background: green;"><span id="target9" style="font-size: 12px; display: inline-block;">Test</span></div>
<div style="background: green;"><span id="target10" style="font-size: 12px; width: 20px; height: 12px;">Test</span></div>
<div style="background: green;"><span id="target11" style="font-size: 12px; height: 20px; position: fixed; white-space: nowrap;">Test</span></div>
<div style="background: green;"><span id="target12" style="font-size: 12px; height: 20px; position: fixed; float: right;">Test</span></div>
<div style="background: green;"><span id="target13" style="font-size: 12px; height: 20px; position: fixed; float: right; overflow-x: hidden; width: 100px;">Test</span></div>
<div style="background: green;"><span id="target14" style="font-size: 12px; height: 20px; width: 100px; float: right;">Test</span></div>
<div style="background: green;"><span id="target15" style="font-size: 12px; overflow-y: hidden; float: right;">Test</span></div>
<div style="background: green;"><span id="target16" style="font-size: 12px; float: right;">Test</span></div>
<div style="background: green;"><span id="target17" style="font-size: 12px; -webkit-text-size-adjust: 100%;">Test</span></div>
<div style="background: green; line-height: 1.25; max-height: 45px; font-size: 12px;">
    <span>Test</span>
    <br>
    <span id="target18">Test</span>
    <br>
    <span>Test</span>
</div>
<div style="background: green; line-height: 20px; max-height: 20px; font-size: 12px;" id="target19">Test</div>
<script>
let result;
function check(name, shouldGetAutosized) {
    let target = document.getElementById(name);
    target.offsetWidth;
    result = Number.parseInt(window.getComputedStyle(target).getPropertyValue("font-size"));
    debug(`Checking ${name}:`);
    if (shouldGetAutosized)
        shouldBeGreaterThanOrEqual("result", "13");
    else
        shouldBe("result", "12");
}
check("target1", true);
check("target2", true);
check("target3", false);
check("target4", true);
check("target5", true);
check("target6", false);

debug(`Checking target7:`);
let target = document.getElementById("target7");
target.offsetWidth;
let comparison = document.getElementById("comparison");
comparison.offsetWidth;
result = Number.parseInt(window.getComputedStyle(target).getPropertyValue("font-size"));
let result2 = Number.parseInt(window.getComputedStyle(comparison).getPropertyValue("font-size"));
shouldBeGreaterThanOrEqual("result", "result2");

check("target8", false);
check("target9", true);
check("target10", true);

// Below are some common scenarios where we prefer (or prefer to not) adjust text size. These examples are inspired by
// common patterns in real webpages.
check("target11", true);
check("target12", true);
check("target13", false);
check("target14", false);
check("target15", true);
check("target16", true);
check("target17", false);
check("target18", false);
check("target19", true);
</script>
<script src="../../../../resources/js-test-post.js"></script>
</body>
</html>
