<!DOCTYPE html>
<html>
<head>
<script src="../../../resources/ui-helper.js"></script>
<style>
input {
    /* Hide the tap highlight to mitigate test differences due to when the snapshot
    is taken with respect to tap highlight painting. */
    -webkit-tap-highlight-color: transparent;
}
</style>
<script>
if (window.testRunner)
    testRunner.waitUntilDone();
</script>
</head>
<body>
<p>This tests that the caps lock indicator is not visible when the Strong Password AutoFill button is shown. It can only be tested in the test tool.</p>
<input type="password" value="A quick brown fox jumped over the lazy dog.">
<script>
async function runTest()
{
    if (!window.internals)
        return;

    let input = document.querySelector("input");
    internals.setAutofilled(input, true);
    internals.setShowAutoFillButton(input, "StrongPassword");

    input.addEventListener("focus", () => testRunner.notifyDone(), { once: true });
    await UIHelper.activateElement(input);
}

runTest();
</script>
</body>
</html>
