]> granicus.if.org Git - php/commitdiff
mark functionality unicode safe
authorRob Richards <rrichards@php.net>
Fri, 22 Sep 2006 10:13:27 +0000 (10:13 +0000)
committerRob Richards <rrichards@php.net>
Fri, 22 Sep 2006 10:13:27 +0000 (10:13 +0000)
add test

ext/dom/element.c
ext/dom/nodelist.c
ext/dom/php_dom.c
ext/dom/tests/domelement.phpt [new file with mode: 0644]

index c0cde570105e631cc5ec642653a6c82f0f098f3e..02a53d7defe0ca4c643a2d3f089516fae53840bf 100644 (file)
@@ -58,7 +58,7 @@ zend_function_entry php_dom_element_class_functions[] = {
        {NULL, NULL, NULL}
 };
 
-/* {{{ proto void DOMElement::__construct(string name, [string value], [string uri]); */
+/* {{{ proto void DOMElement::__construct(string name, [string value], [string uri]) U */
 PHP_METHOD(domelement, __construct)
 {
 
@@ -207,7 +207,7 @@ static xmlAttrPtr dom_get_dom1_attribute(xmlNodePtr elem, xmlChar *name) {
        return xmlHasNsProp(elem, name, NULL);
 }
 
-/* {{{ proto string dom_element_get_attribute(string name);
+/* {{{ proto string dom_element_get_attribute(string name) U
 URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-666EE0F9
 Since:
 */
@@ -245,7 +245,7 @@ PHP_FUNCTION(dom_element_get_attribute)
 /* }}} end dom_element_get_attribute */
 
 
-/* {{{ proto void dom_element_set_attribute(string name, string value);
+/* {{{ proto void dom_element_set_attribute(string name, string value) U
 URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-F68F082
 Since: 
 */
@@ -290,7 +290,7 @@ PHP_FUNCTION(dom_element_set_attribute)
 /* }}} end dom_element_set_attribute */
 
 
-/* {{{ proto void dom_element_remove_attribute(string name);
+/* {{{ proto void dom_element_remove_attribute(string name) U
 URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-6D6AC0F9
 Since:
 */
@@ -334,7 +334,7 @@ PHP_FUNCTION(dom_element_remove_attribute)
 /* }}} end dom_element_remove_attribute */
 
 
-/* {{{ proto DOMAttr dom_element_get_attribute_node(string name);
+/* {{{ proto DOMAttr dom_element_get_attribute_node(string name) U
 URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-217A91B8
 Since: 
 */
@@ -363,7 +363,7 @@ PHP_FUNCTION(dom_element_get_attribute_node)
 /* }}} end dom_element_get_attribute_node */
 
 
-/* {{{ proto DOMAttr dom_element_set_attribute_node(DOMAttr newAttr);
+/* {{{ proto DOMAttr dom_element_set_attribute_node(DOMAttr newAttr) U
 URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-887236154
 Since: 
 */
@@ -426,7 +426,7 @@ PHP_FUNCTION(dom_element_set_attribute_node)
 /* }}} end dom_element_set_attribute_node */
 
 
-/* {{{ proto DOMAttr dom_element_remove_attribute_node(DOMAttr oldAttr);
+/* {{{ proto DOMAttr dom_element_remove_attribute_node(DOMAttr oldAttr) U
 URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-D589198
 Since: 
 */
@@ -464,7 +464,7 @@ PHP_FUNCTION(dom_element_remove_attribute_node)
 /* }}} end dom_element_remove_attribute_node */
 
 
-/* {{{ proto DOMNodeList dom_element_get_elements_by_tag_name(string name);
+/* {{{ proto DOMNodeList dom_element_get_elements_by_tag_name(string name) U
 URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-1938918D
 Since: 
 */
@@ -491,7 +491,7 @@ PHP_FUNCTION(dom_element_get_elements_by_tag_name)
 /* }}} end dom_element_get_elements_by_tag_name */
 
 
-/* {{{ proto string dom_element_get_attribute_ns(string namespaceURI, string localName);
+/* {{{ proto string dom_element_get_attribute_ns(string namespaceURI, string localName) U
 URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElGetAttrNS
 Since: DOM Level 2
 */
@@ -568,7 +568,7 @@ static xmlNsPtr _dom_new_reconNs(xmlDocPtr doc, xmlNodePtr tree, xmlNsPtr ns) {
        return(def);
 }
 
-/* {{{ proto void dom_element_set_attribute_ns(string namespaceURI, string qualifiedName, string value);
+/* {{{ proto void dom_element_set_attribute_ns(string namespaceURI, string qualifiedName, string value) U
 URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElSetAttrNS
 Since: DOM Level 2
 */
@@ -679,7 +679,7 @@ PHP_FUNCTION(dom_element_set_attribute_ns)
 /* }}} end dom_element_set_attribute_ns */
 
 
-/* {{{ proto void dom_element_remove_attribute_ns(string namespaceURI, string localName);
+/* {{{ proto void dom_element_remove_attribute_ns(string namespaceURI, string localName) U
 URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElRemAtNS
 Since: DOM Level 2
 */
@@ -737,7 +737,7 @@ PHP_FUNCTION(dom_element_remove_attribute_ns)
 /* }}} end dom_element_remove_attribute_ns */
 
 
-/* {{{ proto DOMAttr dom_element_get_attribute_node_ns(string namespaceURI, string localName);
+/* {{{ proto DOMAttr dom_element_get_attribute_node_ns(string namespaceURI, string localName) U
 URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElGetAtNodeNS
 Since: DOM Level 2
 */
@@ -768,7 +768,7 @@ PHP_FUNCTION(dom_element_get_attribute_node_ns)
 /* }}} end dom_element_get_attribute_node_ns */
 
 
-/* {{{ proto DOMAttr dom_element_set_attribute_node_ns(DOMAttr newAttr);
+/* {{{ proto DOMAttr dom_element_set_attribute_node_ns(DOMAttr newAttr) U
 URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElSetAtNodeNS
 Since: DOM Level 2
 */
@@ -839,7 +839,7 @@ PHP_FUNCTION(dom_element_set_attribute_node_ns)
 
 
 
-/* {{{ proto DOMNodeList dom_element_get_elements_by_tag_name_ns(string namespaceURI, string localName);
+/* {{{ proto DOMNodeList dom_element_get_elements_by_tag_name_ns(string namespaceURI, string localName) U
 URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-A6C90942
 Since: DOM Level 2
 */
@@ -868,7 +868,7 @@ PHP_FUNCTION(dom_element_get_elements_by_tag_name_ns)
 /* }}} end dom_element_get_elements_by_tag_name_ns */
 
 
-/* {{{ proto boolean dom_element_has_attribute(string name);
+/* {{{ proto boolean dom_element_has_attribute(string name) U
 URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElHasAttr
 Since: DOM Level 2
 */
@@ -897,7 +897,7 @@ PHP_FUNCTION(dom_element_has_attribute)
 /* }}} end dom_element_has_attribute */
 
 
-/* {{{ proto boolean dom_element_has_attribute_ns(string namespaceURI, string localName);
+/* {{{ proto boolean dom_element_has_attribute_ns(string namespaceURI, string localName) U
 URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElHasAttrNS
 Since: DOM Level 2
 */
@@ -953,7 +953,7 @@ static void php_set_attribute_id(xmlAttrPtr attrp, zend_bool is_id)
        }
 }
 
-/* {{{ proto void dom_element_set_id_attribute(string name, boolean isId);
+/* {{{ proto void dom_element_set_id_attribute(string name, boolean isId) U
 URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElSetIdAttr
 Since: DOM Level 3
 */
@@ -990,7 +990,7 @@ PHP_FUNCTION(dom_element_set_id_attribute)
 /* }}} end dom_element_set_id_attribute */
 
 
-/* {{{ proto void dom_element_set_id_attribute_ns(string namespaceURI, string localName, boolean isId);
+/* {{{ proto void dom_element_set_id_attribute_ns(string namespaceURI, string localName, boolean isId) U
 URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElSetIdAttrNS
 Since: DOM Level 3
 */
@@ -1027,7 +1027,7 @@ PHP_FUNCTION(dom_element_set_id_attribute_ns)
 /* }}} end dom_element_set_id_attribute_ns */
 
 
-/* {{{ proto void dom_element_set_id_attribute_node(attr idAttr, boolean isId);
+/* {{{ proto void dom_element_set_id_attribute_node(attr idAttr, boolean isId) U
 URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElSetIdAttrNode
 Since: DOM Level 3
 */
index 268879bc1655ab1954f383f78f7d3fcb67fb8270..686ef50663203a5211696ab8025be2562561f785 100644 (file)
@@ -93,7 +93,7 @@ int dom_nodelist_length_read(dom_object *obj, zval **retval TSRMLS_DC)
 /* }}} */
 
 
-/* {{{ proto DOMNode dom_nodelist_item(int index);
+/* {{{ proto DOMNode dom_nodelist_item(int index) U
 URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-844377136
 Since: 
 */
index 8242a1fd25577988418152fe18653f3740b53fc5..efe659f617d0edd00fcaf924da03bee97c2a6004 100644 (file)
@@ -414,7 +414,7 @@ void *php_dom_export_node(zval *object TSRMLS_DC)
        return nodep;   
 }
 
-/* {{{ proto somNode dom_import_simplexml(sxeobject node)
+/* {{{ proto somNode dom_import_simplexml(sxeobject node) U
    Get a simplexml_element object from dom to allow for processing */
 PHP_FUNCTION(dom_import_simplexml)
 {
diff --git a/ext/dom/tests/domelement.phpt b/ext/dom/tests/domelement.phpt
new file mode 100644 (file)
index 0000000..bc69af6
--- /dev/null
@@ -0,0 +1,114 @@
+--TEST--
+Elements: DOMElement functionality
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+require_once("dom_test.inc");
+
+$dom = new DOMDocument;
+$dom->loadXML($xmlstr);
+if(!$dom) {
+  echo "Error while parsing the document\n";
+  exit;
+}
+
+$node = $dom->documentElement;
+echo "Tag Name: ".$node->tagName."\n";
+
+
+$node->setAttribute('num', '1');
+echo "Chapter: ".$node->getAttribute('num')."\n";
+echo 'Attribute num exists?: '.($node->hasAttribute('num')?'Yes':'No')."\n";
+$node->removeAttribute('num');
+echo "Chapter: ".$node->getAttribute('num')."\n";
+echo 'Attribute num exists?: '.($node->hasAttribute('num')?'Yes':'No')."\n";
+
+echo "Language: ".$node->getAttribute('language')."\n";
+$lang = $node->getAttributeNode('language');
+$lang->nodeValue = 'en-US';
+$node->setAttributeNode($lang);
+echo "Language: ".$node->getAttribute('language')."\n";
+$node->removeAttributeNode($lang);
+echo "Language: ".$node->getAttribute('language')."\n";
+
+echo "\n-- xml:lang --\n";
+$node->setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:lang', 'en');
+echo "Language: ".$node->getAttributeNS('http://www.w3.org/XML/1998/namespace', 'lang')."\n";
+echo 'Attribute xml:lang exists?: '.($node->hasAttributeNS('http://www.w3.org/XML/1998/namespace', 'lang')?'Yes':'No')."\n";
+
+$node->removeAttributeNS('http://www.w3.org/XML/1998/namespace', 'lang');
+echo "Language: ".$node->getAttributeNS('http://www.w3.org/XML/1998/namespace', 'lang')."\n";
+echo 'Attribute xml:lang exists?: '.($node->hasAttributeNS('http://www.w3.org/XML/1998/namespace', 'lang')?'Yes':'No')."\n";
+
+$lang = $dom->createAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:lang');
+$lang->nodeValue = 'en-GB';
+$node->setAttributeNodeNS($lang);
+unset($lang);
+echo "Language: ".$node->getAttributeNS('http://www.w3.org/XML/1998/namespace', 'lang')."\n";
+$lang = $node->getAttributeNodeNS('http://www.w3.org/XML/1998/namespace', 'lang');
+echo "Language: ".$lang->value."\n";
+
+echo "\n-- Elements --\n";
+$rows = $node->getElementsByTagName('row');
+echo "Row Count: ".$rows->length."\n";
+
+$element_ns = new DOMElement('newns:myelement', 'default content', 'urn::dummyns');
+$node->appendChild($element_ns);
+$element_ns = new DOMElement('newns2:myelement', 'second default content', 'urn::dummyns');
+$node->appendChild($element_ns);
+
+$myelements = $node->getElementsByTagNameNS('urn::dummyns', 'myelement');
+$mylen = $myelements->length;
+echo "myelements Count: ".$mylen."\n";
+
+echo "\n-- IDs --\n";
+$node->setAttribute('idatt', 'n1');
+$node->setIdAttribute('idatt', TRUE);
+
+for ($x = 0; $x < $mylen; $x++) {
+       $current = $myelements->item($x);
+       $current->setAttributeNS('urn::dummyns', 'newns:idatt', 'n'.($x+2))."\n";
+       $current->setIdAttributeNS('urn::dummyns', 'idatt', TRUE);
+}
+
+echo 'Element Name: '.(($elem = $dom->getElementByID('n1'))?$elem->localName:'Not Found')."\n";
+$idatt = $node->getAttributeNode('idatt');
+$node->setIdAttributeNode($idatt, FALSE);
+echo 'Element Name: '.(($elem = $dom->getElementByID('n1'))?$elem->localName:'Not Found')."\n";
+
+echo 'Element Name: '.(($elem = $dom->getElementByID('n3'))?$elem->nodeName:'Not Found')."\n";
+for ($x = 0; $x < $mylen; $x++) {
+       $node = $myelements->item($x);
+       $node->setIdAttributeNS('urn::dummyns', 'idatt', FALSE);
+}
+echo 'Element Name: '.(($elem = $dom->getElementByID('n3'))?$elem->nodeName:'Not Found')."\n";
+?>
+--EXPECT--
+
+Tag Name: chapter
+Chapter: 1
+Attribute num exists?: Yes
+Chapter: 
+Attribute num exists?: No
+Language: en
+Language: en-US
+Language: 
+
+-- xml:lang --
+Language: en
+Attribute xml:lang exists?: Yes
+Language: 
+Attribute xml:lang exists?: No
+Language: en-GB
+Language: en-GB
+
+-- Elements --
+Row Count: 3
+myelements Count: 2
+
+-- IDs --
+Element Name: chapter
+Element Name: Not Found
+Element Name: newns2:myelement
+Element Name: Not Found