summaryrefslogtreecommitdiff
path: root/ext/dom
diff options
context:
space:
mode:
authorEric Stewart <ericstewart@php.net>2009-05-26 06:09:18 +0000
committerEric Stewart <ericstewart@php.net>2009-05-26 06:09:18 +0000
commit86fed7fac76bd152da14740fcd1e5d371cc07d30 (patch)
treebdfb1bb373da70d201e6bd3183e8b493912c77df /ext/dom
parentc3795a63e0cdf552bc17634ac9de39834c24ddef (diff)
downloadphp-git-86fed7fac76bd152da14740fcd1e5d371cc07d30.tar.gz
Add tests:
DOMComment::__construct() with constructor called twice. DOMDocumentFragment::appendXML() with unbound fragment. DOMDocumentFragment::appendXML() with unbalanced chunks. DOMDocumentFragment::__construct() called twice. DOMDocumentType: basic access to all properties. DOMDocumentType::name with invalid state. DOMDocumentType::entities with invalid state. DOMDocumentType::notations with invalid state. DOMDocumentType::publicId with invalid state. DOMDocumentType::publicId with empty value. DOMDocumentType::systemId with invalid state. DOMDocumentType::systemId with empty value. DOMDocumentType::internalSubset with invalid state.
Diffstat (limited to 'ext/dom')
-rw-r--r--ext/dom/tests/DOMComment_construct_basic_001.phpt19
-rw-r--r--ext/dom/tests/DOMDocumentFragment_appendXML_error_002.phpt19
-rw-r--r--ext/dom/tests/DOMDocumentFragment_appendXML_error_003.phpt19
-rw-r--r--ext/dom/tests/DOMDocumentFragment_construct_basic_002.phpt16
-rw-r--r--ext/dom/tests/DOMDocumentType_basic_001.phpt48
-rw-r--r--ext/dom/tests/DOMDocumentType_entities_error_001.phpt14
-rw-r--r--ext/dom/tests/DOMDocumentType_internalSubset_error_001.phpt14
-rw-r--r--ext/dom/tests/DOMDocumentType_name_error_001.phpt14
-rw-r--r--ext/dom/tests/DOMDocumentType_notations_error_001.phpt14
-rw-r--r--ext/dom/tests/DOMDocumentType_publicId_basic_001.phpt19
-rw-r--r--ext/dom/tests/DOMDocumentType_publicId_error_001.phpt14
-rw-r--r--ext/dom/tests/DOMDocumentType_systemId_basic_001.phpt19
-rw-r--r--ext/dom/tests/DOMDocumentType_systemId_error_001.phpt14
13 files changed, 243 insertions, 0 deletions
diff --git a/ext/dom/tests/DOMComment_construct_basic_001.phpt b/ext/dom/tests/DOMComment_construct_basic_001.phpt
new file mode 100644
index 0000000000..902f7bb57f
--- /dev/null
+++ b/ext/dom/tests/DOMComment_construct_basic_001.phpt
@@ -0,0 +1,19 @@
+--TEST--
+DOMComment::__construct() with constructor called twice.
+--CREDITS--
+Eric Lee Stewart <ericleestewart@gmail.com>
+# TestFest Atlanta 2009-05-25
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$dom = new DOMDocument('1.0', 'UTF-8');
+$element = $dom->appendChild(new DOMElement('root'));
+$comment = new DOMComment("This is the first comment.");
+$comment->__construct("This is the second comment.");
+$comment = $element->appendChild($comment);
+print $dom->saveXML();
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<root><!--This is the second comment.--></root>
diff --git a/ext/dom/tests/DOMDocumentFragment_appendXML_error_002.phpt b/ext/dom/tests/DOMDocumentFragment_appendXML_error_002.phpt
new file mode 100644
index 0000000000..c02c920849
--- /dev/null
+++ b/ext/dom/tests/DOMDocumentFragment_appendXML_error_002.phpt
@@ -0,0 +1,19 @@
+--TEST--
+DOMDocumentFragment::appendXML() with unbound fragment.
+--CREDITS--
+Eric Lee Stewart <ericleestewart@gmail.com>
+# TestFest Atlanta 2009-05-24
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$fragment = new DOMDocumentFragment();
+$fragment->appendXML('<bait>crankbait</bait>');
+$document->appendChild($fragment);
+?>
+--EXPECTF--
+Fatal error: Uncaught exception 'DOMException' with message 'No Modification Allowed Error' in %s:%d
+Stack trace:
+#0 %s(%d): DOMDocumentFragment->appendXML('<bait>crankbait...')
+#1 {main}
+ thrown in %s on line %d \ No newline at end of file
diff --git a/ext/dom/tests/DOMDocumentFragment_appendXML_error_003.phpt b/ext/dom/tests/DOMDocumentFragment_appendXML_error_003.phpt
new file mode 100644
index 0000000000..8735ae6ecf
--- /dev/null
+++ b/ext/dom/tests/DOMDocumentFragment_appendXML_error_003.phpt
@@ -0,0 +1,19 @@
+--TEST--
+DOMDocumentFragment::appendXML() with unbalanced chunks.
+--CREDITS--
+Eric Lee Stewart <ericleestewart@gmail.com>
+# TestFest Atlanta 2009-05-24
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$document = new DOMDocument;
+$root = $document->createElement('root');
+$document->appendChild($root);
+
+$fragment = $document->createDocumentFragment();
+@$fragment->appendXML('<foo>is<bar>great</foo>');
+$root->appendChild($fragment);
+?>
+--EXPECTF--
+Warning: DOMNode::appendChild(): Document Fragment is empty in %s on line %d \ No newline at end of file
diff --git a/ext/dom/tests/DOMDocumentFragment_construct_basic_002.phpt b/ext/dom/tests/DOMDocumentFragment_construct_basic_002.phpt
new file mode 100644
index 0000000000..0d734452e8
--- /dev/null
+++ b/ext/dom/tests/DOMDocumentFragment_construct_basic_002.phpt
@@ -0,0 +1,16 @@
+--TEST--
+DOMDocumentFragment::__construct() called twice.
+--CREDITS--
+Eric Lee Stewart <ericleestewart@gmail.com>
+# TestFest Atlanta 2009-05-24
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$fragment = new DOMDocumentFragment();
+$fragment->__construct();
+var_dump($fragment);
+?>
+--EXPECTF--
+object(DOMDocumentFragment)#%d (%d) {
+}
diff --git a/ext/dom/tests/DOMDocumentType_basic_001.phpt b/ext/dom/tests/DOMDocumentType_basic_001.phpt
new file mode 100644
index 0000000000..8991ed97d4
--- /dev/null
+++ b/ext/dom/tests/DOMDocumentType_basic_001.phpt
@@ -0,0 +1,48 @@
+--TEST--
+DOMDocumentType: basic access to all properties.
+--CREDITS--
+Eric Lee Stewart <ericleestewart@gmail.com>
+# TestFest Atlanta 2009-05-25
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+// Access publicId, systemId, name, internalSubset all with values.
+$xml = '<?xml version="1.0" encoding="UTF-8" ?>';
+$xml .= '<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML//EN" "docbookx.dtd">';
+$xml .= '<chapter>1</chapter>';
+$doc = new DOMDocument();
+$doc->loadXML($xml);
+$doctype = $doc->doctype;
+print "publicId: ".$doctype->publicId."\n";
+print "systemId: ".$doctype->systemId."\n";
+print "name: ".$doctype->name."\n";
+print "internalSubset: ".$doctype->internalSubset."\n";
+
+
+// Access entities and notations with values.
+$xml = '<?xml version="1.0" encoding="UTF-8" ?>';
+$xml .= '<!DOCTYPE img [';
+$xml .= ' <!ELEMENT img EMPTY>';
+$xml .= ' <!ATTLIST img src ENTITY #REQUIRED>';
+$xml .= ' <!ENTITY logo SYSTEM "http://www.xmlwriter.net/logo.gif" NDATA gif>';
+$xml .= ' <!NOTATION gif PUBLIC "gif viewer">';
+$xml .= ']>';
+$xml .= '<img src="logo"/>';
+$doc = new DOMDocument();
+$doc->loadXML($xml);
+$doctype = $doc->doctype;
+$entities = $doctype->entities;
+$entity = $entities->item(0);
+print 'entity: '.$entity->nodeName."\n";
+$notations = $doctype->notations;
+$notation = $notations->item(0);
+print 'notation: '.$notation->nodeName."\n";
+?>
+--EXPECT--
+publicId: -//OASIS//DTD DocBook XML//EN
+systemId: docbookx.dtd
+name: chapter
+internalSubset: <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML//EN" "docbookx.dtd">
+entity: logo
+notation: gif \ No newline at end of file
diff --git a/ext/dom/tests/DOMDocumentType_entities_error_001.phpt b/ext/dom/tests/DOMDocumentType_entities_error_001.phpt
new file mode 100644
index 0000000000..73655b06d3
--- /dev/null
+++ b/ext/dom/tests/DOMDocumentType_entities_error_001.phpt
@@ -0,0 +1,14 @@
+--TEST--
+DOMDocumentType::entities with invalid state.
+--CREDITS--
+Eric Lee Stewart <ericleestewart@gmail.com>
+# TestFest Atlanta 2009-05-25
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$doctype = new DOMDocumentType();
+$entities = $doctype->entities;
+?>
+--EXPECTF--
+Warning: main(): Invalid State Error in %s on line %d \ No newline at end of file
diff --git a/ext/dom/tests/DOMDocumentType_internalSubset_error_001.phpt b/ext/dom/tests/DOMDocumentType_internalSubset_error_001.phpt
new file mode 100644
index 0000000000..c1f7d9b4de
--- /dev/null
+++ b/ext/dom/tests/DOMDocumentType_internalSubset_error_001.phpt
@@ -0,0 +1,14 @@
+--TEST--
+DOMDocumentType::internalSubset with invalid state.
+--CREDITS--
+Eric Lee Stewart <ericleestewart@gmail.com>
+# TestFest Atlanta 2009-05-25
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$doctype = new DOMDocumentType();
+$internalSubset = $doctype->internalSubset;
+?>
+--EXPECTF--
+Warning: main(): Invalid State Error in %s on line %d \ No newline at end of file
diff --git a/ext/dom/tests/DOMDocumentType_name_error_001.phpt b/ext/dom/tests/DOMDocumentType_name_error_001.phpt
new file mode 100644
index 0000000000..d2426e88f8
--- /dev/null
+++ b/ext/dom/tests/DOMDocumentType_name_error_001.phpt
@@ -0,0 +1,14 @@
+--TEST--
+DOMDocumentType::name with invalid state.
+--CREDITS--
+Eric Lee Stewart <ericleestewart@gmail.com>
+# TestFest Atlanta 2009-05-25
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$doctype = new DOMDocumentType();
+$name = $doctype->name;
+?>
+--EXPECTF--
+Warning: main(): Invalid State Error in %s on line %d \ No newline at end of file
diff --git a/ext/dom/tests/DOMDocumentType_notations_error_001.phpt b/ext/dom/tests/DOMDocumentType_notations_error_001.phpt
new file mode 100644
index 0000000000..e4d1c3c8ee
--- /dev/null
+++ b/ext/dom/tests/DOMDocumentType_notations_error_001.phpt
@@ -0,0 +1,14 @@
+--TEST--
+DOMDocumentType::notations with invalid state.
+--CREDITS--
+Eric Lee Stewart <ericleestewart@gmail.com>
+# TestFest Atlanta 2009-05-25
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$doctype = new DOMDocumentType();
+$notations = $doctype->notations;
+?>
+--EXPECTF--
+Warning: main(): Invalid State Error in %s on line %d \ No newline at end of file
diff --git a/ext/dom/tests/DOMDocumentType_publicId_basic_001.phpt b/ext/dom/tests/DOMDocumentType_publicId_basic_001.phpt
new file mode 100644
index 0000000000..49a7eecbf3
--- /dev/null
+++ b/ext/dom/tests/DOMDocumentType_publicId_basic_001.phpt
@@ -0,0 +1,19 @@
+--TEST--
+DOMDocumentType::publicId with empty value.
+--CREDITS--
+Eric Lee Stewart <ericleestewart@gmail.com>
+# TestFest Atlanta 2009-05-25
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$xml = '<?xml version="1.0" encoding="UTF-8" ?>';
+$xml .= '<!DOCTYPE chapter SYSTEM "http://www.xmlwriter.net/logo.gif">';
+$xml .= '<chapter>1</chapter>';
+$doc = new DOMDocument();
+$doc->loadXML($xml);
+$doctype = $doc->doctype;
+var_dump($doctype->publicId);
+?>
+--EXPECT--
+string(0) "" \ No newline at end of file
diff --git a/ext/dom/tests/DOMDocumentType_publicId_error_001.phpt b/ext/dom/tests/DOMDocumentType_publicId_error_001.phpt
new file mode 100644
index 0000000000..275bb65e3e
--- /dev/null
+++ b/ext/dom/tests/DOMDocumentType_publicId_error_001.phpt
@@ -0,0 +1,14 @@
+--TEST--
+DOMDocumentType::publicId with invalid state.
+--CREDITS--
+Eric Lee Stewart <ericleestewart@gmail.com>
+# TestFest Atlanta 2009-05-25
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$doctype = new DOMDocumentType();
+$publicId = $doctype->publicId;
+?>
+--EXPECTF--
+Warning: main(): Invalid State Error in %s on line %d \ No newline at end of file
diff --git a/ext/dom/tests/DOMDocumentType_systemId_basic_001.phpt b/ext/dom/tests/DOMDocumentType_systemId_basic_001.phpt
new file mode 100644
index 0000000000..56f7ddda97
--- /dev/null
+++ b/ext/dom/tests/DOMDocumentType_systemId_basic_001.phpt
@@ -0,0 +1,19 @@
+--TEST--
+DOMDocumentType::systemId with empty value.
+--CREDITS--
+Eric Lee Stewart <ericleestewart@gmail.com>
+# TestFest Atlanta 2009-05-25
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$xml = '<?xml version="1.0" encoding="UTF-8" ?>';
+$xml .= '<!DOCTYPE chapter>';
+$xml .= '<chapter>1</chapter>';
+$doc = new DOMDocument();
+$doc->loadXML($xml);
+$doctype = $doc->doctype;
+var_dump($doctype->systemId);
+?>
+--EXPECT--
+string(0) "" \ No newline at end of file
diff --git a/ext/dom/tests/DOMDocumentType_systemId_error_001.phpt b/ext/dom/tests/DOMDocumentType_systemId_error_001.phpt
new file mode 100644
index 0000000000..a4aadd7070
--- /dev/null
+++ b/ext/dom/tests/DOMDocumentType_systemId_error_001.phpt
@@ -0,0 +1,14 @@
+--TEST--
+DOMDocumentType::systemId with invalid state.
+--CREDITS--
+Eric Lee Stewart <ericleestewart@gmail.com>
+# TestFest Atlanta 2009-05-25
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$doctype = new DOMDocumentType();
+$systemId = $doctype->systemId;
+?>
+--EXPECTF--
+Warning: main(): Invalid State Error in %s on line %d \ No newline at end of file