Browse Source
Merge branch 'PHP-5.4' into PHP-5.5
Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4: Implement ldap_modify_batch. Conflicts: ext/ldap/ldap.cpull/597/head
6 changed files with 595 additions and 0 deletions
-
4NEWS
-
3UPGRADING
-
365ext/ldap/ldap.c
-
10ext/ldap/php_ldap.h
-
109ext/ldap/tests/ldap_modify_batch_basic.phpt
-
104ext/ldap/tests/ldap_modify_batch_error.phpt
@ -0,0 +1,109 @@ |
|||
--TEST-- |
|||
ldap_modify_batch() - Basic batch modify operation |
|||
--CREDITS-- |
|||
Patrick Allaert <patrickallaert@php.net> |
|||
Ondřej Hošek <ondra.hosek@gmail.com> |
|||
--SKIPIF-- |
|||
<?php require_once('skipif.inc'); ?> |
|||
<?php require_once('skipifbindfailure.inc'); ?> |
|||
--FILE-- |
|||
<?php |
|||
require "connect.inc"; |
|||
|
|||
$link = ldap_connect_and_bind($host, $port, $user, $passwd, $protocol_version); |
|||
insert_dummy_data($link); |
|||
|
|||
$mods = array( |
|||
array( |
|||
"attrib" => "telephoneNumber", |
|||
"modtype" => LDAP_MODIFY_BATCH_ADD, |
|||
"values" => array( |
|||
"+1 555 5551717" |
|||
) |
|||
), |
|||
array( |
|||
"attrib" => "sn", |
|||
"modtype" => LDAP_MODIFY_BATCH_REPLACE, |
|||
"values" => array("Brown-Smith") |
|||
), |
|||
array( |
|||
"attrib" => "description", |
|||
"modtype" => LDAP_MODIFY_BATCH_REMOVE_ALL |
|||
) |
|||
); |
|||
|
|||
var_dump( |
|||
ldap_modify_batch($link, "cn=userA,dc=my-domain,dc=com", $mods), |
|||
ldap_get_entries($link, ldap_search($link, "dc=my-domain,dc=com", "(sn=Brown-Smith)")) |
|||
); |
|||
?> |
|||
===DONE=== |
|||
--CLEAN-- |
|||
<?php |
|||
require "connect.inc"; |
|||
|
|||
$link = ldap_connect_and_bind($host, $port, $user, $passwd, $protocol_version); |
|||
|
|||
remove_dummy_data($link); |
|||
?> |
|||
--EXPECT-- |
|||
bool(true) |
|||
array(2) { |
|||
["count"]=> |
|||
int(1) |
|||
[0]=> |
|||
array(12) { |
|||
["objectclass"]=> |
|||
array(2) { |
|||
["count"]=> |
|||
int(1) |
|||
[0]=> |
|||
string(6) "person" |
|||
} |
|||
[0]=> |
|||
string(11) "objectclass" |
|||
["cn"]=> |
|||
array(2) { |
|||
["count"]=> |
|||
int(1) |
|||
[0]=> |
|||
string(5) "userA" |
|||
} |
|||
[1]=> |
|||
string(2) "cn" |
|||
["userpassword"]=> |
|||
array(2) { |
|||
["count"]=> |
|||
int(1) |
|||
[0]=> |
|||
string(4) "oops" |
|||
} |
|||
[2]=> |
|||
string(12) "userpassword" |
|||
["telephonenumber"]=> |
|||
array(3) { |
|||
["count"]=> |
|||
int(2) |
|||
[0]=> |
|||
string(14) "xx-xx-xx-xx-xx" |
|||
[1]=> |
|||
string(14) "+1 555 5551717" |
|||
} |
|||
[3]=> |
|||
string(15) "telephonenumber" |
|||
["sn"]=> |
|||
array(2) { |
|||
["count"]=> |
|||
int(1) |
|||
[0]=> |
|||
string(11) "Brown-Smith" |
|||
} |
|||
[4]=> |
|||
string(2) "sn" |
|||
["count"]=> |
|||
int(5) |
|||
["dn"]=> |
|||
string(28) "cn=userA,dc=my-domain,dc=com" |
|||
} |
|||
} |
|||
===DONE=== |
|||
@ -0,0 +1,104 @@ |
|||
--TEST-- |
|||
ldap_modify_batch() - Batch modify operations that should fail |
|||
--CREDITS-- |
|||
Patrick Allaert <patrickallaert@php.net> |
|||
Ondřej Hošek <ondra.hosek@gmail.com> |
|||
--SKIPIF-- |
|||
<?php require_once('skipif.inc'); ?> |
|||
<?php require_once('skipifbindfailure.inc'); ?> |
|||
--FILE-- |
|||
<?php |
|||
require "connect.inc"; |
|||
|
|||
$link = ldap_connect_and_bind($host, $port, $user, $passwd, $protocol_version); |
|||
|
|||
$addGivenName = array( |
|||
array( |
|||
"attrib" => "givenName", |
|||
"modtype" => LDAP_MODIFY_BATCH_ADD, |
|||
"values" => array("Jack") |
|||
) |
|||
); |
|||
|
|||
// Too few parameters |
|||
var_dump(ldap_modify_batch()); |
|||
var_dump(ldap_modify_batch($link)); |
|||
var_dump(ldap_modify_batch($link, "dc=my-domain,dc=com")); |
|||
|
|||
// Too many parameters |
|||
var_dump(ldap_modify_batch($link, "dc=my-domain,dc=com", $addGivenName, "Invalid additional parameter")); |
|||
|
|||
// DN not found |
|||
var_dump(ldap_modify_batch($link, "dc=my-domain,dc=com", $addGivenName)); |
|||
|
|||
// Invalid DN |
|||
var_dump(ldap_modify_batch($link, "weirdAttribute=val", $addGivenName)); |
|||
|
|||
// prepare |
|||
$entry = array( |
|||
"objectClass" => array( |
|||
"top", |
|||
"dcObject", |
|||
"organization"), |
|||
"dc" => "my-domain", |
|||
"o" => "my-domain", |
|||
); |
|||
|
|||
ldap_add($link, "dc=my-domain,dc=com", $entry); |
|||
|
|||
// invalid domain |
|||
$mods = array( |
|||
array( |
|||
"attrib" => "dc", |
|||
"modtype" => LDAP_MODIFY_BATCH_REPLACE, |
|||
"values" => array("Wrong Domain") |
|||
) |
|||
); |
|||
|
|||
var_dump(ldap_modify_batch($link, "dc=my-domain,dc=com", $mods)); |
|||
|
|||
// invalid attribute |
|||
$mods = array( |
|||
array( |
|||
"attrib" => "weirdAttribute", |
|||
"modtype" => LDAP_MODIFY_BATCH_ADD, |
|||
"values" => array("weirdVal", "anotherWeirdval") |
|||
) |
|||
); |
|||
|
|||
var_dump(ldap_modify_batch($link, "dc=my-domain,dc=com", $mods)); |
|||
?> |
|||
===DONE=== |
|||
--CLEAN-- |
|||
<?php |
|||
require "connect.inc"; |
|||
|
|||
$link = ldap_connect_and_bind($host, $port, $user, $passwd, $protocol_version); |
|||
|
|||
ldap_delete($link, "dc=my-domain,dc=com"); |
|||
?> |
|||
--EXPECTF-- |
|||
Warning: ldap_modify_batch() expects exactly 3 parameters, 0 given in %s on line %d |
|||
NULL |
|||
|
|||
Warning: ldap_modify_batch() expects exactly 3 parameters, 1 given in %s on line %d |
|||
NULL |
|||
|
|||
Warning: ldap_modify_batch() expects exactly 3 parameters, 2 given in %s on line %d |
|||
NULL |
|||
|
|||
Warning: ldap_modify_batch() expects exactly 3 parameters, 4 given in %s on line %d |
|||
NULL |
|||
|
|||
Warning: ldap_modify_batch(): Batch Modify: No such object in %s on line %d |
|||
bool(false) |
|||
|
|||
Warning: ldap_modify_batch(): Batch Modify: Invalid DN syntax in %s on line %d |
|||
bool(false) |
|||
|
|||
Warning: ldap_modify_batch(): Batch Modify: Naming violation in %s on line %d |
|||
bool(false) |
|||
|
|||
Warning: ldap_modify_batch(): Batch Modify: Undefined attribute type in %s on line %d |
|||
bool(false) |
|||
===DONE=== |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue