public function SimpleLdapUserMassImportExportTestCase::testImport in Simple LDAP 7
Same name and namespace in other branches
- 7.2 simple_ldap_user/simple_ldap_user.test \SimpleLdapUserMassImportExportTestCase::testImport()
Test mass import.
File
- simple_ldap_user/
simple_ldap_user.test, line 1228 - Tests for Simple LDAP User module.
Class
Code
public function testImport() {
// Get configuration.
$server = SimpleLdapServer::singleton();
$basedn = simple_ldap_user_variable_get('simple_ldap_user_basedn');
$scope = simple_ldap_user_variable_get('simple_ldap_user_scope');
$attribute_name = simple_ldap_user_variable_get('simple_ldap_user_attribute_name');
// Log in as user 1.
$this
->drupalUser1Login();
// Clear cache, otherwise the import menu item doesn't work.
$this
->drupalPost('admin/config/development/performance', array(), t('Clear all caches'));
// Verify that the LDAP users do not exist in Drupal.
foreach ($this->ldapUser as $ldap_user) {
$drupal_user = user_load_by_name($ldap_user->{$attribute_name}[0]);
$this
->assertIdentical($drupal_user, FALSE, t('The user :name does not exist in Drupal.', array(
':name' => $ldap_user->{$attribute_name}[0],
)));
}
// Submit the import user form.
$edit = array();
// Perform the same search that is done to generate the form, so all of the
// extra entries can be set to false. We just want to import the users
// created specifically for this test.
$filter = '(&(' . $attribute_name . '=*)' . SimpleLdapUser::filter() . ')';
$ldap_users = SimpleLdap::clean($server
->search($basedn, $filter, $scope, array(
'dn',
$attribute_name,
)));
foreach ($ldap_users as $ldap_user) {
$edit['users[' . $ldap_user[$attribute_name][0] . ']'] = FALSE;
}
// Select the users that were created for this test.
foreach ($this->ldapUser as $ldap_user) {
$edit['users[' . $ldap_user->{$attribute_name}[0] . ']'] = TRUE;
}
$this
->drupalPost('admin/people/simple_ldap_user_import', $edit, t('Import'));
// Verify that the users were imported into Drupal.
foreach ($this->ldapUser as $ldap_user) {
$drupal_user = user_load_by_name($ldap_user->{$attribute_name}[0]);
$this
->assertNotIdentical($drupal_user, FALSE, t('The test user :name was created in Drupal.', array(
':name' => $ldap_user->{$attribute_name}[0],
)));
$this
->verifySync('', $ldap_user->{$attribute_name}[0]);
}
}