ok - missing auth_source defaults to local ok - posted LDAP source is normalized ok - malformed posted source is rejected ok - array-shaped posted source is rejected ok - empty external ID becomes NULL ok - 255-character external ID is accepted ok - 255-character LDAP creation is accepted ok - 256-character external ID is rejected ok - identity snapshot matches unchanged source and external ID ok - identity snapshot rejects a concurrent external ID conversion ok - local creation succeeds with a password ok - local password is hashed ok - local external ID is always NULL ok - local creation requires a password ok - LDAP creation succeeds without a password ok - LDAP source is normalized ok - LDAP password is NULL ok - LDAP external ID is retained and trimmed ok - LDAP creation rejects a 256-character external ID ok - LDAP ignores a posted password ok - malformed source cannot create an identity ok - LDAP edit clears any local password ok - 255-character LDAP edit is accepted ok - LDAP edit rejects a 256-character external ID ok - local edit preserves password when blank ok - source conversion requires confirmation ok - confirmed local-to-LDAP conversion clears password ok - LDAP-to-local conversion requires a password ok - confirmed LDAP-to-local conversion hashes password ALL PASSED