Annotation of embedaddon/php/tests/lang/foreachLoopIteratorAggregate.002.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: IteratorAggregate::getIterator bad return type
        !             3: --FILE--
        !             4: <?php
        !             5: 
        !             6: class bad1 implements IteratorAggregate {
        !             7:        function getIterator() {
        !             8:                return null;
        !             9:        }
        !            10: }
        !            11: 
        !            12: class bad2 implements IteratorAggregate {
        !            13:        function getIterator() {
        !            14:                return new stdClass;
        !            15:        }
        !            16: }
        !            17: 
        !            18: class bad3 implements IteratorAggregate {
        !            19:        function getIterator() {
        !            20:                return 1;
        !            21:        }
        !            22: }
        !            23: 
        !            24: class bad4 implements IteratorAggregate {
        !            25:        function getIterator() {
        !            26:                return array(1,2,3);
        !            27:        }
        !            28: }
        !            29: 
        !            30: 
        !            31: function f($className) {
        !            32:        try {
        !            33:                foreach (new $className as $k=>$v) {
        !            34:                        echo "$k => $v\n";      
        !            35:                }
        !            36:        } catch (Exception $e) {
        !            37:                        echo $e->getLine() . ": " . $e->getMessage() ."\n";
        !            38:        }
        !            39: }
        !            40: 
        !            41: f("bad1");
        !            42: f("bad2");
        !            43: f("bad3");
        !            44: f("bad4");
        !            45: 
        !            46: ?>
        !            47: ===DONE===
        !            48: --EXPECTF--
        !            49: 30: Objects returned by bad1::getIterator() must be traversable or implement interface Iterator
        !            50: 30: Objects returned by bad2::getIterator() must be traversable or implement interface Iterator
        !            51: 30: Objects returned by bad3::getIterator() must be traversable or implement interface Iterator
        !            52: 30: Objects returned by bad4::getIterator() must be traversable or implement interface Iterator
        !            53: ===DONE===

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