diff options
Diffstat (limited to 'ext/libxml/tests/libxml_set_external_entity_loader_variation2.phpt')
| -rw-r--r-- | ext/libxml/tests/libxml_set_external_entity_loader_variation2.phpt | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/ext/libxml/tests/libxml_set_external_entity_loader_variation2.phpt b/ext/libxml/tests/libxml_set_external_entity_loader_variation2.phpt new file mode 100644 index 0000000..b6251be --- /dev/null +++ b/ext/libxml/tests/libxml_set_external_entity_loader_variation2.phpt @@ -0,0 +1,45 @@ +--TEST-- +libxml_set_external_entity_loader() variation: restore original handler; returning NULL +--SKIPIF-- +<?php if (!extension_loaded('dom')) die('skip'); ?> +--CLEAN-- +<?php +@unlink(__DIR__ . "/foobar.dtd"); +--FILE-- +<?php +chdir(__DIR__); +$xml = <<<XML +<!DOCTYPE foo PUBLIC "-//FOO/BAR" "foobar.dtd"> +<foo>bar</foo> +XML; + +$dtd = <<<DTD +<!ELEMENT foo (#PCDATA)> +DTD; + + +libxml_set_external_entity_loader( + function ($public, $system, $context) { + var_dump($public,$system); + return null; + } +); + +$dd = new DOMDocument; +$r = $dd->loadXML($xml); +var_dump($dd->validate()); + +libxml_set_external_entity_loader(NULL); +file_put_contents(__DIR__ . "/foobar.dtd", $dtd); +var_dump($dd->validate()); + +echo "Done.\n"; + +--EXPECTF-- +string(10) "-//FOO/BAR" +string(%d) "%sfoobar.dtd" + +Warning: DOMDocument::validate(): Could not load the external subset "foobar.dtd" in %s on line %d +bool(false) +bool(true) +Done. |
