Skip to content

Commit 7daec93

Browse files
committed
Check also extended ArrayObject
1 parent b12bdf2 commit 7daec93

File tree

1 file changed

+50
-44
lines changed

1 file changed

+50
-44
lines changed

Zend/tests/offsets/ArrayAccess_container_offset_behaviour.phpt

Lines changed: 50 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -7,112 +7,118 @@ require_once __DIR__ . DIRECTORY_SEPARATOR . 'test_offset_helpers.inc';
77

88
const EXPECTED_OUTPUT = <<<OUTPUT
99
Read before write:
10-
string(12) "A::offsetGet"
10+
string(12) "CLASS_NAME::offsetGet"
1111
VAR_DUMP_OF_OFFSET
1212
int(5)
1313
Write:
14-
string(12) "A::offsetSet"
14+
string(12) "CLASS_NAME::offsetSet"
1515
VAR_DUMP_OF_OFFSET
1616
int(5)
1717
Read:
18-
string(12) "A::offsetGet"
18+
string(12) "CLASS_NAME::offsetGet"
1919
VAR_DUMP_OF_OFFSET
2020
int(5)
2121
Read-Write:
22-
string(12) "A::offsetGet"
22+
string(12) "CLASS_NAME::offsetGet"
2323
VAR_DUMP_OF_OFFSET
24-
string(12) "A::offsetSet"
24+
string(12) "CLASS_NAME::offsetSet"
2525
VAR_DUMP_OF_OFFSET
2626
int(25)
2727
isset():
28-
string(15) "A::offsetExists"
28+
string(15) "CLASS_NAME::offsetExists"
2929
VAR_DUMP_OF_OFFSET
3030
bool(true)
3131
empty():
32-
string(15) "A::offsetExists"
32+
string(15) "CLASS_NAME::offsetExists"
3333
VAR_DUMP_OF_OFFSET
34-
string(12) "A::offsetGet"
34+
string(12) "CLASS_NAME::offsetGet"
3535
VAR_DUMP_OF_OFFSET
3636
bool(false)
3737
null coalesce:
38-
string(15) "A::offsetExists"
38+
string(15) "CLASS_NAME::offsetExists"
3939
VAR_DUMP_OF_OFFSET
40-
string(12) "A::offsetGet"
40+
string(12) "CLASS_NAME::offsetGet"
4141
VAR_DUMP_OF_OFFSET
4242
int(5)
4343
unset():
44-
string(14) "A::offsetUnset"
44+
string(14) "CLASS_NAME::offsetUnset"
4545
VAR_DUMP_OF_OFFSET
4646
Nested read:
47-
string(12) "A::offsetGet"
47+
string(12) "CLASS_NAME::offsetGet"
4848
VAR_DUMP_OF_OFFSET
4949
5050
Warning: Trying to access array offset on int in %s on line 62
5151
NULL
5252
Nested write:
53-
string(12) "A::offsetGet"
53+
string(12) "CLASS_NAME::offsetGet"
5454
VAR_DUMP_OF_OFFSET
5555
56-
Notice: Indirect modification of overloaded element of A has no effect in %s on line 69
56+
Notice: Indirect modification of overloaded element of CLASS_NAME has no effect in %s on line 69
5757
Cannot use a scalar value as an array
5858
Nested Read-Write:
59-
string(12) "A::offsetGet"
59+
string(12) "CLASS_NAME::offsetGet"
6060
VAR_DUMP_OF_OFFSET
6161
62-
Notice: Indirect modification of overloaded element of A has no effect in %s on line 76
62+
Notice: Indirect modification of overloaded element of CLASS_NAME has no effect in %s on line 76
6363
Cannot use a scalar value as an array
6464
Nested isset():
65-
string(15) "A::offsetExists"
65+
string(15) "CLASS_NAME::offsetExists"
6666
VAR_DUMP_OF_OFFSET
67-
string(12) "A::offsetGet"
67+
string(12) "CLASS_NAME::offsetGet"
6868
VAR_DUMP_OF_OFFSET
6969
bool(false)
7070
Nested empty():
71-
string(15) "A::offsetExists"
71+
string(15) "CLASS_NAME::offsetExists"
7272
VAR_DUMP_OF_OFFSET
73-
string(12) "A::offsetGet"
73+
string(12) "CLASS_NAME::offsetGet"
7474
VAR_DUMP_OF_OFFSET
7575
bool(true)
7676
Nested null coalesce:
77-
string(15) "A::offsetExists"
77+
string(15) "CLASS_NAME::offsetExists"
7878
VAR_DUMP_OF_OFFSET
79-
string(12) "A::offsetGet"
79+
string(12) "CLASS_NAME::offsetGet"
8080
VAR_DUMP_OF_OFFSET
8181
string(7) "default"
8282
Nested unset():
83-
string(12) "A::offsetGet"
83+
string(12) "CLASS_NAME::offsetGet"
8484
VAR_DUMP_OF_OFFSET
8585
86-
Notice: Indirect modification of overloaded element of A has no effect in %s on line 102
86+
Notice: Indirect modification of overloaded element of CLASS_NAME has no effect in %s on line 102
8787
Cannot unset offset in a non-array variable
8888
8989
OUTPUT;
9090

9191
ob_start();
92-
foreach ($offsets as $dimension) {
93-
$container = new A();
94-
$error = '(new A())[' . zend_test_var_export($dimension) . '] has different outputs' . "\n";
95-
ob_start();
96-
var_dump($dimension);
97-
$var_dump_output = ob_get_clean();
92+
foreach (['A', 'B'] as $class) {
93+
foreach ($offsets as $dimension) {
94+
$container = new $class();
95+
$error = "(new $class())[" . zend_test_var_export($dimension) . '] has different outputs' . "\n";
96+
ob_start();
97+
var_dump($dimension);
98+
$var_dump_output = ob_get_clean();
9899

99-
include $var_dim_filename;
100-
$varOutput = ob_get_contents();
101-
ob_clean();
102-
$varOutput = str_replace(
103-
[$var_dim_filename],
104-
['%s'],
105-
$varOutput
106-
);
100+
include $var_dim_filename;
101+
$varOutput = ob_get_contents();
102+
ob_clean();
103+
$varOutput = str_replace(
104+
[$var_dim_filename],
105+
['%s'],
106+
$varOutput
107+
);
107108

108-
$expected_output = str_replace("VAR_DUMP_OF_OFFSET\n", $var_dump_output, EXPECTED_OUTPUT);
109+
$expected_output = str_replace(
110+
["VAR_DUMP_OF_OFFSET\n", "CLASS_NAME"],
111+
[$var_dump_output, $class],
112+
EXPECTED_OUTPUT
113+
);
109114

110-
if ($varOutput !== $expected_output) {
111-
file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . "debug_ArrayAccess_container_{$failuresNb}.txt", $varOutput);
112-
++$failuresNb;
113-
$failures[] = $error;
115+
if ($varOutput !== $expected_output) {
116+
file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . "debug_ArrayAccess_container_{$failuresNb}.txt", $varOutput);
117+
++$failuresNb;
118+
$failures[] = $error;
119+
}
120+
++$testCasesTotal;
114121
}
115-
++$testCasesTotal;
116122
}
117123
ob_end_clean();
118124

0 commit comments

Comments
 (0)