php-src/ext/dom/tests/dom007.phpt
Christopher Jones d14f23365c Make output order for dom007.phpt platform independent
This test has long been near the top of the reported output diffs.
For example, on http://qa.php.net/reports/?version=5.4.0 it has diffed
1307 times out of 3543 reports, at time of this commit.  (The second
highest diff has occurred 710 times.)
2012-05-01 15:43:31 -07:00

112 lines
2.3 KiB
PHP

--TEST--
Test 7: DTD tests
--SKIPIF--
<?php
require_once('skipif.inc');
?>
--FILE--
<?php
$xml = <<< EOXML
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE courses [
<!ELEMENT courses (course+)>
<!ELEMENT course (title, description, temp*)>
<!ATTLIST course cid ID #REQUIRED>
<!ELEMENT title (#PCDATA)>
<!ELEMENT description (#PCDATA)>
<!ELEMENT temp (#PCDATA)>
<!ATTLIST temp vid ID #REQUIRED>
<!ENTITY test 'http://www.hpl.hp.com/semweb/2003/query_tester#'>
<!ENTITY rdf 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
<!NOTATION GIF PUBLIC "-" "image/gif">
<!ENTITY myimage PUBLIC "-" "mypicture.gif" NDATA GIF>
]>
<courses>
<course cid="c1">
<title>Basic Languages</title>
<description>Introduction to Languages</description>
</course>
<course cid="c6">
<title>French I</title>
<description>Introduction to French</description>
<temp vid="c7">
</temp>
</course>
</courses>
EOXML;
$dom = new DOMDocument();
$dom->loadXML($xml);
$dtd = $dom->doctype;
/* Notation Tests */
$nots = $dtd->notations;
$length = $nots->length;
echo "Length: ".$length."\n";
foreach ($nots AS $key=>$node) {
echo "Key $key: ".$node->nodeName." (".$node->systemId.") (".$node->publicId.")\n";
}
print "\n";
for($x=0; $x < $length; $x++) {
echo "Index $x: ".$nots->item($x)->nodeName." (".$nots->item($x)->systemId.") (".$nots->item($x)->publicId.")\n";
}
echo "\n";
$node = $nots->getNamedItem('xxx');
var_dump($node);
echo "\n";
/* Entity Decl Tests */
$ents = $dtd->entities;
$length = $ents->length;
echo "Length: ".$length."\n";
$xkeys = array();
foreach ($ents AS $key=>$node) {
$xkeys[] = "Key: $key Name: ".$node->nodeName."\n";
}
sort($xkeys); // fix inconsistent output ordering (bug #61810)
foreach ($xkeys as $key => $node) {
echo $node;
}
echo "\n";
$xkeys = array();
for($x=0; $x < $length; $x++) {
$xkeys[] = "Index: ".$ents->item($x)->nodeName."\n";
}
sort($xkeys); // fix inconsistent output ordering (bug #61810)
foreach ($xkeys as $key => $node) {
echo $node;
}
echo "\n";
$node = $ents->item(3);
var_dump($node);
$node = $ents->getNamedItem('xxx');
var_dump($node);
--EXPECT--
Length: 1
Key GIF: GIF (image/gif) (-)
Index 0: GIF (image/gif) (-)
NULL
Length: 3
Key: myimage Name: myimage
Key: rdf Name: rdf
Key: test Name: test
Index: myimage
Index: rdf
Index: test
NULL
NULL