Skip to content

Commit dbf56b9

Browse files
committed
Add tests for add and modify
1 parent 3057c22 commit dbf56b9

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

test/test_ldap_connection.rb

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -502,6 +502,40 @@ def test_search_net_ldap_connection_event
502502
assert unread.empty?, "should not have any leftover unread messages"
503503
end
504504

505+
def test_add_with_controls
506+
dacl_flag = 0x4 # DACL_SECURITY_INFORMATION
507+
control_values = [dacl_flag].map(&:to_ber).to_ber_sequence.to_s.to_ber
508+
controls = []
509+
# LDAP_SERVER_SD_FLAGS constant definition, taken from https://ldapwiki.com/wiki/LDAP_SERVER_SD_FLAGS_OID
510+
ldap_server_sd_flags = '1.2.840.113556.1.4.801'.freeze
511+
controls << [ldap_server_sd_flags.to_ber, true.to_ber, control_values].to_ber_sequence
512+
513+
ber = Net::BER::BerIdentifiedArray.new([Net::LDAP::ResultCodeSuccess, "", ""])
514+
ber.ber_identifier = Net::LDAP::PDU::AddResponse
515+
@tcp_socket.should_receive(:read_ber).and_return([1, ber])
516+
517+
result = @connection.add(:dn => "uid=added-user1,ou=People,dc=rubyldap,dc=com", :controls => controls)
518+
assert result.success?, "should be success"
519+
assert_equal "", result.error_message
520+
end
521+
522+
def test_modify_with_controls
523+
dacl_flag = 0x4 # DACL_SECURITY_INFORMATION
524+
control_values = [dacl_flag].map(&:to_ber).to_ber_sequence.to_s.to_ber
525+
controls = []
526+
# LDAP_SERVER_SD_FLAGS constant definition, taken from https://ldapwiki.com/wiki/LDAP_SERVER_SD_FLAGS_OID
527+
ldap_server_sd_flags = '1.2.840.113556.1.4.801'.freeze
528+
controls << [ldap_server_sd_flags.to_ber, true.to_ber, control_values].to_ber_sequence
529+
530+
ber = Net::BER::BerIdentifiedArray.new([Net::LDAP::ResultCodeSuccess, "", ""])
531+
ber.ber_identifier = Net::LDAP::PDU::ModifyResponse
532+
@tcp_socket.should_receive(:read_ber).and_return([1, ber])
533+
534+
result = @connection.modify(:dn => "1", :operations => [[:replace, "mail", "[email protected]"]], :controls => controls)
535+
assert result.success?, "should be success"
536+
assert_equal "", result.error_message
537+
end
538+
505539
def test_search_with_controls
506540
# search data
507541
search_data_ber = Net::BER::BerIdentifiedArray.new([1, [

0 commit comments

Comments
 (0)