Annotation of embedaddon/php/ext/spl/tests/recursiveIteratorIterator_endchildren_error.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: SPL: RecursiveIteratorIterator - Exception thrown in endchildren which should be handled in next()
                      3: --FILE--
                      4: <?php 
                      5: 
                      6: $arr = array(array(1,2));
                      7: $arrOb = new ArrayObject($arr);
                      8: 
                      9: $recArrIt = new RecursiveArrayIterator($arrOb->getIterator());
                     10: 
                     11: class MyRecursiveIteratorIterator extends RecursiveIteratorIterator {
                     12:     
                     13:     function endchildren() {
                     14:        throw new Exception;
                     15:     }
                     16: }
                     17: 
                     18: 
                     19: $recItIt = new MyRecursiveIteratorIterator($recArrIt, RecursiveIteratorIterator::LEAVES_ONLY, RecursiveIteratorIterator::CATCH_GET_CHILD);
                     20: 
                     21: foreach ($recItIt as $val) echo "$val\n";
                     22: 
                     23: $recItIt2 = new MyRecursiveIteratorIterator($recArrIt, RecursiveIteratorIterator::LEAVES_ONLY);
                     24: 
                     25: echo "===NEXT LOOP===\n";
                     26: 
                     27: foreach ($recItIt2 as $val) echo "$val\n";
                     28: 
                     29: ?>
                     30: --EXPECTF--
                     31: 1
                     32: 2
                     33: ===NEXT LOOP===
                     34: 1
                     35: 2
                     36: 
                     37: Fatal error: Uncaught exception 'Exception' in %s
                     38: Stack trace:
                     39: #0 [internal function]: MyRecursiveIteratorIterator->endchildren()
                     40: #1 %s: RecursiveIteratorIterator->next()
                     41: #2 {main}
                     42:   thrown in %s on line %d

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>