context'when given a BER encoded attribute value with a space in it'do
let(:given){'0.9.2342.19200300.100.1.25=#aa aa'}
it'raises MalformedDnError'do
expect{subject}.toraise_error(Gitlab::LDAP::MalformedDnError,"Expected the end of an attribute value, but got \"a\"")
end
end
context'when given a BER encoded attribute value with a non-hex character in it'do
let(:given){'0.9.2342.19200300.100.1.25=#aaXaaa'}
it'raises MalformedDnError'do
expect{subject}.toraise_error(Gitlab::LDAP::MalformedDnError,"Expected the first character of a hex pair, but got \"x\"")
end
end
context'when given a BER encoded attribute value with a non-hex character in it'do
let(:given){'0.9.2342.19200300.100.1.25=#aaaYaa'}
it'raises MalformedDnError'do
expect{subject}.toraise_error(Gitlab::LDAP::MalformedDnError,"Expected the second character of a hex pair, but got \"y\"")
end
end
context'when given a hex pair with a non-hex character in it, inside double quotes'do
let(:given){'uid="Sebasti\\cX\\a1n"'}
it'raises MalformedDnError'do
expect{subject}.toraise_error(Gitlab::LDAP::MalformedDnError,"Expected the second character of a hex pair inside a double quoted value, but got \"x\"")