Révision 32700c57
Ajouté par Assos Assos il y a environ 5 ans
drupal7/sites/all/modules/ldap/ldap_servers/tests/ldap_servers.test | ||
---|---|---|
2 | 2 |
|
3 | 3 |
/** |
4 | 4 |
* @file |
5 |
* simpletest for ldap servers
|
|
5 |
* Simpletest for ldap servers.
|
|
6 | 6 |
*/ |
7 | 7 |
|
8 | 8 |
if (function_exists('ldap_servers_module_load_include')) { |
... | ... | |
11 | 11 |
else { |
12 | 12 |
module_load_include('php', 'ldap_test', 'LdapTestCase.class'); |
13 | 13 |
} |
14 |
|
|
14 |
/** |
|
15 |
* |
|
16 |
*/ |
|
15 | 17 |
class LdapServersTestCase extends LdapTestCase { |
18 |
|
|
19 |
/** |
|
20 |
* |
|
21 |
*/ |
|
16 | 22 |
public static function getInfo() { |
17 |
return array(
|
|
23 |
return [
|
|
18 | 24 |
'name' => 'LDAP Servers Tests', |
19 | 25 |
'description' => 'Test ldap servers. Servers module is primarily a storage |
20 | 26 |
tool for ldap server configuration, so most of testing is just form and db testing. |
21 | 27 |
there are some api like functions that are also tested.', |
22 |
'group' => 'LDAP Servers' |
|
23 |
);
|
|
28 |
'group' => 'LDAP Servers',
|
|
29 |
];
|
|
24 | 30 |
} |
25 | 31 |
|
26 |
function __construct($test_id = NULL) { |
|
32 |
/** |
|
33 |
* |
|
34 |
*/ |
|
35 |
public function __construct($test_id = NULL) { |
|
27 | 36 |
parent::__construct($test_id); |
28 | 37 |
} |
29 | 38 |
|
... | ... | |
31 | 40 |
protected $ldap_test_data; |
32 | 41 |
|
33 | 42 |
/** |
34 |
* create one or more server configurations in such as way
|
|
35 |
* that this setUp can be a prerequisite for ldap_authentication and ldap_authorization |
|
43 |
* Create one or more server configurations in such as way
|
|
44 |
* that this setUp can be a prerequisite for ldap_authentication and ldap_authorization.
|
|
36 | 45 |
*/ |
37 |
|
|
38 |
function setUp() { |
|
39 |
parent::setUp(array('ldap_test')); |
|
46 |
public function setUp() { |
|
47 |
parent::setUp(['ldap_test']); |
|
40 | 48 |
variable_set('ldap_simpletest', 2); |
41 | 49 |
} |
42 | 50 |
|
43 |
function tearDown() { |
|
51 |
/** |
|
52 |
* |
|
53 |
*/ |
|
54 |
public function tearDown() { |
|
44 | 55 |
parent::tearDown(); |
45 | 56 |
variable_del('ldap_help_watchdog_detail'); |
46 | 57 |
variable_del('ldap_simpletest'); |
47 | 58 |
} |
48 | 59 |
|
60 |
/** |
|
61 |
* |
|
62 |
*/ |
|
49 | 63 |
public function testApiFunctions() { |
50 | 64 |
|
51 | 65 |
$group = 'ldap_servers: functions'; |
52 | 66 |
|
53 |
foreach (array('openldap1', 'activedirectory1') as $sid) { // , 'activedirectory1' |
|
67 |
// , 'activedirectory1'. |
|
68 |
foreach (['openldap1', 'activedirectory1'] as $sid) { |
|
54 | 69 |
$ldap_type = ($sid == 'openldap1') ? 'Open Ldap' : 'Active Directory'; |
55 |
$this->prepTestData('hogwarts', array($sid));
|
|
70 |
$this->prepTestData('hogwarts', [$sid]);
|
|
56 | 71 |
|
57 | 72 |
$group = "ldap_servers: functions: $ldap_type"; |
58 |
$test_data = variable_get('ldap_test_server__' . $sid, array());
|
|
73 |
$test_data = variable_get('ldap_test_server__' . $sid, []);
|
|
59 | 74 |
ldap_servers_module_load_include('php', 'ldap_test', 'LdapServerTest.class'); |
60 | 75 |
$ldap_server = LdapServerTest::getLdapServerObjects($sid, NULL, TRUE); |
61 | 76 |
|
62 |
// check against csv data rather than ldap array to make sure csv to ldap conversion is correct
|
|
77 |
// Check against csv data rather than ldap array to make sure csv to ldap conversion is correct.
|
|
63 | 78 |
$user_csv_entry = $test_data['csv']['users']['101']; |
64 | 79 |
$user_dn = $user_csv_entry['dn']; |
65 | 80 |
$user_cn = $user_csv_entry['cn']; |
... | ... | |
68 | 83 |
$username = $ldap_server->userUsernameFromLdapEntry($user_ldap_entry); |
69 | 84 |
$this->assertTrue($username == $user_csv_entry['cn'], 'LdapServer::userUsernameFromLdapEntry works when LdapServer::user_attr attribute used', $group); |
70 | 85 |
|
71 |
$bogus_ldap_entry = array();
|
|
86 |
$bogus_ldap_entry = [];
|
|
72 | 87 |
$username = $ldap_server->userUsernameFromLdapEntry($bogus_ldap_entry); |
73 | 88 |
$this->assertTrue($username === FALSE, 'LdapServer::userUsernameFromLdapEntry fails correctly', $group); |
74 | 89 |
|
... | ... | |
78 | 93 |
$username = $ldap_server->userUsernameFromDn('bogus dn'); |
79 | 94 |
$this->assertTrue($username === FALSE, 'LdapServer::userUsernameFromDn fails correctly', $group); |
80 | 95 |
|
81 |
$desired = array();
|
|
82 |
$desired[0] = array(
|
|
96 |
$desired = [];
|
|
97 |
$desired[0] = [
|
|
83 | 98 |
0 => 'cn=gryffindor,ou=groups,dc=hogwarts,dc=edu', |
84 | 99 |
1 => 'cn=students,ou=groups,dc=hogwarts,dc=edu', |
85 | 100 |
2 => 'cn=honors students,ou=groups,dc=hogwarts,dc=edu', |
86 |
);
|
|
87 |
$desired[1] = array_merge($desired[0], array('cn=users,ou=groups,dc=hogwarts,dc=edu'));
|
|
101 |
];
|
|
102 |
$desired[1] = array_merge($desired[0], ['cn=users,ou=groups,dc=hogwarts,dc=edu']);
|
|
88 | 103 |
|
89 |
foreach (array(0, 1) as $nested) {
|
|
104 |
foreach ([0, 1] as $nested) {
|
|
90 | 105 |
|
91 | 106 |
$nested_display = ($nested) ? 'nested' : 'not nested'; |
92 | 107 |
$desired_count = ($nested) ? 4 : 3; |
93 |
$ldap_module_user_entry = array('attr' => $user_ldap_entry, 'dn' => $user_dn);
|
|
108 |
$ldap_module_user_entry = ['attr' => $user_ldap_entry, 'dn' => $user_dn];
|
|
94 | 109 |
$groups_desired = $desired[$nested]; |
95 | 110 |
|
96 |
$suffix = ",desired=$desired_count, nested=" . (boolean)$nested; |
|
111 |
$suffix = ",desired=$desired_count, nested=" . (boolean) $nested;
|
|
97 | 112 |
|
98 |
// test parent function groupMembershipsFromUser
|
|
113 |
// Test parent function groupMembershipsFromUser.
|
|
99 | 114 |
$groups = $ldap_server->groupMembershipsFromUser($ldap_module_user_entry, 'group_dns', $nested); |
100 | 115 |
$count = count($groups); |
101 | 116 |
$diff1 = array_diff($groups_desired, $groups); |
... | ... | |
106 | 121 |
debug('groupMembershipsFromUser');debug($groups); debug($diff1); debug($diff2); debug($groups_desired); |
107 | 122 |
} |
108 | 123 |
|
109 |
// test parent groupUserMembershipsFromUserAttr, for openldap should be false, for ad should work
|
|
124 |
// Test parent groupUserMembershipsFromUserAttr, for openldap should be false, for ad should work.
|
|
110 | 125 |
$groups = $ldap_server->groupUserMembershipsFromUserAttr($ldap_module_user_entry, $nested); |
111 | 126 |
$count = is_array($groups) ? count($groups) : $count; |
112 | 127 |
$pass = $count === FALSE; |
... | ... | |
128 | 143 |
$pass = (count($diff1) == 0 && count($diff2) == 0 && $count == $desired_count); |
129 | 144 |
$this->assertTrue($pass, "LdapServer::groupUserMembershipsFromEntry $nested_display works", $group . $suffix); |
130 | 145 |
if (!$pass) { |
131 |
debug('groupUserMembershipsFromEntry'); debug($groups); debug($diff1); debug($diff2); debug($groups_desired );
|
|
146 |
debug('groupUserMembershipsFromEntry'); debug($groups); debug($diff1); debug($diff2); debug($groups_desired); |
|
132 | 147 |
} |
133 | 148 |
} |
134 | 149 |
} |
135 | 150 |
} |
136 | 151 |
|
137 |
|
|
152 |
/** |
|
153 |
* |
|
154 |
*/ |
|
138 | 155 |
public function testInstall() { |
139 | 156 |
// TODO: Fix failing tests, excluding to make branch pass. |
140 | 157 |
return; |
141 | 158 |
$group = 'ldap_servers: install and uninstall'; |
142 |
$install_tables = array('ldap_servers'); |
|
143 |
// disable, uninstall, and enable/install module |
|
144 |
$modules = array($this->module_name); |
|
145 |
$ldap_module_uninstall_sequence = array('ldap_authentication', 'ldap_test', 'ldap_user', 'ldap_group', 'ldap_servers'); |
|
146 |
module_disable($ldap_module_uninstall_sequence); // disable dependent modules |
|
159 |
$install_tables = ['ldap_servers']; |
|
160 |
// disable, uninstall, and enable/install module. |
|
161 |
$modules = [$this->module_name]; |
|
162 |
$ldap_module_uninstall_sequence = ['ldap_authentication', 'ldap_test', 'ldap_user', 'ldap_group', 'ldap_servers']; |
|
163 |
// Disable dependent modules. |
|
164 |
module_disable($ldap_module_uninstall_sequence); |
|
147 | 165 |
drupal_uninstall_modules($ldap_module_uninstall_sequence); |
148 | 166 |
module_enable($modules, TRUE); |
149 | 167 |
foreach ($install_tables as $table) { |
... | ... | |
152 | 170 |
$var_created = $this->assertTrue(TRUE, 'ldap_servers_encryption variable initialized', $group); |
153 | 171 |
$var_created = $this->assertTrue(variable_get('ldap_servers_encrypt_key', drupal_get_hash_salt()), 'ldap_servers_encrypt_key variable initialized', $group); |
154 | 172 |
|
155 |
module_disable($modules, TRUE); // disable dependent modules |
|
156 |
drupal_uninstall_modules($modules, TRUE); // unistall dependent modules |
|
173 |
// Disable dependent modules. |
|
174 |
module_disable($modules, TRUE); |
|
175 |
// Unistall dependent modules. |
|
176 |
drupal_uninstall_modules($modules, TRUE); |
|
157 | 177 |
foreach ($install_tables as $table) { |
158 | 178 |
$this->assertFalse(db_table_exists($table), $table . ' table removed', $group); |
159 | 179 |
} |
160 | 180 |
$var_created = $this->assertFalse(variable_get('ldap_servers_encryption', FALSE), 'ldap_servers_encryption variable removed', $group); |
161 | 181 |
$var_created = $this->assertFalse(variable_get('ldap_servers_encrypt_key', FALSE), 'ldap_servers_encrypt_key variable removed', $group); |
162 | 182 |
|
163 |
|
|
164 |
// test tokens, see http://drupal.org/node/1245736 |
|
165 |
$ldap_entry = array( |
|
183 |
// Test tokens, see http://drupal.org/node/1245736 |
|
184 |
$ldap_entry = [ |
|
166 | 185 |
'dn' => 'cn=hpotter,ou=people,dc=hogwarts,dc=edu', |
167 |
'mail' => array( 0 => 'hpotter@hogwarts.edu', 'count' => 1),
|
|
168 |
'sAMAccountName' => array( 0 => 'hpotter', 'count' => 1),
|
|
169 |
'house' => array( 0 => 'Gryffindor', 1 => 'Privet Drive', 'count' => 2),
|
|
170 |
'guid' => array( 0 => 'sdafsdfsdf', 'count' => 1),
|
|
186 |
'mail' => [0 => 'hpotter@hogwarts.edu', 'count' => 1],
|
|
187 |
'sAMAccountName' => [0 => 'hpotter', 'count' => 1],
|
|
188 |
'house' => [0 => 'Gryffindor', 1 => 'Privet Drive', 'count' => 2],
|
|
189 |
'guid' => [0 => 'sdafsdfsdf', 'count' => 1],
|
|
171 | 190 |
'count' => 3, |
172 |
);
|
|
191 |
];
|
|
173 | 192 |
|
174 | 193 |
$this->ldapTestId = 'ldap_server.tokens'; |
175 | 194 |
|
176 | 195 |
$dn = ldap_servers_token_replace($ldap_entry, '[dn]'); |
177 |
$this->assertTrue( $dn == $ldap_entry['dn'], t('[dn] token worked on ldap_servers_token_replace().'), $this->ldapTestId);
|
|
196 |
$this->assertTrue($dn == $ldap_entry['dn'], t('[dn] token worked on ldap_servers_token_replace().'), $this->ldapTestId); |
|
178 | 197 |
|
179 | 198 |
$house0 = ldap_servers_token_replace($ldap_entry, '[house:0]'); |
180 |
$this->assertTrue( $house0 == $ldap_entry['house'][0], t("[house:0] token worked ($house0) on ldap_servers_token_replace()."), $this->ldapTestId);
|
|
199 |
$this->assertTrue($house0 == $ldap_entry['house'][0], t("[house:0] token worked ($house0) on ldap_servers_token_replace()."), $this->ldapTestId); |
|
181 | 200 |
|
182 | 201 |
$mixed = ldap_servers_token_replace($ldap_entry, 'thisold[house:0]'); |
183 |
$this->assertTrue( $mixed == 'thisold' . $ldap_entry['house'][0], t("thisold[house:0] token worked ($mixed) on ldap_servers_token_replace()."), $this->ldapTestId);
|
|
202 |
$this->assertTrue($mixed == 'thisold' . $ldap_entry['house'][0], t("thisold[house:0] token worked ($mixed) on ldap_servers_token_replace()."), $this->ldapTestId); |
|
184 | 203 |
|
185 | 204 |
$compound = ldap_servers_token_replace($ldap_entry, '[samaccountname:0][house:0]'); |
186 |
$this->assertTrue( $compound == $ldap_entry['sAMAccountName'][0] . $ldap_entry['house'][0], t("[samaccountname:0][house:0] compound token worked ($mixed) on ldap_servers_token_replace()."), $this->ldapTestId); |
|
187 |
|
|
205 |
$this->assertTrue($compound == $ldap_entry['sAMAccountName'][0] . $ldap_entry['house'][0], t("[samaccountname:0][house:0] compound token worked ($mixed) on ldap_servers_token_replace()."), $this->ldapTestId); |
|
188 | 206 |
|
189 | 207 |
$literalvalue = ldap_servers_token_replace($ldap_entry, 'literalvalue'); |
190 |
$this->assertTrue( $literalvalue == 'literalvalue', t("'literalvalue' token worked ($literalvalue) on ldap_servers_token_replace()."), $this->ldapTestId);
|
|
208 |
$this->assertTrue($literalvalue == 'literalvalue', t("'literalvalue' token worked ($literalvalue) on ldap_servers_token_replace()."), $this->ldapTestId); |
|
191 | 209 |
|
192 | 210 |
$house0 = ldap_servers_token_replace($ldap_entry, '[house]'); |
193 |
$this->assertTrue( $house0 == $ldap_entry['house'][0], t("[house] token worked ($house0) on ldap_servers_token_replace()."), $this->ldapTestId);
|
|
211 |
$this->assertTrue($house0 == $ldap_entry['house'][0], t("[house] token worked ($house0) on ldap_servers_token_replace()."), $this->ldapTestId); |
|
194 | 212 |
|
195 | 213 |
$house1 = ldap_servers_token_replace($ldap_entry, '[house:last]'); |
196 |
$this->assertTrue( $house1 == $ldap_entry['house'][1], t('[house:last] token worked on ldap_servers_token_replace().'), $this->ldapTestId);
|
|
214 |
$this->assertTrue($house1 == $ldap_entry['house'][1], t('[house:last] token worked on ldap_servers_token_replace().'), $this->ldapTestId); |
|
197 | 215 |
|
198 | 216 |
$sAMAccountName = ldap_servers_token_replace($ldap_entry, '[samaccountname:0]'); |
199 | 217 |
$this->assertTrue($sAMAccountName == $ldap_entry['sAMAccountName'][0], t('[samaccountname:0] token worked on ldap_servers_token_replace().'), $this->ldapTestId); |
... | ... | |
218 | 236 |
|
219 | 237 |
$binary = ldap_servers_token_replace($ldap_entry, '[guid;binary]'); |
220 | 238 |
$this->assertTrue($binary == ldap_servers_binary($ldap_entry['guid'][0]), t('[guid;binary] token worked on ldap_servers_token_replace().'), $this->ldapTestId); |
221 |
|
|
222 |
/** |
|
223 |
* @todo test tokens for 'user_account' |
|
224 |
* |
|
225 |
$account = new stdClass(); |
|
226 |
$account-> |
|
227 |
ldap_servers_token_replace($account, '[property.name]', 'user_account'); |
|
228 |
*/ |
|
229 |
|
|
230 | 239 |
module_enable($modules, TRUE); |
231 | 240 |
} |
232 | 241 |
|
242 |
/** |
|
243 |
* |
|
244 |
*/ |
|
233 | 245 |
public function testUIForms() { |
234 | 246 |
|
235 |
foreach (array(1) as $ctools_enabled) {
|
|
247 |
foreach ([1] as $ctools_enabled) {
|
|
236 | 248 |
$this->ldapTestId = "testUIForms.ctools.$ctools_enabled"; |
237 | 249 |
if ($ctools_enabled) { |
238 |
module_enable(array('ctools')); |
|
239 |
} |
|
240 |
else { |
|
241 |
// module_disable(array('ctools')); |
|
250 |
module_enable(['ctools']); |
|
242 | 251 |
} |
243 | 252 |
|
244 | 253 |
$ldap_simpletest_initial = variable_get('ldap_simpletest', 2); |
245 |
variable_del('ldap_simpletest'); // need to be out of fake server mode to test ui. |
|
246 |
$this->privileged_user = $this->drupalCreateUser(array( |
|
254 |
// Need to be out of fake server mode to test ui. |
|
255 |
variable_del('ldap_simpletest'); |
|
256 |
$this->privileged_user = $this->drupalCreateUser([ |
|
247 | 257 |
'administer site configuration', |
248 |
));
|
|
258 |
]);
|
|
249 | 259 |
$this->drupalLogin($this->privileged_user); |
250 | 260 |
|
251 | 261 |
$sid = 'server1'; |
252 |
$server_data = array();
|
|
253 |
$server_data[$sid] = array(
|
|
254 |
'sid' => array($sid, $sid),
|
|
255 |
'name' => array("Server $sid", "My Server $sid"),
|
|
256 |
'status' => array(1, 1),
|
|
257 |
'ldap_type' => array('openldap', 'ad'),
|
|
258 |
'address' => array("${sid}.ldap.fake", "${sid}.ldap.fake"),
|
|
259 |
'port' => array(389, 7000),
|
|
260 |
'tls' => array(TRUE, FALSE),
|
|
261 |
'bind_method' => array(1, 3),
|
|
262 |
'binddn' => array('cn=service-account,ou=people,dc=hogwarts,dc=edu', ''),
|
|
263 |
'bindpw' => array('sdfsdafsdfasdf', 'sdfsdafsdfasdf'),
|
|
264 |
'user_attr' => array('sAMAccountName', 'blah'),
|
|
265 |
'account_name_attr' => array('sAMAccountName', 'blah'),
|
|
266 |
'mail_attr' => array('mail', ''),
|
|
267 |
'mail_template' => array('' , '[email]'),
|
|
268 |
'unique_persistent_attr' => array('dn', 'uniqueregistryid'),
|
|
269 |
'unique_persistent_attr_binary' => array(1, 1, 1, 1),
|
|
270 |
'user_dn_expression' => array('cn=%cn,%basedn', 'cn=%username,%basedn'),
|
|
271 |
'ldap_to_drupal_user' => array('code', 'different code'),
|
|
272 |
|
|
273 |
'testing_drupal_username' => array('hpotter', 'hpotter'),
|
|
274 |
'testing_drupal_user_dn' => array('cn=hpotter,ou=people,dc=hogwarts,dc=edu', 'cn=hpotter,ou=people,dc=hogwarts,dc=edu'),
|
|
275 |
|
|
276 |
'grp_unused' => array(FALSE, FALSE),
|
|
277 |
'grp_object_cat' => array('group', 'group'),
|
|
278 |
'grp_nested' => array(FALSE, FALSE),
|
|
279 |
|
|
280 |
'grp_user_memb_attr_exists' => array(1, 1),
|
|
281 |
'grp_user_memb_attr' => array('memberof', 'memberof'),
|
|
282 |
|
|
283 |
'grp_memb_attr' => array('member', 'member'),
|
|
284 |
'grp_memb_attr_match_user_attr' => array('dn', 'dn'),
|
|
285 |
|
|
286 |
'grp_derive_from_dn' => array(1, 1),
|
|
287 |
'grp_derive_from_dn_attr' => array('ou', 'ou'),
|
|
288 |
|
|
289 |
'grp_test_grp_dn' => array('cn=students,ou=groups,dc=hogwarts,dc=edu', 'cn=students,ou=groups,dc=hogwarts,dc=edu'),
|
|
290 |
'grp_test_grp_dn_writeable' => array('cn=students,ou=groups,dc=hogwarts,dc=edu', 'cn=students,ou=groups,dc=hogwarts,dc=edu'),
|
|
291 |
|
|
292 |
);
|
|
293 |
|
|
294 |
$lcase_transformed = array(
|
|
262 |
$server_data = [];
|
|
263 |
$server_data[$sid] = [
|
|
264 |
'sid' => [$sid, $sid],
|
|
265 |
'name' => ["Server $sid", "My Server $sid"],
|
|
266 |
'status' => [1, 1],
|
|
267 |
'ldap_type' => ['openldap', 'ad'],
|
|
268 |
'address' => ["${sid}.ldap.fake", "${sid}.ldap.fake"],
|
|
269 |
'port' => [389, 7000],
|
|
270 |
'tls' => [TRUE, FALSE],
|
|
271 |
'bind_method' => [1, 3],
|
|
272 |
'binddn' => ['cn=service-account,ou=people,dc=hogwarts,dc=edu', ''],
|
|
273 |
'bindpw' => ['sdfsdafsdfasdf', 'sdfsdafsdfasdf'],
|
|
274 |
'user_attr' => ['sAMAccountName', 'blah'],
|
|
275 |
'account_name_attr' => ['sAMAccountName', 'blah'],
|
|
276 |
'mail_attr' => ['mail', ''],
|
|
277 |
'mail_template' => ['' , '[email]'],
|
|
278 |
'unique_persistent_attr' => ['dn', 'uniqueregistryid'],
|
|
279 |
'unique_persistent_attr_binary' => [1, 1, 1, 1],
|
|
280 |
'user_dn_expression' => ['cn=%cn,%basedn', 'cn=%username,%basedn'],
|
|
281 |
'ldap_to_drupal_user' => ['code', 'different code'],
|
|
282 |
|
|
283 |
'testing_drupal_username' => ['hpotter', 'hpotter'],
|
|
284 |
'testing_drupal_user_dn' => ['cn=hpotter,ou=people,dc=hogwarts,dc=edu', 'cn=hpotter,ou=people,dc=hogwarts,dc=edu'],
|
|
285 |
|
|
286 |
'grp_unused' => [FALSE, FALSE],
|
|
287 |
'grp_object_cat' => ['group', 'group'],
|
|
288 |
'grp_nested' => [FALSE, FALSE],
|
|
289 |
|
|
290 |
'grp_user_memb_attr_exists' => [1, 1],
|
|
291 |
'grp_user_memb_attr' => ['memberof', 'memberof'],
|
|
292 |
|
|
293 |
'grp_memb_attr' => ['member', 'member'],
|
|
294 |
'grp_memb_attr_match_user_attr' => ['dn', 'dn'],
|
|
295 |
|
|
296 |
'grp_derive_from_dn' => [1, 1],
|
|
297 |
'grp_derive_from_dn_attr' => ['ou', 'ou'],
|
|
298 |
|
|
299 |
'grp_test_grp_dn' => ['cn=students,ou=groups,dc=hogwarts,dc=edu', 'cn=students,ou=groups,dc=hogwarts,dc=edu'],
|
|
300 |
'grp_test_grp_dn_writeable' => ['cn=students,ou=groups,dc=hogwarts,dc=edu', 'cn=students,ou=groups,dc=hogwarts,dc=edu'],
|
|
301 |
|
|
302 |
];
|
|
303 |
|
|
304 |
$lcase_transformed = [
|
|
295 | 305 |
'user_attr', |
296 | 306 |
'account_name_attr', |
297 | 307 |
'mail_attr', |
298 | 308 |
'unique_persistent_attr', |
299 | 309 |
'grp_user_memb_attr', |
300 | 310 |
'grp_memb_attr_match_user_attr', |
301 |
'grp_derive_from_dn_attr' |
|
302 |
);
|
|
311 |
'grp_derive_from_dn_attr',
|
|
312 |
];
|
|
303 | 313 |
|
304 | 314 |
if (!module_exists('php')) { |
305 | 315 |
unset($server_data[$sid]['ldap_to_drupal_user']); |
... | ... | |
308 | 318 |
/** add server conf test **/ |
309 | 319 |
$this->drupalGet('admin/config/people/ldap/servers/add'); |
310 | 320 |
|
311 |
$edit = array();
|
|
321 |
$edit = [];
|
|
312 | 322 |
foreach ($server_data['server1'] as $input_name => $input_values) { |
313 | 323 |
$edit[$input_name] = $input_values[0]; |
314 | 324 |
} |
... | ... | |
318 | 328 |
$ldap_servers = ldap_servers_get_servers(NULL, 'all', FALSE, TRUE); |
319 | 329 |
$this->assertTrue(count(array_keys($ldap_servers)) == 1, 'Add form for ldap server added server.', $this->ldapTestId . ' Add Server'); |
320 | 330 |
$this->assertText('LDAP Server Server server1 added', 'Add form confirmation message', $this->ldapTestId . ' Add Server'); |
321 |
// assert one ldap server exists in db table |
|
322 |
|
|
323 |
// assert load of server has correct properties for each input |
|
331 |
// Assert one ldap server exists in db table |
|
332 |
// Assert load of server has correct properties for each input. |
|
324 | 333 |
$mismatches = $this->compareFormToProperties($ldap_servers['server1'], $server_data['server1'], 0, $field_to_prop_map, $lcase_transformed); |
325 | 334 |
if (count($mismatches)) { |
326 | 335 |
debug('mismatches between ldap server properties and form submitted values'); |
... | ... | |
330 | 339 |
} |
331 | 340 |
$this->assertTrue(count($mismatches) == 0, 'Add form for ldap server properties match values submitted.', $this->ldapTestId . ' Add Server'); |
332 | 341 |
|
333 |
|
|
334 | 342 |
/** update server conf test **/ |
335 | 343 |
|
336 | 344 |
$this->drupalGet('admin/config/people/ldap/servers/edit/server1'); |
337 | 345 |
|
338 |
$edit = array();
|
|
346 |
$edit = [];
|
|
339 | 347 |
foreach ($server_data['server1'] as $input_name => $input_values) { |
340 | 348 |
if ($input_values[1] !== NULL) { |
341 | 349 |
$edit[$input_name] = $input_values[1]; |
... | ... | |
346 | 354 |
$this->drupalPost('admin/config/people/ldap/servers/edit/server1', $edit, t('Update')); |
347 | 355 |
$ldap_servers = ldap_servers_get_servers(NULL, 'all', FALSE, TRUE); |
348 | 356 |
$this->assertTrue(count(array_keys($ldap_servers)) == 1, 'Update form for ldap server didnt delete or add another server.', $this->ldapTestId . '.Update Server'); |
349 |
// assert confirmation message without error
|
|
357 |
// Assert confirmation message without error
|
|
350 | 358 |
// assert one ldap server exists in db table |
351 |
// assert load of server has correct properties for each input |
|
352 |
// unset($server_data['server1']['bindpw']); |
|
359 |
// assert load of server has correct properties for each input. |
|
353 | 360 |
$mismatches = $this->compareFormToProperties($ldap_servers['server1'], $server_data['server1'], 1, $field_to_prop_map, $lcase_transformed); |
354 | 361 |
if (count($mismatches)) { |
355 | 362 |
debug('mismatches between ldap server properties and form submitted values'); debug($mismatches); |
... | ... | |
358 | 365 |
|
359 | 366 |
/** delete server conf test **/ |
360 | 367 |
$this->drupalGet('admin/config/people/ldap/servers/delete/server1'); |
361 |
$this->drupalPost('admin/config/people/ldap/servers/delete/server1', array(), t('Delete'));
|
|
368 |
$this->drupalPost('admin/config/people/ldap/servers/delete/server1', [], t('Delete'));
|
|
362 | 369 |
|
363 | 370 |
$ldap_servers = ldap_servers_get_servers(NULL, 'all', FALSE, TRUE); |
364 | 371 |
|
365 | 372 |
$this->assertTrue(count(array_keys($ldap_servers)) == 0, 'Delete form for ldap server deleted server.', $this->ldapTestId . '.Delete Server'); |
366 | 373 |
|
367 |
variable_set('ldap_simpletest', $ldap_simpletest_initial); // return to fake server mode |
|
374 |
// Return to fake server mode. |
|
375 |
variable_set('ldap_simpletest', $ldap_simpletest_initial); |
|
368 | 376 |
} |
369 | 377 |
} |
370 | 378 |
|
379 |
/** |
|
380 |
* |
|
381 |
*/ |
|
371 | 382 |
public function serverConfCount() { |
372 | 383 |
$records = db_query('SELECT * FROM {ldap_servers}')->fetchAllAssoc('sid'); |
373 | 384 |
return count(array_keys($records)); |
374 | 385 |
} |
375 | 386 |
|
387 |
/** |
|
388 |
* |
|
389 |
*/ |
|
376 | 390 |
public function compareFormToProperties($object, $data, $item_id, $map, $lcase_transformed) { |
377 | 391 |
|
378 |
$mismatches = array();
|
|
392 |
$mismatches = [];
|
|
379 | 393 |
foreach ($data as $field_id => $values) { |
380 | 394 |
$field_id = drupal_strtolower($field_id); |
381 | 395 |
if (!isset($map[$field_id])) { |
... | ... | |
387 | 401 |
} |
388 | 402 |
$property_value = $object->{$property}; |
389 | 403 |
|
390 |
$field_value = isset($values[$item_id + 2]) ? $values[$item_id + 2] : $values[$item_id]; // for cases where string input is not same as array. |
|
404 |
// For cases where string input is not same as array. |
|
405 |
$field_value = isset($values[$item_id + 2]) ? $values[$item_id + 2] : $values[$item_id]; |
|
391 | 406 |
|
392 |
if ($field_id == 'bindpw') { //
|
|
407 |
if ($field_id == 'bindpw') { |
|
393 | 408 |
continue; |
394 | 409 |
} |
395 | 410 |
if ($field_id == 'basedn') { |
... | ... | |
423 | 438 |
return $mismatches; |
424 | 439 |
} |
425 | 440 |
|
426 |
|
|
427 | 441 |
} |
Formats disponibles : Unified diff
Weekly update of contrib modules