Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tree: c5b8642693
Fetching contributors…

Cannot retrieve contributors at this time

134 lines (114 sloc) 4.256 kb
require 'al-test-utils'
class TestLoad < Test::Unit::TestCase
include AlTestUtils
priority :must
def test_load_modify_record
ldif = ActiveLdap::LDIF.new
make_temporary_user do |user, password|
user.display_name = "Display Name"
assert(user.save)
user = @user_class.find(user.dn)
assert_equal("Display Name", user.display_name)
record = ActiveLdap::LDIF::ModifyRecord.new(user.dn)
ldif << record
original_home_directory = user.home_directory
new_home_directory = "#{original_home_directory}-new"
record.add_operation(:delete, "homeDirectory", [], {})
record.add_operation(:add, "homeDirectory", [],
{"homeDirectory" => [new_home_directory]})
original_descriptions = user.description(true)
new_description = "new description"
record.add_operation(:add, "description", [],
{"description" => [new_description]})
record.add_operation(:delete, "DisplayName", [], {})
original_sn = user.sn
new_sn = ["New SN1", "New SN2"]
record.add_operation(:replace, "sn", [], {"sn" => new_sn})
ActiveLdap::Base.load(ldif.to_s)
user = @user_class.find(user.dn)
assert_equal(new_home_directory, user.home_directory)
assert_equal(original_descriptions + [new_description],
user.description(true))
assert_nil(user.display_name)
assert_equal(new_sn, user.sn)
end
end
def test_load_move_dn_record
assert_load_move_dn_record(ActiveLdap::LDIF::ModifyDNRecord)
assert_load_move_dn_record(ActiveLdap::LDIF::ModifyRDNRecord)
end
def test_load_copy_dn_record
assert_load_copy_dn_record(ActiveLdap::LDIF::ModifyDNRecord)
assert_load_copy_dn_record(ActiveLdap::LDIF::ModifyRDNRecord)
end
def test_load_delete_record
ldif = ActiveLdap::LDIF.new
make_temporary_user do |user, password|
record = ActiveLdap::LDIF::DeleteRecord.new(user.dn)
ldif << record
assert_true(@user_class.exists?(user.dn))
ActiveLdap::Base.load(ldif.to_s)
assert_false(@user_class.exists?(user.dn))
end
end
def test_load_add_record
ldif = ActiveLdap::LDIF.new
make_temporary_user do |user, password|
new_description = "new description"
attributes = {
"description" => [new_description]
}
original_descriptions = user.description(true)
record = ActiveLdap::LDIF::AddRecord.new(user.dn, [], attributes)
ldif << record
ActiveLdap::Base.load(ldif.to_s)
user.reload
assert(original_descriptions + [new_description], user.description(true))
end
end
def test_load_content_records
ldif = ActiveLdap::LDIF.new
2.times do
make_temporary_user do |user, password|
ldif << ActiveLdap::LDIF.parse(user.to_ldif).records[0]
end
end
original_n_users = @user_class.count
ActiveLdap::Base.load(ldif.to_s)
assert_equal(2, @user_class.count - original_n_users)
end
priority :normal
private
def assert_load_copy_dn_record(record_class)
ldif = ActiveLdap::LDIF.new
make_temporary_user do |user, password|
new_rdn = "uid=XXX"
ensure_delete_user(new_rdn) do
record = record_class.new(user.dn, [], new_rdn, false)
ldif << record
assert_true(@user_class.exists?(user.dn))
assert_false(@user_class.exists?(new_rdn))
ActiveLdap::Base.load(ldif.to_s)
assert_true(@user_class.exists?(user.dn))
assert_true(@user_class.exists?(new_rdn))
assert_equal(user.cn, @user_class.find(new_rdn).cn)
end
end
end
def assert_load_move_dn_record(record_class)
ldif = ActiveLdap::LDIF.new
make_temporary_user do |user, password|
new_rdn = "uid=XXX"
ensure_delete_user(new_rdn) do
record = record_class.new(user.dn, [], new_rdn, true)
ldif << record
assert_true(@user_class.exists?(user.dn))
assert_false(@user_class.exists?(new_rdn))
ActiveLdap::Base.load(ldif.to_s)
assert_false(@user_class.exists?(user.dn))
assert_true(@user_class.exists?(new_rdn))
assert_equal(user.cn, @user_class.find(new_rdn).cn)
end
end
end
end
Jump to Line
Something went wrong with that request. Please try again.