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

1.1       misho       1: --TEST--
                      2: SPL: Bug#45614 (ArrayIterator can show 1st private prop of wrapped object)
                      3: --FILE--
                      4: <?php
                      5: class C {
                      6:        private $priv1 = 'secret1';
                      7:        private $priv2 = 'secret2';
                      8:        public $pub1 = 'public1';
                      9:        public $pub2 = 'public2';
                     10:        public $pub3 = 'public3';
                     11: } 
                     12: 
                     13: function showFirstTwoItems($it) {
                     14:   echo str_replace("\0", '\0', $it->key()) . " => " . $it->current() .
                     15: "\n";
                     16:   $it->next();
                     17:   echo str_replace("\0", '\0', $it->key()) . " => " . $it->current() .
                     18: "\n";
                     19: }
                     20: 
                     21: $ao = new ArrayObject(new C);
                     22: $ai = $ao->getIterator();
                     23: 
                     24: echo "--> Show the first two items:\n";
                     25: showFirstTwoItems($ai);
                     26: 
                     27: echo "\n--> Rewind and show the first two items:\n";
                     28: $ai->rewind();
                     29: showFirstTwoItems($ai);
                     30: 
                     31: echo "\n--> Invalidate current position and show the first two items:\n";
                     32: unset($ai[$ai->key()]);
                     33: $ai->current();
                     34: showFirstTwoItems($ai);
                     35: 
                     36: echo "\n--> Rewind, seek and show the first two items:\n";
                     37: $ai->rewind();
                     38: $ai->seek(0);
                     39: showFirstTwoItems($ai);
                     40: ?>
                     41: --EXPECT--
                     42: --> Show the first two items:
                     43: pub1 => public1
                     44: pub2 => public2
                     45: 
                     46: --> Rewind and show the first two items:
                     47: pub1 => public1
                     48: pub2 => public2
                     49: 
                     50: --> Invalidate current position and show the first two items:
                     51: pub1 => public1
                     52: pub3 => public3
                     53: 
                     54: --> Rewind, seek and show the first two items:
                     55: pub1 => public1
                     56: pub3 => public3

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