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>