Browse Source
Backported 5.3 tests to 5.2 and added more RecursiveIteratorIterator tests
PHP-5.2.1RC1
Backported 5.3 tests to 5.2 and added more RecursiveIteratorIterator tests
PHP-5.2.1RC1
19 changed files with 468 additions and 0 deletions
-
21ext/spl/tests/iterator_056.phpt
-
23ext/spl/tests/iterator_057.phpt
-
26ext/spl/tests/iterator_058.phpt
-
19ext/spl/tests/iterator_059.phpt
-
19ext/spl/tests/iterator_060.phpt
-
19ext/spl/tests/iterator_061.phpt
-
20ext/spl/tests/iterator_062.phpt
-
19ext/spl/tests/iterator_063.phpt
-
17ext/spl/tests/iterator_064.phpt
-
17ext/spl/tests/iterator_065.phpt
-
17ext/spl/tests/iterator_066.phpt
-
18ext/spl/tests/iterator_067.phpt
-
19ext/spl/tests/iterator_069.phpt
-
22ext/spl/tests/iterator_070.phpt
-
34ext/spl/tests/iterator_071.phpt
-
38ext/spl/tests/recursiveIteratorIterator_beginchildren_error.phpt
-
38ext/spl/tests/recursiveIteratorIterator_callHasChildren_error.phpt
-
44ext/spl/tests/recursiveIteratorIterator_endchildren_error.phpt
-
38ext/spl/tests/recursiveIteratorIterator_nextelement_error.phpt
@ -0,0 +1,21 @@ |
|||||
|
--TEST-- |
||||
|
SPL: FilterIterator::__construct(void) |
||||
|
--SKIPIF-- |
||||
|
<?php if (!extension_loaded("spl")) print "skip"; ?> |
||||
|
--CREDITS-- |
||||
|
Sebastian Schürmann |
||||
|
--FILE-- |
||||
|
<?php |
||||
|
class myFilterIterator extends FilterIterator { |
||||
|
function accept() { |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
try { |
||||
|
$it = new myFilterIterator(); |
||||
|
} catch (InvalidArgumentException $e) { |
||||
|
echo 'InvalidArgumentException thrown'; |
||||
|
} |
||||
|
?> |
||||
|
--EXPECT-- |
||||
|
InvalidArgumentException thrown |
||||
@ -0,0 +1,23 @@ |
|||||
|
--TEST-- |
||||
|
SPL: ArrayIterator::__construct(void) |
||||
|
--SKIPIF-- |
||||
|
<?php if (!extension_loaded("spl")) print "skip"; ?> |
||||
|
--CREDITS-- |
||||
|
Sebastian Schürmann |
||||
|
--FILE-- |
||||
|
<?php |
||||
|
/** |
||||
|
* From Docs: Construct a new array iterator from anything that has a hash table. |
||||
|
* NULL, NOTHING is not a hash table ;) |
||||
|
*/ |
||||
|
class myArrayIterator extends ArrayIterator { |
||||
|
} |
||||
|
try { |
||||
|
$it = new myArrayIterator(); |
||||
|
} catch (InvalidArgumentException $e) { |
||||
|
echo 'InvalidArgumentException thrown'; |
||||
|
} |
||||
|
echo 'no Exception thrown' |
||||
|
?> |
||||
|
--EXPECT-- |
||||
|
no Exception thrown |
||||
@ -0,0 +1,26 @@ |
|||||
|
--TEST-- |
||||
|
SPL: Iterator::__construct(void) |
||||
|
--SKIPIF-- |
||||
|
<?php if (!extension_loaded("spl")) print "skip"; ?> |
||||
|
--CREDITS-- |
||||
|
Sebastian Schürmann |
||||
|
--FILE-- |
||||
|
<?php |
||||
|
class myIterator implements Iterator { |
||||
|
|
||||
|
function current() {} |
||||
|
function next() {} |
||||
|
function key() {} |
||||
|
function valid() {} |
||||
|
function rewind() {} |
||||
|
|
||||
|
} |
||||
|
try { |
||||
|
$it = new myIterator(); |
||||
|
} catch (InvalidArgumentException $e) { |
||||
|
echo 'InvalidArgumentException thrown'; |
||||
|
} |
||||
|
echo 'no Exception thrown'; |
||||
|
?> |
||||
|
--EXPECT-- |
||||
|
no Exception thrown |
||||
@ -0,0 +1,19 @@ |
|||||
|
--TEST-- |
||||
|
SPL: CachingIterator::__construct(void) |
||||
|
--SKIPIF-- |
||||
|
<?php if (!extension_loaded("spl")) print "skip"; ?> |
||||
|
--CREDITS-- |
||||
|
Sebastian Schürmann |
||||
|
--FILE-- |
||||
|
<?php |
||||
|
class myCachingIterator extends CachingIterator { |
||||
|
|
||||
|
} |
||||
|
try { |
||||
|
$it = new myCachingIterator(); |
||||
|
} catch (InvalidArgumentException $e) { |
||||
|
echo 'InvalidArgumentException thrown'; |
||||
|
} |
||||
|
?> |
||||
|
--EXPECT-- |
||||
|
InvalidArgumentException thrown |
||||
@ -0,0 +1,19 @@ |
|||||
|
--TEST-- |
||||
|
SPL: RecursiveCachingIterator::__construct(void) |
||||
|
--SKIPIF-- |
||||
|
<?php if (!extension_loaded("spl")) print "skip"; ?> |
||||
|
--CREDITS-- |
||||
|
Sebastian Schürmann |
||||
|
--FILE-- |
||||
|
<?php |
||||
|
class myRecursiveCachingIterator extends RecursiveCachingIterator { |
||||
|
|
||||
|
} |
||||
|
try { |
||||
|
$it = new myRecursiveCachingIterator(); |
||||
|
} catch (InvalidArgumentException $e) { |
||||
|
echo 'InvalidArgumentException thrown'; |
||||
|
} |
||||
|
?> |
||||
|
--EXPECT-- |
||||
|
InvalidArgumentException thrown |
||||
@ -0,0 +1,19 @@ |
|||||
|
--TEST-- |
||||
|
SPL: ParentIterator::__construct(void) |
||||
|
--SKIPIF-- |
||||
|
<?php if (!extension_loaded("spl")) print "skip"; ?> |
||||
|
--CREDITS-- |
||||
|
Sebastian Schürmann |
||||
|
--FILE-- |
||||
|
<?php |
||||
|
class myParentIterator extends ParentIterator { |
||||
|
|
||||
|
} |
||||
|
try { |
||||
|
$it = new myParentIterator(); |
||||
|
} catch (InvalidArgumentException $e) { |
||||
|
echo 'InvalidArgumentException thrown'; |
||||
|
} |
||||
|
?> |
||||
|
--EXPECT-- |
||||
|
InvalidArgumentException thrown |
||||
@ -0,0 +1,20 @@ |
|||||
|
--TEST-- |
||||
|
SPL: RecursiveIteratorIterator::__construct(void) |
||||
|
--SKIPIF-- |
||||
|
<?php if (!extension_loaded("spl")) print "skip"; ?> |
||||
|
--CREDITS-- |
||||
|
Sebastian Schürmann |
||||
|
--FILE-- |
||||
|
<?php |
||||
|
class myRecursiveIteratorIterator extends RecursiveIteratorIterator { |
||||
|
|
||||
|
} |
||||
|
|
||||
|
try { |
||||
|
$it = new myRecursiveIteratorIterator(); |
||||
|
} catch (InvalidArgumentException $e) { |
||||
|
echo 'InvalidArgumentException thrown'; |
||||
|
} |
||||
|
?> |
||||
|
--EXPECT-- |
||||
|
InvalidArgumentException thrown |
||||
@ -0,0 +1,19 @@ |
|||||
|
--TEST-- |
||||
|
SPL: LimitIterator::__construct(void) |
||||
|
--SKIPIF-- |
||||
|
<?php if (!extension_loaded("spl")) print "skip"; ?> |
||||
|
--CREDITS-- |
||||
|
Sebastian Schürmann |
||||
|
--FILE-- |
||||
|
<?php |
||||
|
class myLimitIterator extends LimitIterator { |
||||
|
|
||||
|
} |
||||
|
try { |
||||
|
$it = new myLimitIterator(); |
||||
|
} catch (InvalidArgumentException $e) { |
||||
|
echo 'InvalidArgumentException thrown'; |
||||
|
} |
||||
|
?> |
||||
|
--EXPECT-- |
||||
|
InvalidArgumentException thrown |
||||
@ -0,0 +1,17 @@ |
|||||
|
--TEST-- |
||||
|
SPL: CachingIterator::__construct(void) |
||||
|
--SKIPIF-- |
||||
|
<?php if (!extension_loaded("spl")) print "skip"; ?> |
||||
|
--CREDITS-- |
||||
|
Sebastian Schürmann |
||||
|
--FILE-- |
||||
|
<?php |
||||
|
class myCachingIterator extends CachingIterator {} |
||||
|
try { |
||||
|
$it = new myCachingIterator(); |
||||
|
} catch (InvalidArgumentException $e) { |
||||
|
echo 'InvalidArgumentException thrown'; |
||||
|
} |
||||
|
?> |
||||
|
--EXPECT-- |
||||
|
InvalidArgumentException thrown |
||||
@ -0,0 +1,17 @@ |
|||||
|
--TEST-- |
||||
|
SPL: RecursiveCachingIterator::__construct(void) |
||||
|
--SKIPIF-- |
||||
|
<?php if (!extension_loaded("spl")) print "skip"; ?> |
||||
|
--CREDITS-- |
||||
|
Sebastian Schürmann |
||||
|
--FILE-- |
||||
|
<?php |
||||
|
class myRecursiveCachingIterator extends RecursiveCachingIterator {} |
||||
|
try { |
||||
|
$it = new myRecursiveCachingIterator(); |
||||
|
} catch (InvalidArgumentException $e) { |
||||
|
echo 'InvalidArgumentException thrown'; |
||||
|
} |
||||
|
?> |
||||
|
--EXPECT-- |
||||
|
InvalidArgumentException thrown |
||||
@ -0,0 +1,17 @@ |
|||||
|
--TEST-- |
||||
|
SPL: NoRewindIterator::__construct(void) |
||||
|
--SKIPIF-- |
||||
|
<?php if (!extension_loaded("spl")) print "skip"; ?> |
||||
|
--CREDITS-- |
||||
|
Sebastian Schürmann |
||||
|
--FILE-- |
||||
|
<?php |
||||
|
class myNoRewindIterator extends NoRewindIterator {} |
||||
|
try { |
||||
|
$it = new myNoRewindIterator(); |
||||
|
} catch (InvalidArgumentException $e) { |
||||
|
echo 'InvalidArgumentException thrown'; |
||||
|
} |
||||
|
?> |
||||
|
--EXPECT-- |
||||
|
InvalidArgumentException thrown |
||||
@ -0,0 +1,18 @@ |
|||||
|
--TEST-- |
||||
|
SPL: AppendIterator::__construct(void) |
||||
|
--SKIPIF-- |
||||
|
<?php if (!extension_loaded("spl")) print "skip"; ?> |
||||
|
--CREDITS-- |
||||
|
Sebastian Schürmann |
||||
|
--FILE-- |
||||
|
<?php |
||||
|
class myAppendIterator extends AppendIterator {} |
||||
|
try { |
||||
|
$it = new myAppendIterator(); |
||||
|
echo "no exception"; |
||||
|
} catch (InvalidArgumentException $e) { |
||||
|
echo 'InvalidArgumentException thrown'; |
||||
|
} |
||||
|
?> |
||||
|
--EXPECT-- |
||||
|
no exception |
||||
@ -0,0 +1,19 @@ |
|||||
|
--TEST-- |
||||
|
SPL: RecursiveIteratorIterator cannot be used with foreach by reference |
||||
|
--SKIPIF-- |
||||
|
<?php if (!extension_loaded("spl")) print "skip"; ?> |
||||
|
--FILE-- |
||||
|
<?php |
||||
|
|
||||
|
$arr = array(array(1,2)); |
||||
|
$arrOb = new ArrayObject($arr); |
||||
|
|
||||
|
$recArrIt = new RecursiveArrayIterator($arrOb->getIterator()); |
||||
|
|
||||
|
$recItIt = new RecursiveIteratorIterator($recArrIt); |
||||
|
|
||||
|
foreach ($recItIt as &$val) echo "$val\n"; |
||||
|
|
||||
|
?> |
||||
|
--EXPECTF-- |
||||
|
Fatal error: An iterator cannot be used with foreach by reference in %s on line %d |
||||
@ -0,0 +1,22 @@ |
|||||
|
--TEST-- |
||||
|
SPL: RecursiveIteratorIterator - Ensure that non-overriden methods execute problem free. |
||||
|
--SKIPIF-- |
||||
|
<?php if (!extension_loaded("spl")) print "skip"; ?> |
||||
|
--FILE-- |
||||
|
<?php |
||||
|
|
||||
|
$array = array(); |
||||
|
$recArrIt = new RecursiveArrayIterator($array); |
||||
|
|
||||
|
$recItIt = new RecursiveIteratorIterator($recArrIt); |
||||
|
|
||||
|
var_dump($recItIt->beginIteration()); |
||||
|
var_dump($recItIt->endIteration()); |
||||
|
var_dump($recItIt->nextElement()); |
||||
|
|
||||
|
?> |
||||
|
|
||||
|
--EXPECTF-- |
||||
|
NULL |
||||
|
NULL |
||||
|
NULL |
||||
@ -0,0 +1,34 @@ |
|||||
|
--TEST-- |
||||
|
SPL: RecursiveIteratorIterator - Test where the case is RS_SELF and mode is CHILD_FIRST |
||||
|
--SKIPIF-- |
||||
|
<?php if (!extension_loaded("spl")) print "skip"; ?> |
||||
|
--FILE-- |
||||
|
<?php |
||||
|
|
||||
|
$arr = array(array(1,2),2); |
||||
|
$arrOb = new ArrayObject($arr); |
||||
|
|
||||
|
$recArrIt = new RecursiveArrayIterator($arrOb->getIterator()); |
||||
|
|
||||
|
class MyRecursiveIteratorIterator extends RecursiveIteratorIterator { |
||||
|
|
||||
|
function nextelement() { |
||||
|
echo __METHOD__."\n"; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
$recItIt = new MyRecursiveIteratorIterator($recArrIt, RecursiveIteratorIterator::CHILD_FIRST); |
||||
|
|
||||
|
foreach ($recItIt as $key => $val) echo "$key\n"; |
||||
|
|
||||
|
?> |
||||
|
--EXPECTF-- |
||||
|
MyRecursiveIteratorIterator::nextelement |
||||
|
0 |
||||
|
MyRecursiveIteratorIterator::nextelement |
||||
|
1 |
||||
|
MyRecursiveIteratorIterator::nextelement |
||||
|
0 |
||||
|
MyRecursiveIteratorIterator::nextelement |
||||
|
1 |
||||
@ -0,0 +1,38 @@ |
|||||
|
--TEST-- |
||||
|
SPL: RecursiveIteratorIterator - Exception thrown in beginchildren which should be handled in next() |
||||
|
--SKIPIF-- |
||||
|
<?php if (!extension_loaded("spl")) print "skip"; ?> |
||||
|
--FILE-- |
||||
|
<?php |
||||
|
|
||||
|
$arr = array(array(1,2),2); |
||||
|
$arrOb = new ArrayObject($arr); |
||||
|
|
||||
|
$recArrIt = new RecursiveArrayIterator($arrOb->getIterator()); |
||||
|
|
||||
|
class MyRecursiveIteratorIterator extends RecursiveIteratorIterator { |
||||
|
|
||||
|
function beginchildren() { |
||||
|
throw new Exception; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
$recItIt = new MyRecursiveIteratorIterator($recArrIt, RecursiveIteratorIterator::LEAVES_ONLY, RecursiveIteratorIterator::CATCH_GET_CHILD); |
||||
|
|
||||
|
var_dump($recItIt->next()); |
||||
|
|
||||
|
$recItIt2 = new MyRecursiveIteratorIterator($recArrIt, RecursiveIteratorIterator::LEAVES_ONLY); |
||||
|
|
||||
|
var_dump($recItIt2->next()); |
||||
|
|
||||
|
?> |
||||
|
--EXPECTF-- |
||||
|
NULL |
||||
|
|
||||
|
Fatal error: Uncaught exception 'Exception' in %s |
||||
|
Stack trace: |
||||
|
#0 [internal function]: MyRecursiveIteratorIterator->beginchildren() |
||||
|
#1 %s: RecursiveIteratorIterator->next() |
||||
|
#2 {main} |
||||
|
thrown in %s on line %d |
||||
@ -0,0 +1,38 @@ |
|||||
|
--TEST-- |
||||
|
SPL: RecursiveIteratorIterator - Exception thrown in callHasChildren which should be handled in next() |
||||
|
--SKIPIF-- |
||||
|
<?php if (!extension_loaded("spl")) print "skip"; ?> |
||||
|
--FILE-- |
||||
|
<?php |
||||
|
|
||||
|
$arr = array(1,2); |
||||
|
$arrOb = new ArrayObject($arr); |
||||
|
|
||||
|
$recArrIt = new RecursiveArrayIterator($arrOb->getIterator()); |
||||
|
|
||||
|
class MyRecursiveIteratorIterator extends RecursiveIteratorIterator { |
||||
|
|
||||
|
function callHasChildren() { |
||||
|
throw new Exception; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
$recItIt = new MyRecursiveIteratorIterator($recArrIt, RecursiveIteratorIterator::LEAVES_ONLY, RecursiveIteratorIterator::CATCH_GET_CHILD); |
||||
|
|
||||
|
var_dump($recItIt->next()); |
||||
|
|
||||
|
$recItIt2 = new MyRecursiveIteratorIterator($recArrIt, RecursiveIteratorIterator::LEAVES_ONLY); |
||||
|
|
||||
|
var_dump($recItIt2->next()); |
||||
|
|
||||
|
?> |
||||
|
--EXPECTF-- |
||||
|
NULL |
||||
|
|
||||
|
Fatal error: Uncaught exception 'Exception' in %s |
||||
|
Stack trace: |
||||
|
#0 [internal function]: MyRecursiveIteratorIterator->callHasChildren() |
||||
|
#1 %s: RecursiveIteratorIterator->next() |
||||
|
#2 {main} |
||||
|
thrown in %s on line %d |
||||
@ -0,0 +1,44 @@ |
|||||
|
--TEST-- |
||||
|
SPL: RecursiveIteratorIterator - Exception thrown in endchildren which should be handled in next() |
||||
|
--SKIPIF-- |
||||
|
<?php if (!extension_loaded("spl")) print "skip"; ?> |
||||
|
--FILE-- |
||||
|
<?php |
||||
|
|
||||
|
$arr = array(array(1,2)); |
||||
|
$arrOb = new ArrayObject($arr); |
||||
|
|
||||
|
$recArrIt = new RecursiveArrayIterator($arrOb->getIterator()); |
||||
|
|
||||
|
class MyRecursiveIteratorIterator extends RecursiveIteratorIterator { |
||||
|
|
||||
|
function endchildren() { |
||||
|
throw new Exception; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
$recItIt = new MyRecursiveIteratorIterator($recArrIt, RecursiveIteratorIterator::LEAVES_ONLY, RecursiveIteratorIterator::CATCH_GET_CHILD); |
||||
|
|
||||
|
foreach ($recItIt as $val) echo "$val\n"; |
||||
|
|
||||
|
$recItIt2 = new MyRecursiveIteratorIterator($recArrIt, RecursiveIteratorIterator::LEAVES_ONLY); |
||||
|
|
||||
|
echo "===NEXT LOOP===\n"; |
||||
|
|
||||
|
foreach ($recItIt2 as $val) echo "$val\n"; |
||||
|
|
||||
|
?> |
||||
|
--EXPECTF-- |
||||
|
1 |
||||
|
2 |
||||
|
===NEXT LOOP=== |
||||
|
1 |
||||
|
2 |
||||
|
|
||||
|
Fatal error: Uncaught exception 'Exception' in %s |
||||
|
Stack trace: |
||||
|
#0 [internal function]: MyRecursiveIteratorIterator->endchildren() |
||||
|
#1 %s: RecursiveIteratorIterator->next() |
||||
|
#2 {main} |
||||
|
thrown in %s on line %d |
||||
@ -0,0 +1,38 @@ |
|||||
|
--TEST-- |
||||
|
SPL: RecursiveIteratorIterator - Exception thrown in nextelement which should be handled in next() |
||||
|
--SKIPIF-- |
||||
|
<?php if (!extension_loaded("spl")) print "skip"; ?> |
||||
|
--FILE-- |
||||
|
<?php |
||||
|
|
||||
|
$arr = array(1,2); |
||||
|
$arrOb = new ArrayObject($arr); |
||||
|
|
||||
|
$recArrIt = new RecursiveArrayIterator($arrOb->getIterator()); |
||||
|
|
||||
|
class MyRecursiveIteratorIterator extends RecursiveIteratorIterator { |
||||
|
|
||||
|
function nextelement() { |
||||
|
throw new Exception; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
$recItIt = new MyRecursiveIteratorIterator($recArrIt, RecursiveIteratorIterator::LEAVES_ONLY, RecursiveIteratorIterator::CATCH_GET_CHILD); |
||||
|
|
||||
|
var_dump($recItIt->next()); |
||||
|
|
||||
|
$recItIt = new MyRecursiveIteratorIterator($recArrIt, RecursiveIteratorIterator::LEAVES_ONLY); |
||||
|
|
||||
|
var_dump($recItIt->next()); |
||||
|
|
||||
|
?> |
||||
|
--EXPECTF-- |
||||
|
NULL |
||||
|
|
||||
|
Fatal error: Uncaught exception 'Exception' in %s |
||||
|
Stack trace: |
||||
|
#0 [internal function]: MyRecursiveIteratorIterator->nextelement() |
||||
|
#1 %s: RecursiveIteratorIterator->next() |
||||
|
#2 {main} |
||||
|
thrown in %s on line %d |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue