Fix the encoding of the `present' filter

This commit is contained in:
Matvey Aksenov 2015-03-28 10:29:55 +00:00
parent 7aa2703319
commit c9d034f952
4 changed files with 40 additions and 1 deletions

View File

@ -41,3 +41,19 @@ library
, semigroups >= 0.16
, stm
, text
test-suite spec
default-language:
Haskell2010
type:
exitcode-stdio-1.0
hs-source-dirs:
test
main-is:
Spec.hs
other-modules:
Ldap.ClientSpec
build-depends:
base >= 4.7 && < 5
, hspec
, ldap-client

View File

@ -201,7 +201,8 @@ instance ToAsn1 Filter where
Substrings x -> context 4 (toAsn1 x)
GreaterOrEqual x -> context 5 (toAsn1 x)
LessOrEqual x -> context 6 (toAsn1 x)
Present x -> context 7 (toAsn1 x)
Present (AttributeDescription (LdapString x))
-> other Asn1.Context 7 (Text.encodeUtf8 x)
ApproxMatch x -> context 8 (toAsn1 x)
ExtensibleMatch x -> context 9 (toAsn1 x)

21
test/Ldap/ClientSpec.hs Normal file
View File

@ -0,0 +1,21 @@
{-# LANGUAGE OverloadedStrings #-}
module Ldap.ClientSpec (spec) where
import Data.Monoid ((<>))
import Test.Hspec
import Ldap.Client
import qualified Ldap.Client as Ldap
spec :: Spec
spec =
context "Example stolen from the LDAP package tests" $
it "searches the public LDAP server at MIT" $ do
res <- Ldap.with (Plain "scripts.mit.edu") 389 $ \l -> do
res <- Ldap.search l (Dn "ou=People,dc=scripts,dc=mit,dc=edu")
(scope WholeSubtree <> typesOnly True)
(Present (Attr "uid"))
[]
res `shouldSatisfy` (not . null)
res `shouldBe` Right ()

1
test/Spec.hs Normal file
View File

@ -0,0 +1 @@
{-# OPTIONS_GHC -F -pgmF hspec-discover #-}