From: Ant Phillips Date: Mon, 1 Dec 2008 11:30:10 +0000 (+0000) Subject: DOM tests: checked on PHP 5.2.6, 5.3 and 6.0 (Windows, Linux and Linux 64 bit). X-Git-Tag: php-5.3.0alpha2~27 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5eaaf3843f179b0943c6c164057f63744e7df6ff;p=php DOM tests: checked on PHP 5.2.6, 5.3 and 6.0 (Windows, Linux and Linux 64 bit). --- diff --git a/ext/dom/tests/DOMCharacterData_appendData_basic.phpt b/ext/dom/tests/DOMCharacterData_appendData_basic.phpt index 9b37b4443a..ee590de80c 100644 --- a/ext/dom/tests/DOMCharacterData_appendData_basic.phpt +++ b/ext/dom/tests/DOMCharacterData_appendData_basic.phpt @@ -3,8 +3,6 @@ DOMCharacterData::appendData basic functionality test --CREDITS-- Mike Sullivan #TestFest 2008 (London) ---SKIPIF-- - --FILE-- <&" -<&"]]> +<&"]]> \ No newline at end of file diff --git a/ext/dom/tests/DOMComment_appendData_basic_Sullivan.phpt b/ext/dom/tests/DOMComment_appendData_basic_Sullivan.phpt index 4d39ea4695..b7d90a1194 100644 --- a/ext/dom/tests/DOMComment_appendData_basic_Sullivan.phpt +++ b/ext/dom/tests/DOMComment_appendData_basic_Sullivan.phpt @@ -3,8 +3,6 @@ DOMComment::appendData basic functionality test --CREDITS-- Mike Sullivan #TestFest 2008 (London) ---SKIPIF-- - --FILE-- <&" - + \ No newline at end of file diff --git a/ext/dom/tests/DOMComment_replaceData_basic.phpt b/ext/dom/tests/DOMComment_replaceData_basic.phpt index 2963cb1e06..10bf677ff3 100644 --- a/ext/dom/tests/DOMComment_replaceData_basic.phpt +++ b/ext/dom/tests/DOMComment_replaceData_basic.phpt @@ -4,7 +4,7 @@ Test replacing data into a DOMComment basic test Andrew Larssen London TestFest 2008 --SKIPIF-- - + --FILE-- --FILE-- --FILE-- --FILE-- --FILE-- --FILE-- --FILE-- --FILE-- #TestFest 2008 ---SKIPIF-- - --FILE-- +--CREDITS-- +Simon Hughes +--FILE-- + + + + + c1n1 + c1n2 + + + + + c2n1 + c2n2 + + + +EOXML; + +function dumpcourse($current) { + $title = ($current->nodeType != XML_TEXT_NODE && $current->hasAttribute('title')) ? $current->getAttribute('title'):"no title"; + echo "Course: $title:";var_dump($current); + echo "~";var_dump($current->textContent); +} + +$dom = new DOMDocument(); +$dom->loadXML($xml); +$root = $dom->documentElement; + +// strip all text nodes from this tree +$children = $root->childNodes; +$len = $children->length; +for ($index = $children->length - 1; $index >=0; $index--) { + $current = $children->item($index); + if ($current->nodeType == XML_TEXT_NODE) { + $noderemoved = $root->removeChild($current); + } +} + +echo "Start cloneNode test\n"; +$first_course = $children->item(0); +$cloned_first_course_default = $first_course->cloneNode(); +$first_course->setAttribute('title', 'new title1'); + +$cloned_first_course_true = $first_course->cloneNode(true); +$first_course->setAttribute('title', 'new title2'); + +$cloned_first_course_false = $first_course->cloneNode(false); +$first_course->setAttribute('title', 'new title3'); + +$cloned_first_course_default->setAttribute('title', 'new title default'); +$cloned_first_course_true->setAttribute('title', 'new title true'); +$cloned_first_course_false->setAttribute('title', 'new title false'); + +$root->appendChild($cloned_first_course_default); +$root->appendChild($cloned_first_course_true); +$root->appendChild($cloned_first_course_false); + +$children = $root->childNodes; +for ($index = 0; $index < $children->length; $index++) { + echo "node $index\n"; + dumpcourse($children->item($index)); +} + +--EXPECTF-- +Start cloneNode test +node 0 +Course: new title3:object(DOMElement)#6 (0) { +} +~string(24) " + + c1n1 + c1n2 + + " +node 1 +Course: two:object(DOMElement)#3 (0) { +} +~string(24) " + + c2n1 + c2n2 + + " +node 2 +Course: new title default:object(DOMElement)#4 (0) { +} +~string(0) "" +node 3 +Course: new title true:object(DOMElement)#7 (0) { +} +~string(24) " + + c1n1 + c1n2 + + " +node 4 +Course: new title false:object(DOMElement)#8 (0) { +} +~string(0) "" \ No newline at end of file diff --git a/ext/dom/tests/DOMNode_issamenode_basic.phpt b/ext/dom/tests/DOMNode_issamenode_basic.phpt index e008340ead..beccb8fb62 100644 --- a/ext/dom/tests/DOMNode_issamenode_basic.phpt +++ b/ext/dom/tests/DOMNode_issamenode_basic.phpt @@ -3,8 +3,6 @@ DOMNode: isSameNode() --CREDITS-- James Lewis #TestFest 2008 ---SKIPIF-- - --FILE-- --FILE-- - + * * * This is the title * diff --git a/ext/dom/tests/DOMNode_removeChild_basic.phpt b/ext/dom/tests/DOMNode_removeChild_basic.phpt new file mode 100644 index 0000000000..8609e58be5 --- /dev/null +++ b/ext/dom/tests/DOMNode_removeChild_basic.phpt @@ -0,0 +1,113 @@ +--TEST-- +DOM removeChild : Basic Functionality +--SKIPIF-- + +--CREDITS-- +Simon Hughes +--FILE-- + + + + + c1n1 + c1n2 + + + + + c2n1 + c2n2 + + + +EOXML; + +function dumpcourse($current) { + $title = ($current->nodeType != XML_TEXT_NODE && $current->hasAttribute('title')) ? $current->getAttribute('title'):"no title"; + echo "Course: $title:";var_dump($current); + echo "~";var_dump($current->textContent); +} + +$dom = new DOMDocument(); +$dom->loadXML($xml); +$root = $dom->documentElement; + +$children = $root->childNodes; +$len = $children->length; +echo "orignal has $len nodes\n"; +for ($index = $children->length - 1; $index >=0; $index--) { + echo "node $index\n"; + $current = $children->item($index); + dumpcourse($current); + if ($current->nodeType == XML_TEXT_NODE) { + $noderemoved = $root->removeChild($current); + } +} +$children = $root->childNodes; +$len = $children->length; +echo "after text removed it now has $len nodes\n"; +for ($index = 0; $index < $children->length; $index++) { + echo "node $index\n"; + $current = $children->item($index); + dumpcourse($current); +} + +--EXPECTF-- +orignal has 5 nodes +node 4 +Course: no title:object(DOMText)#4 (0) { +} +~string(1) " +" +node 3 +Course: two:object(DOMElement)#5 (0) { +} +~string(24) " + + c2n1 + c2n2 + + " +node 2 +Course: no title:object(DOMText)#6 (0) { +} +~string(2) " + " +node 1 +Course: one:object(DOMElement)#4 (0) { +} +~string(24) " + + c1n1 + c1n2 + + " +node 0 +Course: no title:object(DOMText)#5 (0) { +} +~string(2) " + " +after text removed it now has 2 nodes +node 0 +Course: one:object(DOMElement)#3 (0) { +} +~string(24) " + + c1n1 + c1n2 + + " +node 1 +Course: two:object(DOMElement)#4 (0) { +} +~string(24) " + + c2n1 + c2n2 + + " \ No newline at end of file diff --git a/ext/dom/tests/DOMText_appendData_basic.phpt b/ext/dom/tests/DOMText_appendData_basic.phpt index 72d0d6ca94..6a28a9ae45 100644 --- a/ext/dom/tests/DOMText_appendData_basic.phpt +++ b/ext/dom/tests/DOMText_appendData_basic.phpt @@ -3,8 +3,6 @@ DOMText::appendData basic functionality test --CREDITS-- Mike Sullivan #TestFest 2008 (London) ---SKIPIF-- - --FILE-- <&" -data><&" +data><&" \ No newline at end of file diff --git a/ext/dom/tests/bug42082.phpt b/ext/dom/tests/bug42082.phpt index c57d312e1b..86f32dd8d9 100644 --- a/ext/dom/tests/bug42082.phpt +++ b/ext/dom/tests/bug42082.phpt @@ -1,7 +1,5 @@ --TEST-- Bug #42082 (NodeList length zero should be empty) ---SKIPIF-- - --FILE--