diff options
author | Eric Stewart <ericstewart@php.net> | 2009-05-26 06:09:18 +0000 |
---|---|---|
committer | Eric Stewart <ericstewart@php.net> | 2009-05-26 06:09:18 +0000 |
commit | 86fed7fac76bd152da14740fcd1e5d371cc07d30 (patch) | |
tree | bdfb1bb373da70d201e6bd3183e8b493912c77df /ext/dom | |
parent | c3795a63e0cdf552bc17634ac9de39834c24ddef (diff) | |
download | php-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')
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 |