'downcases the whole string'|'UID=John Smith,ou=People,dc=example,dc=com'|'uid=john smith,ou=people,dc=example,dc=com'
'for a null DN (empty string), returns empty string and does not error'|''|''
'does not strip an escaped leading space in an attribute value'|'uid=\\ John Smith,ou=People,dc=example,dc=com'|'uid=\\ john smith,ou=people,dc=example,dc=com'
'does not strip an escaped leading space in the last attribute value'|'uid=\\ John Smith'|'uid=\\ john smith'
'does not strip an escaped trailing space in an attribute value'|'uid=John Smith\\ ,ou=People,dc=example,dc=com'|'uid=john smith\\ ,ou=people,dc=example,dc=com'
'strips extraneous spaces after an escaped trailing space'|'uid=John Smith\\ ,ou=People,dc=example,dc=com'|'uid=john smith\\ ,ou=people,dc=example,dc=com'
'strips extraneous spaces after an escaped trailing space at the end of the DN'|'uid=John Smith,ou=People,dc=example,dc=com\\ '|'uid=john smith,ou=people,dc=example,dc=com\\ '
'properly preserves escaped trailing space after unescaped trailing spaces'|'uid=John Smith \\ ,ou=People,dc=example,dc=com'|'uid=john smith \\ ,ou=people,dc=example,dc=com'
'preserves multiple inner spaces in an attribute value'|'uid=John Smith,ou=People,dc=example,dc=com'|'uid=john smith,ou=people,dc=example,dc=com'
'preserves inner spaces after an escaped space'|'uid=John\\ Smith,ou=People,dc=example,dc=com'|'uid=john smith,ou=people,dc=example,dc=com'
'hex-escapes an escaped leading newline in an attribute value'|"uid=\\\nJohn Smith,ou=People,dc=example,dc=com"|"uid=\\0ajohn smith,ou=people,dc=example,dc=com"
'hex-escapes and does not strip an escaped trailing newline in an attribute value'|"uid=John Smith\\\n,ou=People,dc=example,dc=com"|"uid=john smith\\0a,ou=people,dc=example,dc=com"
'hex-escapes an unescaped leading newline (actually an invalid DN?)'|"uid=\nJohn Smith,ou=People,dc=example,dc=com"|"uid=\\0ajohn smith,ou=people,dc=example,dc=com"