You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

testldif.rb 1.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. # $Id: testldif.rb 61 2006-04-18 20:55:55Z blackhedd $
  2. #
  3. #
  4. $:.unshift "lib"
  5. require 'test/unit'
  6. require 'net/ldap'
  7. require 'net/ldif'
  8. require 'sha1'
  9. require 'base64'
  10. class TestLdif < Test::Unit::TestCase
  11. TestLdifFilename = "tests/testdata.ldif"
  12. def test_empty_ldif
  13. ds = Net::LDAP::Dataset::read_ldif( StringIO.new )
  14. assert_equal( true, ds.empty? )
  15. end
  16. def test_ldif_with_comments
  17. str = ["# Hello from LDIF-land", "# This is an unterminated comment"]
  18. io = StringIO.new( str[0] + "\r\n" + str[1] )
  19. ds = Net::LDAP::Dataset::read_ldif( io )
  20. assert_equal( str, ds.comments )
  21. end
  22. def test_ldif_with_password
  23. psw = "goldbricks"
  24. hashed_psw = "{SHA}" + Base64::encode64( SHA1.new(psw).digest ).chomp
  25. ldif_encoded = Base64::encode64( hashed_psw ).chomp
  26. ds = Net::LDAP::Dataset::read_ldif( StringIO.new( "dn: Goldbrick\r\nuserPassword:: #{ldif_encoded}\r\n\r\n" ))
  27. recovered_psw = ds["Goldbrick"][:userpassword].shift
  28. assert_equal( hashed_psw, recovered_psw )
  29. end
  30. def test_ldif_with_continuation_lines
  31. ds = Net::LDAP::Dataset::read_ldif( StringIO.new( "dn: abcdefg\r\n hijklmn\r\n\r\n" ))
  32. assert_equal( true, ds.has_key?( "abcdefg hijklmn" ))
  33. end
  34. # TODO, INADEQUATE. We need some more tests
  35. # to verify the content.
  36. def test_ldif
  37. File.open( TestLdifFilename, "r" ) {|f|
  38. ds = Net::LDAP::Dataset::read_ldif( f )
  39. assert_equal( 13, ds.length )
  40. }
  41. end
  42. # TODO, need some tests.
  43. # Must test folded lines and base64-encoded lines as well as normal ones.
  44. def test_to_ldif
  45. File.open( TestLdifFilename, "r" ) {|f|
  46. ds = Net::LDAP::Dataset::read_ldif( f )
  47. ds.to_ldif
  48. assert_equal( true, false ) # REMOVE WHEN WE HAVE SOME TESTS HERE.
  49. }
  50. end
  51. end