com php-src: Fix #70029: nodeValue of DOMElement list content of children nodes: ext/dom/node.c ext/dom/tests/bug28721.phpt
ext/dom/tests/bug42082.phpt ext/dom/tests/bug69846.phpt ext/dom/tests/bug70029.phpt ext/dom/tests/dom001.phpt

From: Date: Fri, 04 Sep 2015 23:52:41 +0000
Subject: com php-src: Fix #70029: nodeValue of DOMElement list content of children nodes: ext/dom/node.c ext/dom/tests/bug28721.phpt
ext/dom/tests/bug42082.phpt ext/dom/tests/bug69846.phpt ext/dom/tests/bug70029.phpt ext/dom/tests/dom001.phpt
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-88920@lists.php.net to get a copy of this message
Commit: 25a52d98d7cb2d4f3b3636eac45c71a1ae03c760 Author: Christoph M. Becker <cmbecker69@gmx.de> Fri, 10 Jul 2015 13:42:09 +0200 Committer: Christoph M. Becker <cmb@php.net> Sat, 5 Sep 2015 01:52:41 +0200 Parents: 3be54e12d5c85150c1a325b02f33a18a93190e15 Branches: master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=25a52d98d7cb2d4f3b3636eac45c71a1ae03c760 Log: Fix #70029: nodeValue of DOMElement list content of children nodes According to the W3C DOM Core Level 3 specification DOMElement::nodeValue is supposed to yield null, but currently the DOM extension yield the result of calling xmlNodeGetContent(), what is the concatenation of the values of the children of the element. This patch fixes the non standard behavior. Bugs: https://bugs.php.net/70029 Changed paths: M ext/dom/node.c M ext/dom/tests/bug28721.phpt M ext/dom/tests/bug42082.phpt M ext/dom/tests/bug69846.phpt A ext/dom/tests/bug70029.phpt M ext/dom/tests/dom001.phpt

diff --git a/ext/dom/node.c b/ext/dom/node.c index 2f35e01..08e4332 100644 --- a/ext/dom/node.c +++ b/ext/dom/node.c @@ -297,7 +297,6 @@ int dom_node_node_value_read(dom_object *obj, zval *retval) switch (nodep->type) { case XML_ATTRIBUTE_NODE: case XML_TEXT_NODE: - case XML_ELEMENT_NODE: case XML_COMMENT_NODE: case XML_CDATA_SECTION_NODE: case XML_PI_NODE: diff --git a/ext/dom/tests/bug28721.phpt b/ext/dom/tests/bug28721.phpt index 464498e..cd55150 100644 --- a/ext/dom/tests/bug28721.phpt +++ b/ext/dom/tests/bug28721.phpt @@ -119,66 +119,65 @@ print_node_r($p); ?> --EXPECT-- - -name (value): p ( t1 X t2 xxx ) +name (value): p () parent: NULL previousSibling: NULL nextSibling: NULL name (value): #text ( t1 ) - parent: name (value): p ( t1 X t2 xxx ) + parent: name (value): p () previousSibling: NULL - nextSibling: name (value): b (X) + nextSibling: name (value): b () - name (value): b (X) - parent: name (value): p ( t1 X t2 xxx ) + name (value): b () + parent: name (value): p () previousSibling: name (value): #text ( t1 ) nextSibling: name (value): #text ( t2 ) name (value): #text (X) - parent: name (value): b (X) + parent: name (value): b () previousSibling: NULL nextSibling: NULL name (value): #text ( t2 ) - parent: name (value): p ( t1 X t2 xxx ) - previousSibling: name (value): b (X) + parent: name (value): p () + previousSibling: name (value): b () nextSibling: name (value): #text ( xxx ) name (value): #text ( xxx ) - parent: name (value): p ( t1 X t2 xxx ) + parent: name (value): p () previousSibling: name (value): #text ( t2 ) nextSibling: NULL Append t1 to p: -name (value): p (X t2 xxx t1 ) +name (value): p () parent: NULL previousSibling: NULL nextSibling: NULL - name (value): b (X) - parent: name (value): p (X t2 xxx t1 ) + name (value): b () + parent: name (value): p () previousSibling: NULL nextSibling: name (value): #text ( t2 ) name (value): #text (X) - parent: name (value): b (X) + parent: name (value): b () previousSibling: NULL nextSibling: NULL name (value): #text ( t2 ) - parent: name (value): p (X t2 xxx t1 ) - previousSibling: name (value): b (X) + parent: name (value): p () + previousSibling: name (value): b () nextSibling: name (value): #text ( xxx ) name (value): #text ( xxx ) - parent: name (value): p (X t2 xxx t1 ) + parent: name (value): p () previousSibling: name (value): #text ( t2 ) nextSibling: name (value): #text ( t1 ) name (value): #text ( t1 ) - parent: name (value): p (X t2 xxx t1 ) + parent: name (value): p () previousSibling: name (value): #text ( xxx ) nextSibling: NULL @@ -186,18 +185,18 @@ t1 == ret: bool(true) div: -name (value): div ( t3 t4 xxx ) +name (value): div () parent: NULL previousSibling: NULL nextSibling: NULL name (value): #text ( t3 ) - parent: name (value): div ( t3 t4 xxx ) + parent: name (value): div () previousSibling: NULL nextSibling: name (value): b () name (value): b () - parent: name (value): div ( t3 t4 xxx ) + parent: name (value): div () previousSibling: name (value): #text ( t3 ) nextSibling: name (value): #text ( t4 ) @@ -207,34 +206,34 @@ nextSibling: NULL nextSibling: NULL name (value): #text ( t4 ) - parent: name (value): div ( t3 t4 xxx ) + parent: name (value): div () previousSibling: name (value): b () nextSibling: name (value): #text ( xxx ) name (value): #text ( xxx ) - parent: name (value): div ( t3 t4 xxx ) + parent: name (value): div () previousSibling: name (value): #text ( t4 ) nextSibling: NULL Insert t4 before t3: -name (value): div ( t4 t3 xxx ) +name (value): div () parent: NULL previousSibling: NULL nextSibling: NULL name (value): #text ( t4 ) - parent: name (value): div ( t4 t3 xxx ) + parent: name (value): div () previousSibling: NULL nextSibling: name (value): #text ( t3 ) name (value): #text ( t3 ) - parent: name (value): div ( t4 t3 xxx ) + parent: name (value): div () previousSibling: name (value): #text ( t4 ) nextSibling: name (value): b () name (value): b () - parent: name (value): div ( t4 t3 xxx ) + parent: name (value): div () previousSibling: name (value): #text ( t3 ) nextSibling: name (value): #text ( xxx ) @@ -244,40 +243,40 @@ nextSibling: NULL nextSibling: NULL name (value): #text ( xxx ) - parent: name (value): div ( t4 t3 xxx ) + parent: name (value): div () previousSibling: name (value): b () nextSibling: NULL p: -name (value): p (X t2 xxx t1 ) +name (value): p () parent: NULL previousSibling: NULL nextSibling: NULL - name (value): b (X) - parent: name (value): p (X t2 xxx t1 ) + name (value): b () + parent: name (value): p () previousSibling: NULL nextSibling: name (value): #text ( t2 ) name (value): #text (X) - parent: name (value): b (X) + parent: name (value): b () previousSibling: NULL nextSibling: NULL name (value): #text ( t2 ) - parent: name (value): p (X t2 xxx t1 ) - previousSibling: name (value): b (X) + parent: name (value): p () + previousSibling: name (value): b () nextSibling: name (value): #text ( xxx ) name (value): #text ( xxx ) - parent: name (value): p (X t2 xxx t1 ) + parent: name (value): p () previousSibling: name (value): #text ( t2 ) nextSibling: name (value): #text ( t1 ) name (value): #text ( t1 ) - parent: name (value): p (X t2 xxx t1 ) + parent: name (value): p () previousSibling: name (value): #text ( xxx ) nextSibling: NULL @@ -291,73 +290,73 @@ nextSibling: NULL name (value): #text ( t5 ) parent: name (value): #document-fragment () previousSibling: NULL - nextSibling: name (value): i ( frob ) + nextSibling: name (value): i () - name (value): i ( frob ) + name (value): i () parent: name (value): #document-fragment () previousSibling: name (value): #text ( t5 ) nextSibling: name (value): #text ( t6 ) name (value): #text ( frob ) - parent: name (value): i ( frob ) + parent: name (value): i () previousSibling: NULL nextSibling: NULL name (value): #text ( t6 ) parent: name (value): #document-fragment () - previousSibling: name (value): i ( frob ) + previousSibling: name (value): i () nextSibling: NULL Appending fragment to p: -name (value): p (X t2 xxx t1 t5 frob t6 ) +name (value): p () parent: NULL previousSibling: NULL nextSibling: NULL - name (value): b (X) - parent: name (value): p (X t2 xxx t1 t5 frob t6 ) + name (value): b () + parent: name (value): p () previousSibling: NULL nextSibling: name (value): #text ( t2 ) name (value): #text (X) - parent: name (value): b (X) + parent: name (value): b () previousSibling: NULL nextSibling: NULL name (value): #text ( t2 ) - parent: name (value): p (X t2 xxx t1 t5 frob t6 ) - previousSibling: name (value): b (X) + parent: name (value): p () + previousSibling: name (value): b () nextSibling: name (value): #text ( xxx ) name (value): #text ( xxx ) - parent: name (value): p (X t2 xxx t1 t5 frob t6 ) + parent: name (value): p () previousSibling: name (value): #text ( t2 ) nextSibling: name (value): #text ( t1 ) name (value): #text ( t1 ) - parent: name (value): p (X t2 xxx t1 t5 frob t6 ) + parent: name (value): p () previousSibling: name (value): #text ( xxx ) nextSibling: name (value): #text ( t5 ) name (value): #text ( t5 ) - parent: name (value): p (X t2 xxx t1 t5 frob t6 ) + parent: name (value): p () previousSibling: name (value): #text ( t1 ) - nextSibling: name (value): i ( frob ) + nextSibling: name (value): i () - name (value): i ( frob ) - parent: name (value): p (X t2 xxx t1 t5 frob t6 ) + name (value): i () + parent: name (value): p () previousSibling: name (value): #text ( t5 ) nextSibling: name (value): #text ( t6 ) name (value): #text ( frob ) - parent: name (value): i ( frob ) + parent: name (value): i () previousSibling: NULL nextSibling: NULL name (value): #text ( t6 ) - parent: name (value): p (X t2 xxx t1 t5 frob t6 ) - previousSibling: name (value): i ( frob ) + parent: name (value): p () + previousSibling: name (value): i () nextSibling: NULL Fragment: @@ -369,23 +368,23 @@ nextSibling: NULL div: -name (value): div ( t4 t3 xxx ) +name (value): div () parent: NULL previousSibling: NULL nextSibling: NULL name (value): #text ( t4 ) - parent: name (value): div ( t4 t3 xxx ) + parent: name (value): div () previousSibling: NULL nextSibling: name (value): #text ( t3 ) name (value): #text ( t3 ) - parent: name (value): div ( t4 t3 xxx ) + parent: name (value): div () previousSibling: name (value): #text ( t4 ) nextSibling: name (value): b () name (value): b () - parent: name (value): div ( t4 t3 xxx ) + parent: name (value): div () previousSibling: name (value): #text ( t3 ) nextSibling: name (value): #text ( xxx ) @@ -395,30 +394,30 @@ nextSibling: NULL nextSibling: NULL name (value): #text ( xxx ) - parent: name (value): div ( t4 t3 xxx ) + parent: name (value): div () previousSibling: name (value): b () nextSibling: NULL Inserting fragment before t4 Error (2) on line 109: DOMNode::insertBefore(): Document Fragment is empty -name (value): div ( t4 t3 xxx ) +name (value): div () parent: NULL previousSibling: NULL nextSibling: NULL name (value): #text ( t4 ) - parent: name (value): div ( t4 t3 xxx ) + parent: name (value): div () previousSibling: NULL nextSibling: name (value): #text ( t3 ) name (value): #text ( t3 ) - parent: name (value): div ( t4 t3 xxx ) + parent: name (value): div () previousSibling: name (value): #text ( t4 ) nextSibling: name (value): b () name (value): b () - parent: name (value): div ( t4 t3 xxx ) + parent: name (value): div () previousSibling: name (value): #text ( t3 ) nextSibling: name (value): #text ( xxx ) @@ -428,58 +427,58 @@ nextSibling: NULL nextSibling: NULL name (value): #text ( xxx ) - parent: name (value): div ( t4 t3 xxx ) + parent: name (value): div () previousSibling: name (value): b () nextSibling: NULL p: -name (value): p (X t2 xxx t1 t5 frob t6 ) +name (value): p () parent: NULL previousSibling: NULL nextSibling: NULL - name (value): b (X) - parent: name (value): p (X t2 xxx t1 t5 frob t6 ) + name (value): b () + parent: name (value): p () previousSibling: NULL nextSibling: name (value): #text ( t2 ) name (value): #text (X) - parent: name (value): b (X) + parent: name (value): b () previousSibling: NULL nextSibling: NULL name (value): #text ( t2 ) - parent: name (value): p (X t2 xxx t1 t5 frob t6 ) - previousSibling: name (value): b (X) + parent: name (value): p () + previousSibling: name (value): b () nextSibling: name (value): #text ( xxx ) name (value): #text ( xxx ) - parent: name (value): p (X t2 xxx t1 t5 frob t6 ) + parent: name (value): p () previousSibling: name (value): #text ( t2 ) nextSibling: name (value): #text ( t1 ) name (value): #text ( t1 ) - parent: name (value): p (X t2 xxx t1 t5 frob t6 ) + parent: name (value): p () previousSibling: name (value): #text ( xxx ) nextSibling: name (value): #text ( t5 ) name (value): #text ( t5 ) - parent: name (value): p (X t2 xxx t1 t5 frob t6 ) + parent: name (value): p () previousSibling: name (value): #text ( t1 ) - nextSibling: name (value): i ( frob ) + nextSibling: name (value): i () - name (value): i ( frob ) - parent: name (value): p (X t2 xxx t1 t5 frob t6 ) + name (value): i () + parent: name (value): p () previousSibling: name (value): #text ( t5 ) nextSibling: name (value): #text ( t6 ) name (value): #text ( frob ) - parent: name (value): i ( frob ) + parent: name (value): i () previousSibling: NULL nextSibling: NULL name (value): #text ( t6 ) - parent: name (value): p (X t2 xxx t1 t5 frob t6 ) - previousSibling: name (value): i ( frob ) + parent: name (value): p () + previousSibling: name (value): i () nextSibling: NULL diff --git a/ext/dom/tests/bug42082.phpt b/ext/dom/tests/bug42082.phpt index b5fc893..98fa638 100644 --- a/ext/dom/tests/bug42082.phpt +++ b/ext/dom/tests/bug42082.phpt @@ -22,10 +22,10 @@ DOMNodeList int(0) bool(true) bool(true) -string(0) "" -bool(true) +NULL bool(true) bool(false) bool(false) +bool(false) ===DONE=== diff --git a/ext/dom/tests/bug69846.phpt b/ext/dom/tests/bug69846.phpt index 08e35cd..a667a89 100644 --- a/ext/dom/tests/bug69846.phpt +++ b/ext/dom/tests/bug69846.phpt @@ -81,11 +81,7 @@ object(DOMElement)#%d (17) { ["nodeName"]=> string(5) "form1" ["nodeValue"]=> - string(39) " - Value A - Value B - Value C - " + NULL ["nodeType"]=> int(1) ["parentNode"]=> diff --git a/ext/dom/tests/bug70029.phpt b/ext/dom/tests/bug70029.phpt new file mode 100644 index 0000000..55244c6 --- /dev/null +++ b/ext/dom/tests/bug70029.phpt @@ -0,0 +1,12 @@ +--TEST-- +Bug #70029 (nodeValue of DOMElement list content of children nodes) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php +$doc = new DOMDocument(); +$doc->loadXml('<tag><childtag>myString</childtag></tag>'); +var_dump($doc->documentElement->nodeValue); +?> +--EXPECT-- +NULL diff --git a/ext/dom/tests/dom001.phpt b/ext/dom/tests/dom001.phpt index a0c78fb..13e8fbf 100644 --- a/ext/dom/tests/dom001.phpt +++ b/ext/dom/tests/dom001.phpt @@ -108,7 +108,7 @@ Num Children: 4 Node Name: title Node Type: 1 Num Children: 1 -Node Content: Title +Node Content: Node Name: #text Node Type: 3 @@ -142,7 +142,7 @@ Num Children: 4 Node Name: title Node Type: 1 Num Children: 1 -Node Content: Title +Node Content: Node Name: #text Node Type: 3 @@ -186,7 +186,7 @@ Node Content: en Node Name: Silly Node Type: 1 Num Children: 1 -Node Content: Symphony +Node Content: <?xml version="1.0" standalone="yes"?> <!DOCTYPE chapter SYSTEM "/share/sgml/Norman_Walsh/db3xml10/db3xml10.dtd" [ @@ -214,24 +214,24 @@ Node Content: Symphony Node Name: Silly Node Type: 1 Num Children: 1 -Node Content: Symphony +Node Content: Using elem Node Name: Silly Node Type: 1 Num Children: 1 -Node Content: Symphony +Node Content: --------- Unlink Node Node Name: Silly Node Type: 1 Num Children: 1 -Node Content: Symphony +Node Content: Node Name: title Node Type: 1 Num Children: 1 -Node Content: Title +Node Content: Node Name: #text Node Type: 3
« previous php.cvs (#88920) next »