Annotation of embedaddon/php/ext/simplexml/tests/bug42259.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: Bug #42259 (SimpleXMLIterator loses ancestry)
        !             3: --SKIPIF--
        !             4: <?php
        !             5: if (!extension_loaded('simplexml')) print 'skip';
        !             6: if (!extension_loaded("libxml")) print "skip LibXML not present";
        !             7: ?>
        !             8: --FILE--
        !             9: <?php
        !            10: $xml =<<<EOF
        !            11: <xml>
        !            12:   <fieldset1>
        !            13:     <field1/>
        !            14:     <field2/>
        !            15:   </fieldset1>
        !            16:   <fieldset2>
        !            17:     <options>
        !            18:       <option1/>
        !            19:       <option2/>
        !            20:       <option3/>
        !            21:     </options>
        !            22:     <field1/>
        !            23:     <field2/>
        !            24:   </fieldset2>
        !            25: </xml>
        !            26: EOF;
        !            27: 
        !            28: $sxe = new SimpleXMLIterator($xml);
        !            29: $rit = new RecursiveIteratorIterator($sxe, RecursiveIteratorIterator::LEAVES_ONLY);
        !            30: foreach ($rit as $child) {
        !            31:   $path = '';
        !            32:   $ancestry = $child->xpath('ancestor-or-self::*');
        !            33:   foreach ($ancestry as $ancestor) {
        !            34:     $path .= $ancestor->getName() . '/';
        !            35:   }
        !            36:   $path = substr($path, 0, strlen($path) - 1);
        !            37:   echo count($ancestry) . ' steps: ' . $path . PHP_EOL;
        !            38: }
        !            39: ?>
        !            40: ===DONE===
        !            41: --EXPECT--
        !            42: 3 steps: xml/fieldset1/field1
        !            43: 3 steps: xml/fieldset1/field2
        !            44: 4 steps: xml/fieldset2/options/option1
        !            45: 4 steps: xml/fieldset2/options/option2
        !            46: 4 steps: xml/fieldset2/options/option3
        !            47: 3 steps: xml/fieldset2/field1
        !            48: 3 steps: xml/fieldset2/field2
        !            49: ===DONE===

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