mirror of
https://github.com/php/php-src.git
synced 2026-03-24 00:02:20 +01:00
Add tests for DOMProcessingInstruction class
This commit is contained in:
87
ext/dom/tests/DOMProcessingInstruction.phpt
Normal file
87
ext/dom/tests/DOMProcessingInstruction.phpt
Normal file
@@ -0,0 +1,87 @@
|
||||
--TEST--
|
||||
Tests for DOMProcessingInstruction class
|
||||
--EXTENSIONS--
|
||||
dom
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class FailingStringable {
|
||||
public function __toString(): string {
|
||||
throw new Exception("failed in __toString");
|
||||
}
|
||||
}
|
||||
|
||||
echo "--- Test construction ---\n";
|
||||
|
||||
try {
|
||||
$pi = new DOMProcessingInstruction("\0");
|
||||
} catch (DOMException $e) {
|
||||
echo $e->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 ---
|
||||
<?xml version="1.0"?>
|
||||
<root><?test my data <>?></root>
|
||||
--- Test construction with __construct by reflection and fields ---
|
||||
Invalid State Error
|
||||
Invalid State Error
|
||||
Invalid State Error
|
||||
Reference in New Issue
Block a user