Annotation of embedaddon/php/ext/libxml/tests/libxml_set_external_entity_loader_variation2.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: libxml_set_external_entity_loader() variation: restore original handler; returning NULL
                      3: --SKIPIF--
                      4: <?php if (!extension_loaded('dom')) die('skip'); ?>
                      5: --CLEAN--
                      6: <?php
                      7: @unlink(__DIR__ . "/foobar.dtd");
                      8: --FILE--
                      9: <?php
                     10: chdir(__DIR__);
                     11: $xml = <<<XML
                     12: <!DOCTYPE foo PUBLIC "-//FOO/BAR" "foobar.dtd">
                     13: <foo>bar</foo>
                     14: XML;
                     15: 
                     16: $dtd = <<<DTD
                     17: <!ELEMENT foo (#PCDATA)>
                     18: DTD;
                     19: 
                     20: 
                     21: libxml_set_external_entity_loader(
                     22:        function ($public, $system, $context) {
                     23:                var_dump($public,$system);
                     24:                return null;
                     25:        }
                     26: );
                     27: 
                     28: $dd = new DOMDocument;
                     29: $r = $dd->loadXML($xml);
                     30: var_dump($dd->validate());
                     31: 
                     32: libxml_set_external_entity_loader(NULL);
                     33: file_put_contents(__DIR__ . "/foobar.dtd", $dtd);
                     34: var_dump($dd->validate());
                     35: 
                     36: echo "Done.\n";
                     37: 
                     38: --EXPECTF--
                     39: string(10) "-//FOO/BAR"
                     40: string(%d) "%sfoobar.dtd"
                     41: 
                     42: Warning: DOMDocument::validate(): Could not load the external subset "foobar.dtd" in %s on line %d
                     43: bool(false)
                     44: bool(true)
                     45: Done.

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