summaryrefslogtreecommitdiff
path: root/ext/ldap/tests/ldap_add_error.phpt
blob: a53277da8090819fd861ac9adfc6a0d8500c0fb7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
--TEST--
ldap_add() - Add operation that should fail
--CREDITS--
Patrick Allaert <patrickallaert@php.net>
# Belgian PHP Testfest 2009
--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);

// Too few parameters
var_dump(ldap_add());
var_dump(ldap_add($link));
var_dump(ldap_add($link, "$base"));

// Too many parameters
var_dump(ldap_add($link, "$base", array(), "Additional data"));

var_dump(ldap_add($link, "$base", array()));

// Invalid DN
var_dump(
	ldap_add($link, "weirdAttribute=val", array(
		"weirdAttribute"			=> "val",
	)),
	ldap_error($link),
	ldap_errno($link)
);

// Duplicate entry
for ($i = 0; $i < 2; $i++)
	var_dump(
    ldap_add($link, "dc=my-domain,$base", array(
      "objectClass"	=> array(
        "top",
        "dcObject",
        "organization"),
      "dc"			=> "my-domain",
      "o"				=> "my-domain",
    ))
	);
var_dump(ldap_error($link), ldap_errno($link));

// Wrong array indexes
var_dump(
	ldap_add($link, "dc=my-domain2,dc=com", array(
		"objectClass"	=> array(
			0	=> "top",
			2	=> "dcObject",
			5	=> "organization"),
		"dc"			=> "my-domain",
		"o"				=> "my-domain",
	))
	/* Is this correct behaviour to still have "Already exists" as error/errno?
	,
	ldap_error($link),
	ldap_errno($link)
	*/
);

// Invalid attribute
var_dump(
	ldap_add($link, "$base", array(
		"objectClass"	=> array(
			"top",
			"dcObject",
			"organization"),
		"dc"			=> "my-domain",
		"o"				=> "my-domain",
		"weirdAttr"		=> "weirdVal",
	)),
	ldap_error($link),
	ldap_errno($link)
);

var_dump(
	ldap_add($link, "$base", array(array( "Oops"
	)))
	/* Is this correct behaviour to still have "Undefined attribute type" as error/errno?
	,
	ldap_error($link),
	ldap_errno($link)
	*/
);
?>
===DONE===
--CLEAN--
<?php
require "connect.inc";

$link = ldap_connect_and_bind($host, $port, $user, $passwd, $protocol_version);

ldap_delete($link, "dc=my-domain,$base");
?>
--EXPECTF--
Warning: ldap_add() expects exactly 3 parameters, 0 given in %s on line %d
NULL

Warning: ldap_add() expects exactly 3 parameters, 1 given in %s on line %d
NULL

Warning: ldap_add() expects exactly 3 parameters, 2 given in %s on line %d
NULL

Warning: ldap_add() expects exactly 3 parameters, 4 given in %s on line %d
NULL

Warning: ldap_add(): Add: Protocol error in %s on line %d
bool(false)

Warning: ldap_add(): Add: Invalid DN syntax in %s on line %d
bool(false)
string(17) "Invalid DN syntax"
int(34)
bool(true)

Warning: ldap_add(): Add: Already exists in %s on line %d
bool(false)
string(14) "Already exists"
int(68)

Warning: ldap_add(): Value array must have consecutive indices 0, 1, ... in %s on line %d
bool(false)

Warning: ldap_add(): Add: Undefined attribute type in %s on line %d
bool(false)
string(24) "Undefined attribute type"
int(17)

Warning: ldap_add(): Unknown attribute in the data in %s on line %d
bool(false)
===DONE===