Chris@0: # $Id: testber.rb 57 2006-04-18 00:18:48Z blackhedd $ Chris@0: # Chris@0: # Chris@0: Chris@0: Chris@0: $:.unshift "lib" Chris@0: Chris@0: require 'net/ldap' Chris@0: require 'stringio' Chris@0: Chris@0: Chris@0: class TestBer < Test::Unit::TestCase Chris@0: Chris@0: def setup Chris@0: end Chris@0: Chris@0: # TODO: Add some much bigger numbers Chris@0: # 5000000000 is a Bignum, which hits different code. Chris@0: def test_ber_integers Chris@0: assert_equal( "\002\001\005", 5.to_ber ) Chris@0: assert_equal( "\002\002\203t", 500.to_ber ) Chris@0: assert_equal( "\002\003\203\206P", 50000.to_ber ) Chris@0: assert_equal( "\002\005\222\320\227\344\000", 5000000000.to_ber ) Chris@0: end Chris@0: Chris@0: def test_ber_parsing Chris@0: assert_equal( 6, "\002\001\006".read_ber( Net::LDAP::AsnSyntax )) Chris@0: assert_equal( "testing", "\004\007testing".read_ber( Net::LDAP::AsnSyntax )) Chris@0: end Chris@0: Chris@0: Chris@0: def test_ber_parser_on_ldap_bind_request Chris@0: s = StringIO.new "0$\002\001\001`\037\002\001\003\004\rAdministrator\200\vad_is_bogus" Chris@0: assert_equal( [1, [3, "Administrator", "ad_is_bogus"]], s.read_ber( Net::LDAP::AsnSyntax )) Chris@0: end Chris@0: Chris@0: Chris@0: Chris@0: Chris@0: end Chris@0: Chris@0: