public function LdapServersTestCase::testUIForms in Lightweight Directory Access Protocol (LDAP) 7.2
Same name and namespace in other branches
- 8.2 ldap_servers/tests/ldap_servers.test \LdapServersTestCase::testUIForms()
- 7 ldap_servers/tests/ldap_servers.test \LdapServersTestCase::testUIForms()
File
- ldap_servers/
tests/ ldap_servers.test, line 245
Class
Code
public function testUIForms() {
foreach ([
1,
] as $ctools_enabled) {
$this->ldapTestId = "testUIForms.ctools.{$ctools_enabled}";
if ($ctools_enabled) {
module_enable([
'ctools',
]);
}
$ldap_simpletest_initial = variable_get('ldap_simpletest', 2);
// Need to be out of fake server mode to test ui.
variable_del('ldap_simpletest');
$this->privileged_user = $this
->drupalCreateUser([
'administer site configuration',
]);
$this
->drupalLogin($this->privileged_user);
$sid = 'server1';
$server_data = [];
$server_data[$sid] = [
'sid' => [
$sid,
$sid,
],
'name' => [
"Server {$sid}",
"My Server {$sid}",
],
'status' => [
1,
1,
],
'ldap_type' => [
'openldap',
'ad',
],
'address' => [
"{$sid}.ldap.fake",
"{$sid}.ldap.fake",
],
'port' => [
389,
7000,
],
'tls' => [
TRUE,
FALSE,
],
'bind_method' => [
1,
3,
],
'binddn' => [
'cn=service-account,ou=people,dc=hogwarts,dc=edu',
'',
],
'bindpw' => [
'sdfsdafsdfasdf',
'sdfsdafsdfasdf',
],
'user_attr' => [
'sAMAccountName',
'blah',
],
'account_name_attr' => [
'sAMAccountName',
'blah',
],
'mail_attr' => [
'mail',
'',
],
'mail_template' => [
'',
'[email]',
],
'unique_persistent_attr' => [
'dn',
'uniqueregistryid',
],
'unique_persistent_attr_binary' => [
1,
1,
1,
1,
],
'user_dn_expression' => [
'cn=%cn,%basedn',
'cn=%username,%basedn',
],
'ldap_to_drupal_user' => [
'code',
'different code',
],
'testing_drupal_username' => [
'hpotter',
'hpotter',
],
'testing_drupal_user_dn' => [
'cn=hpotter,ou=people,dc=hogwarts,dc=edu',
'cn=hpotter,ou=people,dc=hogwarts,dc=edu',
],
'grp_unused' => [
FALSE,
FALSE,
],
'grp_object_cat' => [
'group',
'group',
],
'grp_nested' => [
FALSE,
FALSE,
],
'grp_user_memb_attr_exists' => [
1,
1,
],
'grp_user_memb_attr' => [
'memberof',
'memberof',
],
'grp_memb_attr' => [
'member',
'member',
],
'grp_memb_attr_match_user_attr' => [
'dn',
'dn',
],
'grp_derive_from_dn' => [
1,
1,
],
'grp_derive_from_dn_attr' => [
'ou',
'ou',
],
'grp_test_grp_dn' => [
'cn=students,ou=groups,dc=hogwarts,dc=edu',
'cn=students,ou=groups,dc=hogwarts,dc=edu',
],
'grp_test_grp_dn_writeable' => [
'cn=students,ou=groups,dc=hogwarts,dc=edu',
'cn=students,ou=groups,dc=hogwarts,dc=edu',
],
];
$lcase_transformed = [
'user_attr',
'account_name_attr',
'mail_attr',
'unique_persistent_attr',
'grp_user_memb_attr',
'grp_memb_attr_match_user_attr',
'grp_derive_from_dn_attr',
];
if (!module_exists('php')) {
unset($server_data[$sid]['ldap_to_drupal_user']);
}
/** add server conf test **/
$this
->drupalGet('admin/config/people/ldap/servers/add');
$edit = [];
foreach ($server_data['server1'] as $input_name => $input_values) {
$edit[$input_name] = $input_values[0];
}
$this
->drupalPost('admin/config/people/ldap/servers/add', $edit, t('Add'));
$field_to_prop_map = LdapServer::field_to_properties_map();
$field_to_prop_map['bindpw'] = 'bindpw';
$ldap_servers = ldap_servers_get_servers(NULL, 'all', FALSE, TRUE);
$this
->assertTrue(count(array_keys($ldap_servers)) == 1, 'Add form for ldap server added server.', $this->ldapTestId . ' Add Server');
$this
->assertText('LDAP Server Server server1 added', 'Add form confirmation message', $this->ldapTestId . ' Add Server');
// Assert one ldap server exists in db table
// Assert load of server has correct properties for each input.
$mismatches = $this
->compareFormToProperties($ldap_servers['server1'], $server_data['server1'], 0, $field_to_prop_map, $lcase_transformed);
if (count($mismatches)) {
debug('mismatches between ldap server properties and form submitted values');
debug($mismatches);
debug($ldap_servers);
debug($server_data['server1']);
}
$this
->assertTrue(count($mismatches) == 0, 'Add form for ldap server properties match values submitted.', $this->ldapTestId . ' Add Server');
/** update server conf test **/
$this
->drupalGet('admin/config/people/ldap/servers/edit/server1');
$edit = [];
foreach ($server_data['server1'] as $input_name => $input_values) {
if ($input_values[1] !== NULL) {
$edit[$input_name] = $input_values[1];
}
}
unset($edit['sid']);
$this
->drupalPost('admin/config/people/ldap/servers/edit/server1', $edit, t('Update'));
$ldap_servers = ldap_servers_get_servers(NULL, 'all', FALSE, TRUE);
$this
->assertTrue(count(array_keys($ldap_servers)) == 1, 'Update form for ldap server didnt delete or add another server.', $this->ldapTestId . '.Update Server');
// Assert confirmation message without error
// assert one ldap server exists in db table
// assert load of server has correct properties for each input.
$mismatches = $this
->compareFormToProperties($ldap_servers['server1'], $server_data['server1'], 1, $field_to_prop_map, $lcase_transformed);
if (count($mismatches)) {
debug('mismatches between ldap server properties and form submitted values');
debug($mismatches);
}
$this
->assertTrue(count($mismatches) == 0, 'Update form for ldap server properties match values submitted.', $this->ldapTestId . '.Update Server');
/** delete server conf test **/
$this
->drupalGet('admin/config/people/ldap/servers/delete/server1');
$this
->drupalPost('admin/config/people/ldap/servers/delete/server1', [], t('Delete'));
$ldap_servers = ldap_servers_get_servers(NULL, 'all', FALSE, TRUE);
$this
->assertTrue(count(array_keys($ldap_servers)) == 0, 'Delete form for ldap server deleted server.', $this->ldapTestId . '.Delete Server');
// Return to fake server mode.
variable_set('ldap_simpletest', $ldap_simpletest_initial);
}
}