<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../../resources/js-test-pre.js"></script>
<meta charset="UTF-8">
</head>
<body id="body">

<div id="container">
<input id="pw1" type="password" value="password">
<input id="pw2" type="password" value="strong password">
</div>

<p id="description"></p>
<div id="console"></div>

<script>

    description("This tests the strong password fields on iOS");

    var pw1 = document.getElementById("pw1");
    var pw2 = document.getElementById("pw2");

    if (window.internals) {
        window.internals.setAutofilled(pw2, true);
        window.internals.setShowAutoFillButton(pw2, "StrongPassword");
    }

    if (window.accessibilityController) {
        var axPw1 = accessibilityController.accessibleElementById("pw1");
        var axPw2 = accessibilityController.accessibleElementById("pw2");

        shouldBeFalse("axPw1.boolAttributeValue('AXIsStrongPasswordField')");
        shouldBeTrue("axPw2.boolAttributeValue('AXIsStrongPasswordField')");

        shouldBe("axPw1.stringValue", "'AXValue: ••••••••'");
        shouldBe("axPw2.stringValue", "'AXValue: strong password'");
    }
    
</script>

<script src="../../resources/js-test-post.js"></script>
</body>
</html>
