summaryrefslogtreecommitdiff
path: root/ext/dom/tests/dom_create_element.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'ext/dom/tests/dom_create_element.phpt')
-rw-r--r--ext/dom/tests/dom_create_element.phpt394
1 files changed, 394 insertions, 0 deletions
diff --git a/ext/dom/tests/dom_create_element.phpt b/ext/dom/tests/dom_create_element.phpt
new file mode 100644
index 0000000..3f30709
--- /dev/null
+++ b/ext/dom/tests/dom_create_element.phpt
@@ -0,0 +1,394 @@
+--TEST--
+Test 1: Creating Elements with and without Namespaces
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+
+print " 1 DOMDocument::createElement('valid')\n";
+try {
+ $dom = new domDocument;
+ $dom->createElement('valid');
+ print "valid\n";
+} catch (Exception $e) {
+ print $e->getMessage() . "\n";
+}
+
+print " 2 DOMDocument::createElement('-invalid')\n";
+try {
+ $dom = new domDocument;
+ $dom->createElement('-invalid');
+ print "valid\n";
+} catch (Exception $e) {
+ print $e->getMessage() . "\n";
+}
+
+print " 3 DOMDocument::createElement(' ')\n";
+try {
+ $dom = new domDocument;
+ $dom->createElement(' ');
+ print "valid\n";
+} catch (Exception $e) {
+ print $e->getMessage() . "\n";
+}
+
+print " 4 DOMDocument::createElement('prefix:valid')\n";
+try {
+ $dom = new domDocument;
+ $dom->createElement('prefix:valid');
+ print "valid\n";
+} catch (Exception $e) {
+ print $e->getMessage() . "\n";
+}
+
+print " 5 DOMDocument::createElementNS('http://valid.com', 'valid')\n";
+try {
+ $dom = new domDocument;
+ $dom->createElementNS('http://valid.com', 'valid');
+ print "valid\n";
+} catch (Exception $e) {
+ print $e->getMessage() . "\n";
+}
+
+print " 6 DOMDocument::createElementNS('http://valid.com', 'prefix:valid')\n";
+try {
+ $dom = new domDocument;
+ $dom->createElementNS('http://valid.com', 'prefix:valid');
+ print "valid\n";
+} catch (Exception $e) {
+ print $e->getMessage() . "\n";
+}
+
+print " 7 DOMDocument::createElementNS('http://valid.com', '-invalid')\n";
+try {
+ $dom = new domDocument;
+ $dom->createElementNS('http://valid.com', '-invalid');
+ print "valid\n";
+} catch (Exception $e) {
+ print $e->getMessage() . "\n";
+}
+
+print " 8 DOMDocument::createElementNS('http://valid.com', 'prefix:-invalid')\n";
+try {
+ $dom = new domDocument;
+ $dom->createElementNS('http://valid.com', 'prefix:-invalid');
+ print "valid\n";
+} catch (Exception $e) {
+ print $e->getMessage() . "\n";
+}
+
+print " 9 DOMDocument::createElementNS('', 'prefix:invalid')\n";
+try {
+ $dom = new domDocument;
+ $dom->createElementNS('', 'prefix:invalid');
+ print "valid\n";
+} catch (Exception $e) {
+ print $e->getMessage() . "\n";
+}
+
+print "10 DOMDocument::createElementNS('http://valid.com', 'prefix:valid:invalid')\n";
+try {
+ $dom = new domDocument;
+ $dom->createElementNS('http://valid.com', 'prefix:valid:invalid');
+ print "valid\n";
+} catch (Exception $e) {
+ print $e->getMessage() . "\n";
+}
+
+print "11 DOMDocument::createElementNS('http://valid.com', '-prefix:valid')\n";
+try {
+ $dom = new domDocument;
+ $dom->createElementNS('http://valid.com', '-prefix:valid');
+ print "valid\n";
+} catch (Exception $e) {
+ print $e->getMessage() . "\n";
+}
+
+print "12 DOMDocument::createElementNS('-', 'prefix:valid')\n";
+try {
+ $dom = new domDocument;
+ $dom->createElementNS('-', 'prefix:valid');
+ print "valid\n";
+} catch (Exception $e) {
+ print $e->getMessage() . "\n";
+}
+
+
+print "13 DOMElement::__construct('valid')\n";
+try {
+ $element = new DomElement('valid');
+ print "valid\n";
+} catch (Exception $e) {
+ print $e->getMessage() . "\n";
+}
+
+print "14 DOMElement::__construct('-invalid')\n";
+try {
+ $element = new DomElement('-invalid');
+ print "valid\n";
+} catch (Exception $e) {
+ print $e->getMessage() . "\n";
+}
+
+print "15 DOMElement::__construct(' ')\n";
+try {
+ $element = new DomElement(' ');
+ print "valid\n";
+} catch (Exception $e) {
+ print $e->getMessage() . "\n";
+}
+
+print "16 DOMElement::__construct('prefix:valid')\n";
+try {
+ $element = new DomElement('prefix:valid');
+ print "valid\n";
+} catch (Exception $e) {
+ print $e->getMessage() . "\n";
+}
+
+print "17 DOMElement::__construct('valid', '', 'http://valid.com')\n";
+try {
+ $element = new DomElement('valid', '', 'http://valid.com');
+ print "valid\n";
+} catch (Exception $e) {
+ print $e->getMessage() . "\n";
+}
+
+print "18 DOMElement::__construct('prefix:valid', '', 'http://valid.com')\n";
+try {
+ $element = new DomElement('prefix:valid', '', 'http://valid.com');
+ print "valid\n";
+} catch (Exception $e) {
+ print $e->getMessage() . "\n";
+}
+
+print "19 DOMElement::__construct('-invalid', '', 'http://valid.com')\n";
+try {
+ $element = new DomElement('-invalid', '', 'http://valid.com');
+ print "valid\n";
+} catch (Exception $e) {
+ print $e->getMessage() . "\n";
+}
+
+print "20 DOMElement::__construct('prefix:-invalid', '', 'http://valid.com')\n";
+try {
+ $element = new DomElement('prefix:-invalid', '', 'http://valid.com');
+ print "valid\n";
+} catch (Exception $e) {
+ print $e->getMessage() . "\n";
+}
+
+print "21 DOMElement::__construct('prefix:invalid', '', '')\n";
+try {
+ $element = new DomElement('prefix:invalid', '', '');
+ print "valid\n";
+} catch (Exception $e) {
+ print $e->getMessage() . "\n";
+}
+
+print "22 DOMElement::__construct('prefix:valid:invalid', '', 'http://valid.com')\n";
+try {
+ $element = new DomElement('prefix:valid:invalid', '', 'http://valid.com');
+ print "valid\n";
+} catch (Exception $e) {
+ print $e->getMessage() . "\n";
+}
+
+print "23 DOMElement::__construct('-prefix:valid', '', 'http://valid.com')\n";
+try {
+ $element = new DomElement('-prefix:valid', '', 'http://valid.com');
+ print "valid\n";
+} catch (Exception $e) {
+ print $e->getMessage() . "\n";
+}
+
+print "24 DOMElement::__construct('prefix:valid', '', '-')\n";
+try {
+ $element = new DomElement('prefix:valid', '', '-');
+ print "valid\n";
+} catch (Exception $e) {
+ print $e->getMessage() . "\n";
+}
+
+/* the qualifiedName has a prefix and the namespaceURI is null */
+
+print "25 DOMDocument::createElementNS('', 'prefix:valid')\n";
+try {
+ $dom = new domDocument;
+ $dom->createElementNS('', 'prefix:valid');
+ print "valid\n";
+} catch (Exception $e) {
+ print $e->getMessage() . "\n";
+}
+
+/* the qualifiedName has a prefix that is "xml" and the namespaceURI
+ is different from "http://www.w3.org/XML/1998/namespace" [XML Namespaces] */
+
+print "26 DOMDocument::createElementNS('http://wrong.namespaceURI.com', 'xml:valid')\n";
+try {
+ $dom = new domDocument;
+ $dom->createElementNS('http://wrong.namespaceURI.com', 'xml:valid');
+ print "valid\n";
+} catch (Exception $e) {
+ print $e->getMessage() . "\n";
+}
+
+print "27 DOMElement::__construct('xml:valid', '', 'http://wrong.namespaceURI.com')\n";
+try {
+ $element = new DomElement('xml:valid', '', 'http://wrong.namespaceURI.com');
+ print "valid\n";
+} catch (Exception $e) {
+ print $e->getMessage() . "\n";
+}
+
+/* This is okay because we reuse the xml namespace from the document */
+print "28 DOMDocument::createElementNS('http://www.w3.org/XML/1998/namespace', 'xml:valid')\n";
+try {
+ $dom = new domDocument;
+ $dom->createElementNS('http://www.w3.org/XML/1998/namespace', 'xml:valid');
+ print "valid\n";
+} catch (Exception $e) {
+ print $e->getMessage() . "\n";
+}
+
+/* This isn't because the xml namespace isn't there and we can't create it */
+print "29 DOMElement::__construct('xml:valid', '', 'http://www.w3.org/XML/1998/namespace')\n";
+try {
+ $element = new DomElement('xml:valid', '', 'http://www.w3.org/XML/1998/namespace');
+ print "valid\n";
+} catch (Exception $e) {
+ print $e->getMessage() . "\n";
+}
+
+
+/* the qualifiedName or its prefix is "xmlns" and the namespaceURI is
+ different from "http://www.w3.org/2000/xmlns/" */
+
+print "30 DOMDocument::createElementNS('http://wrong.namespaceURI.com', 'xmlns:valid')\n";
+try {
+ $dom = new domDocument;
+ $dom->createElementNS('http://wrong.namespaceURI.com', 'xmlns:valid');
+ print "valid\n";
+} catch (Exception $e) {
+ print $e->getMessage() . "\n";
+}
+
+print "31 DOMElement::__construct('xmlns:valid', '', 'http://wrong.namespaceURI.com')\n";
+try {
+ $element = new DomElement('xmlns:valid', '', 'http://wrong.namespaceURI.com');
+ print "valid\n";
+} catch (Exception $e) {
+ print $e->getMessage() . "\n";
+}
+
+print "32 DOMDocument::createElementNS('http://www.w3.org/2000/xmlns/', 'xmlns:valid')\n";
+try {
+ $dom = new domDocument;
+ $dom->createElementNS('http://www.w3.org/2000/xmlns/', 'xmlns:valid');
+ print "valid\n";
+} catch (Exception $e) {
+ print $e->getMessage() . "\n";
+}
+
+print "33 DOMElement::__construct('xmlns:valid', '', 'http://www.w3.org/2000/xmlns/')\n";
+try {
+ $element = new DomElement('xmlns:valid', '', 'http://www.w3.org/2000/xmlns/');
+ print "valid\n";
+} catch (Exception $e) {
+ print $e->getMessage() . "\n";
+}
+
+/* the namespaceURI is "http://www.w3.org/2000/xmlns/" and neither the
+ qualifiedName nor its prefix is "xmlns". */
+
+print "34 DOMDocument::createElementNS('http://www.w3.org/2000/xmlns/', 'wrongprefix:valid')\n";
+try {
+ $dom = new domDocument;
+ $dom->createElementNS('http://www.w3.org/2000/xmlns/', 'wrongprefix:valid');
+ print "valid\n";
+} catch (Exception $e) {
+ print $e->getMessage() . "\n";
+}
+
+print "35 DOMElement::__construct('wrongprefix:valid', '', 'http://www.w3.org/2000/xmlns/')\n";
+try {
+ $element = new DomElement('wrongprefix:valid', '', 'http://www.w3.org/2000/xmlns/');
+ print "valid\n";
+} catch (Exception $e) {
+ print $e->getMessage() . "\n";
+}
+
+
+
+?>
+--EXPECT--
+ 1 DOMDocument::createElement('valid')
+valid
+ 2 DOMDocument::createElement('-invalid')
+Invalid Character Error
+ 3 DOMDocument::createElement(' ')
+Invalid Character Error
+ 4 DOMDocument::createElement('prefix:valid')
+valid
+ 5 DOMDocument::createElementNS('http://valid.com', 'valid')
+valid
+ 6 DOMDocument::createElementNS('http://valid.com', 'prefix:valid')
+valid
+ 7 DOMDocument::createElementNS('http://valid.com', '-invalid')
+Namespace Error
+ 8 DOMDocument::createElementNS('http://valid.com', 'prefix:-invalid')
+Namespace Error
+ 9 DOMDocument::createElementNS('', 'prefix:invalid')
+Namespace Error
+10 DOMDocument::createElementNS('http://valid.com', 'prefix:valid:invalid')
+Namespace Error
+11 DOMDocument::createElementNS('http://valid.com', '-prefix:valid')
+Namespace Error
+12 DOMDocument::createElementNS('-', 'prefix:valid')
+valid
+13 DOMElement::__construct('valid')
+valid
+14 DOMElement::__construct('-invalid')
+Invalid Character Error
+15 DOMElement::__construct(' ')
+Invalid Character Error
+16 DOMElement::__construct('prefix:valid')
+Namespace Error
+17 DOMElement::__construct('valid', '', 'http://valid.com')
+valid
+18 DOMElement::__construct('prefix:valid', '', 'http://valid.com')
+valid
+19 DOMElement::__construct('-invalid', '', 'http://valid.com')
+Invalid Character Error
+20 DOMElement::__construct('prefix:-invalid', '', 'http://valid.com')
+Namespace Error
+21 DOMElement::__construct('prefix:invalid', '', '')
+Namespace Error
+22 DOMElement::__construct('prefix:valid:invalid', '', 'http://valid.com')
+Namespace Error
+23 DOMElement::__construct('-prefix:valid', '', 'http://valid.com')
+Invalid Character Error
+24 DOMElement::__construct('prefix:valid', '', '-')
+valid
+25 DOMDocument::createElementNS('', 'prefix:valid')
+Namespace Error
+26 DOMDocument::createElementNS('http://wrong.namespaceURI.com', 'xml:valid')
+Namespace Error
+27 DOMElement::__construct('xml:valid', '', 'http://wrong.namespaceURI.com')
+Namespace Error
+28 DOMDocument::createElementNS('http://www.w3.org/XML/1998/namespace', 'xml:valid')
+valid
+29 DOMElement::__construct('xml:valid', '', 'http://www.w3.org/XML/1998/namespace')
+Namespace Error
+30 DOMDocument::createElementNS('http://wrong.namespaceURI.com', 'xmlns:valid')
+Namespace Error
+31 DOMElement::__construct('xmlns:valid', '', 'http://wrong.namespaceURI.com')
+Namespace Error
+32 DOMDocument::createElementNS('http://www.w3.org/2000/xmlns/', 'xmlns:valid')
+valid
+33 DOMElement::__construct('xmlns:valid', '', 'http://www.w3.org/2000/xmlns/')
+valid
+34 DOMDocument::createElementNS('http://www.w3.org/2000/xmlns/', 'wrongprefix:valid')
+Namespace Error
+35 DOMElement::__construct('wrongprefix:valid', '', 'http://www.w3.org/2000/xmlns/')
+Namespace Error