Annotation of embedaddon/php/ext/dom/tests/bug43364.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: Bug #43364 (recursive xincludes don't remove internal xml nodes properly)
        !             3: --SKIPIF--
        !             4: <?php require_once('skipif.inc'); ?>
        !             5: --FILE--
        !             6: <?php 
        !             7: function loopElements($nodes)
        !             8: {
        !             9:     $count = 0;
        !            10:     foreach($nodes as $node) {
        !            11:         if($node instanceof DOMElement) {
        !            12:             $count++;
        !            13:             if($node->childNodes->length > 0) {
        !            14:                 $count += loopElements($node->childNodes);
        !            15:             }
        !            16:         }
        !            17:     }
        !            18:     return $count;
        !            19: }
        !            20: 
        !            21: $xml = <<<DOC
        !            22: <?xml version="1.0" encoding="UTF-8"?>
        !            23: <root xmlns:xi="http://www.w3.org/2001/XInclude">
        !            24:     <a>
        !            25:         <a_child1>ac1</a_child1>
        !            26:         <a_child2>ac2</a_child2>
        !            27:     </a>
        !            28:     <b><xi:include xpointer="xpointer(/root/a)" /></b>
        !            29:     <c><xi:include xpointer="xpointer(/root/b)" /></c>
        !            30: </root>
        !            31: DOC;
        !            32: 
        !            33: $doc = new DomDocument();
        !            34: $doc->loadXml($xml);
        !            35: $doc->xinclude();
        !            36: 
        !            37: $count = loopElements(array($doc->documentElement));
        !            38: 
        !            39: var_dump($count);
        !            40: ?>
        !            41: --EXPECT--
        !            42: int(13)

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