diff --git a/ext/dom/tests/DOMProcessingInstruction.phpt b/ext/dom/tests/DOMProcessingInstruction.phpt new file mode 100644 index 00000000000..ca79e31966e --- /dev/null +++ b/ext/dom/tests/DOMProcessingInstruction.phpt @@ -0,0 +1,87 @@ +--TEST-- +Tests for DOMProcessingInstruction class +--EXTENSIONS-- +dom +--FILE-- +getMessage(), "\n"; +} + +$pi = new DOMProcessingInstruction("test"); + +echo "--- Test fields ---\n"; + +var_dump($pi->target); +var_dump($pi->data); +$pi->data = "ok"; +var_dump($pi->data); +try { + $pi->data = new FailingStringable; +} catch (Throwable $e) { + echo $e->getMessage(), "\n"; +} +var_dump($pi->data); +$pi->data = 12345; +var_dump($pi->data); +$pi->data = "my data <>"; +var_dump($pi->data); + +echo "--- Test appending ---\n"; + +$doc = new DOMDocument; +$doc->appendChild($doc->createElement('root')); +$doc->documentElement->appendChild($doc->adoptNode($pi)); +echo $doc->saveXML(); + +echo "--- Test construction with __construct by reflection and fields ---\n"; + +$class = new ReflectionClass('DOMProcessingInstruction'); +$instance = $class->newInstanceWithoutConstructor(); + +try { + var_dump($instance->target); +} catch (Throwable $e) { + echo $e->getMessage(), "\n"; +} +try { + var_dump($instance->data); +} catch (Throwable $e) { + echo $e->getMessage(), "\n"; +} +try { + $instance->data = "hello"; +} catch (Throwable $e) { + echo $e->getMessage(), "\n"; +} + +?> +--EXPECT-- +--- Test construction --- +Invalid Character Error +--- Test fields --- +string(4) "test" +string(0) "" +string(2) "ok" +failed in __toString +string(2) "ok" +string(5) "12345" +string(10) "my data <>" +--- Test appending --- + +?> +--- Test construction with __construct by reflection and fields --- +Invalid State Error +Invalid State Error +Invalid State Error