Skip to content

Commit 9bf80bc

Browse files
committed
Includes 5 new phpTests to check that the error message DOM_NOT_FOUND is properly raised by the method DOMNode::insertBefore(newNode, [refNode]).
Each file covers a different test case DOMNode_insertBefore_error2.phpt: refNode is a sibling of the node where newNode wanted to be inserted. DOMNode_insertBefore_error3.phpt: refNode is the parent of the node where newNode wanted to be inserted. DOMNode_insertBefore_error4.phpt: refNode is a brand new node. DOMNode_insertBefore_error5.phpt: refNode is a descendant (not child) of the node where newNode wanted to be inserted. DOMNode_insertBefore_error6.phpt: refNode is the node where newNode wanted to be inserted.
1 parent 2792855 commit 9bf80bc

6 files changed

+191
-1
lines changed

ext/dom/tests/DOMDocument_validate_on_parse_variation.phpt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ require_once('skipif.inc');
1313
require_once('dom_test.inc');
1414

1515
chdir(__DIR__);
16-
$XMLStringGood = file_get_contents('note.xml');
16+
$XMLStringGood = file_get_contents(dirname(__FILE__).'/note.xml');
1717

1818
$dom = new DOMDocument;
1919
$dom->resolveExternals = TRUE;
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
--TEST--
2+
Test DOMNode::insertBefore() check the error code DOM_NOT_FOUND is raised
3+
--DESCRIPTION--
4+
DOMNode::insertBefore(newNode, [refNode])
5+
DOM_NOT_FOUND is raised if refnode is not a child
6+
This test checks the error message is raised when the refnode is a sibling
7+
--CREDITS--
8+
Antonio Diaz Ruiz <[email protected]>
9+
--INI--
10+
assert.bail=true
11+
--SKIPIF--
12+
<?php include('skipif.inc'); ?>
13+
--FILE--
14+
<?php
15+
$dom = new DOMDocument();
16+
17+
$doc = $dom->load(dirname(__FILE__) . "/book.xml", LIBXML_NOBLANKS);
18+
assert('$doc === true');
19+
20+
$parent_node = $dom->getElementsByTagName("book")->item(0);
21+
assert('!is_null($parent_node)');
22+
23+
$new_node = $dom->createElement('newnode');
24+
assert('$new_node !== false');
25+
26+
// getting a sibling as reference node to insert
27+
28+
$ref_node = $dom->getElementsByTagName("book")->item(1);
29+
30+
try {
31+
$parent_node->insertBefore($new_node, $ref_node);
32+
} catch(DOMException $e) {
33+
echo $e->getMessage();
34+
}
35+
36+
?>
37+
--EXPECT--
38+
Not Found Error
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
--TEST--
2+
Test DOMNode::insertBefore() check the error code DOM_NOT_FOUND is raised
3+
--DESCRIPTION--
4+
DOMNode::insertBefore(newNode, [refNode])
5+
DOM_NOT_FOUND is raised if refnode is not a child
6+
This test checks the error message is raised when refnode is the parent node
7+
--CREDITS--
8+
Antonio Diaz Ruiz <[email protected]>
9+
--INI--
10+
assert.bail=true
11+
--SKIPIF--
12+
<?php include('skipif.inc'); ?>
13+
--FILE--
14+
<?php
15+
$dom = new DOMDocument();
16+
17+
$doc = $dom->load(dirname(__FILE__) . "/book.xml", LIBXML_NOBLANKS);
18+
assert('$doc === true');
19+
20+
$parent_node = $dom->getElementsByTagName("book")->item(0);
21+
assert('!is_null($parent_node)');
22+
23+
$new_node = $dom->createElement('newnode');
24+
assert('$new_node !== false');
25+
26+
// getting the parent node as reference node to insert
27+
28+
$ref_node = $dom->getElementsByTagName("book")->item(0)->parentNode;
29+
assert('!is_null($ref_node)');
30+
31+
try {
32+
$parent_node->insertBefore($new_node, $ref_node);
33+
} catch(DOMException $e) {
34+
echo $e->getMessage();
35+
}
36+
37+
?>
38+
--EXPECT--
39+
Not Found Error
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
--TEST--
2+
Test DOMNode::insertBefore() check the error code DOM_NOT_FOUND is raised
3+
--DESCRIPTION--
4+
DOMNode::insertBefore(newNode, [refNode])
5+
DOM_NOT_FOUND is raised if refnode is not a child
6+
This test checks the error message is raised when the refnode is a brand new node
7+
--CREDITS--
8+
Antonio Diaz Ruiz <[email protected]>
9+
--INI--
10+
assert.bail=true
11+
--SKIPIF--
12+
<?php include('skipif.inc'); ?>
13+
--FILE--
14+
<?php
15+
$dom = new DOMDocument();
16+
17+
$doc = $dom->load(dirname(__FILE__) . "/book.xml", LIBXML_NOBLANKS);
18+
assert('$doc === true');
19+
20+
$parent_node = $dom->getElementsByTagName("book")->item(0);
21+
assert('!is_null($parent_node)');
22+
23+
$new_node = $dom->createElement('newnode');
24+
assert('$new_node !== false');
25+
26+
// could be a brand new node
27+
28+
$ref_node = $dom->createElement('newnode2');
29+
30+
try {
31+
$parent_node->insertBefore($new_node, $ref_node);
32+
} catch(DOMException $e) {
33+
echo $e->getMessage();
34+
}
35+
36+
?>
37+
--EXPECT--
38+
Not Found Error
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
--TEST--
2+
Test DOMNode::insertBefore() check the error code DOM_NOT_FOUND is raised
3+
--DESCRIPTION--
4+
DOMNode::insertBefore(newNode, [refNode])
5+
DOM_NOT_FOUND is raised if refnode is not a child
6+
This test checks the error message is raised when the refnode is a descendant but not a child
7+
--CREDITS--
8+
Antonio Diaz Ruiz <[email protected]>
9+
--INI--
10+
assert.bail=true
11+
--SKIPIF--
12+
<?php include('skipif.inc'); ?>
13+
--FILE--
14+
<?php
15+
$dom = new DOMDocument();
16+
17+
$doc = $dom->load(dirname(__FILE__) . "/book.xml", LIBXML_NOBLANKS);
18+
assert('$doc === true');
19+
20+
$parent_node = $dom->getElementsByTagName("book")->item(0);
21+
assert('!is_null($parent_node)');
22+
23+
$new_node = $dom->createElement('newnode');
24+
assert('$new_node !== false');
25+
26+
// creating a new node (descendant) and getting it as the refnode
27+
28+
$ref_node = $dom->createElement('newnode3');
29+
$parent_node->childNodes->item(0)->appendChild($ref_node);
30+
$dom->saveXML();
31+
32+
try {
33+
$parent_node->insertBefore($new_node, $ref_node);
34+
} catch(DOMException $e) {
35+
echo $e->getMessage();
36+
}
37+
38+
?>
39+
--EXPECT--
40+
Not Found Error
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
--TEST--
2+
Test DOMNode::insertBefore() check the error code DOM_NOT_FOUND is raised
3+
--DESCRIPTION--
4+
DOMNode::insertBefore(newNode, [refNode])
5+
DOM_NOT_FOUND is raised if refnode is not a child
6+
This test checks the error message is raised when the refnode is the parent
7+
--CREDITS--
8+
Antonio Diaz Ruiz <[email protected]>
9+
--INI--
10+
assert.bail=true
11+
--SKIPIF--
12+
<?php include('skipif.inc'); ?>
13+
--FILE--
14+
<?php
15+
$dom = new DOMDocument();
16+
17+
$doc = $dom->load(dirname(__FILE__) . "/book.xml", LIBXML_NOBLANKS);
18+
assert('$doc === true');
19+
20+
$parent_node = $dom->getElementsByTagName("book")->item(0);
21+
assert('!is_null($parent_node)');
22+
$ref_node = $parent_node;
23+
24+
$new_node = $dom->createElement('newnode');
25+
assert('$new_node !== false');
26+
27+
try {
28+
$parent_node->insertBefore($new_node, $ref_node);
29+
} catch(DOMException $e) {
30+
echo $e->getMessage();
31+
}
32+
33+
?>
34+
--EXPECT--
35+
Not Found Error

0 commit comments

Comments
 (0)