]> granicus.if.org Git - php/commitdiff
add new tests. bump code coverage to more than 80%
authorNuno Lopes <nlopess@php.net>
Tue, 27 Jun 2006 22:43:26 +0000 (22:43 +0000)
committerNuno Lopes <nlopess@php.net>
Tue, 27 Jun 2006 22:43:26 +0000 (22:43 +0000)
ext/libxml/tests/001.phpt [new file with mode: 0644]
ext/libxml/tests/002.phpt [new file with mode: 0644]
ext/libxml/tests/003.phpt [new file with mode: 0644]
ext/libxml/tests/004.phpt [new file with mode: 0644]
ext/libxml/tests/test.xml [new file with mode: 0644]

diff --git a/ext/libxml/tests/001.phpt b/ext/libxml/tests/001.phpt
new file mode 100644 (file)
index 0000000..6f68cb4
--- /dev/null
@@ -0,0 +1,31 @@
+--TEST--
+libxml_use_internal_errors()
+--SKIPIF--
+<?php if (!extension_loaded('libxml')) die('skip'); ?>
+--FILE--
+<?php
+
+var_dump(libxml_use_internal_errors(false));
+var_dump(libxml_use_internal_errors(true));
+var_dump(libxml_use_internal_errors());
+var_dump(libxml_use_internal_errors(new stdclass));
+
+var_dump(libxml_get_errors());
+var_dump(libxml_get_last_error());
+
+var_dump(libxml_clear_errors());
+
+echo "Done\n";
+?>
+--EXPECTF--
+bool(false)
+bool(false)
+bool(true)
+
+Warning: libxml_use_internal_errors() expects parameter 1 to be boolean, object given in %s001.php on line 6
+NULL
+array(0) {
+}
+bool(false)
+NULL
+Done
diff --git a/ext/libxml/tests/002.phpt b/ext/libxml/tests/002.phpt
new file mode 100644 (file)
index 0000000..f803d7a
--- /dev/null
@@ -0,0 +1,87 @@
+--TEST--
+libxml_get_errors()
+--SKIPIF--
+<?php if (!extension_loaded('simplexml')) die('skip'); ?>
+--FILE--
+<?php
+
+var_dump(libxml_use_internal_errors(true));
+
+$xmlstr = <<< XML
+<?xml version='1.0' standalone='yes'?>
+    <movies>
+        <movie>
+            <titles>PHP: Behind the Parser</title>
+        </movie>
+    </movies>
+XML;
+
+$doc = simplexml_load_string($xmlstr);
+$xml = explode("\n", $xmlstr);
+
+if (!$doc) {
+       $errors = libxml_get_errors();
+
+       foreach ($errors as $error) {
+               echo display_xml_error($error, $xml);
+       }
+
+       var_dump(libxml_get_last_error());
+}
+
+
+function display_xml_error($error, $xml)
+{
+       $return  = $xml[$error->line - 1] . "\n";
+       $return .= str_repeat('-', $error->column) . "^\n";
+
+       switch ($error->level) {
+               case LIBXML_ERR_WARNING:
+                       $return .= "Warning $error->code: ";
+                       break;
+               case LIBXML_ERR_ERROR:
+                       $return .= "Error $error->code: ";
+                       break;
+               case LIBXML_ERR_FATAL:
+                       $return .= "Fatal Error $error->code: ";
+                       break;
+       }
+
+       $return .= trim($error->message) . "\n  Line: $error->line" . "\n  Column: $error->column";
+
+       if ($error->file) {
+               $return .= "\n  File: $error->file";
+       }
+
+       return "$return\n\n--------------------------------------------\n\n";
+}
+
+
+echo "Done\n";
+?>
+--EXPECTF--
+bool(false)
+            <titles>PHP: Behind the Parser</title>
+%s
+Fatal Error 76: Opening and ending tag mismatch: titles line 4 and title
+  Line: 4
+  Column: %d
+
+--------------------------------------------
+
+object(LibXMLError)#%d (6) {
+  ["level"]=>
+  int(3)
+  ["code"]=>
+  int(76)
+  ["column"]=>
+  int(%d)
+  ["message"]=>
+  string(57) "Opening and ending tag mismatch: titles line 4 and title
+"
+  ["file"]=>
+  string(0) ""
+  ["line"]=>
+  int(4)
+}
+Done
diff --git a/ext/libxml/tests/003.phpt b/ext/libxml/tests/003.phpt
new file mode 100644 (file)
index 0000000..dcf6c0b
--- /dev/null
@@ -0,0 +1,28 @@
+--TEST--
+libxml_use_internal_errors() memory leaks
+--SKIPIF--
+<?php if (!extension_loaded('simplexml')) die('skip'); ?>
+--FILE--
+<?php
+var_dump(libxml_use_internal_errors(true));
+
+$xmlstr = <<< XML
+<?xml version='1.0' standalone='yes'?>
+    <movies>
+        <movie>
+            <titles>PHP: Behind the Parser</title>
+        </movie>
+    </movies>
+XML;
+
+simplexml_load_string($xmlstr);
+
+// test memleaks here
+var_dump(libxml_use_internal_errors(false));
+
+echo "Done\n";
+?>
+--EXPECTF--
+bool(false)
+bool(true)
+Done
diff --git a/ext/libxml/tests/004.phpt b/ext/libxml/tests/004.phpt
new file mode 100644 (file)
index 0000000..f347aed
--- /dev/null
@@ -0,0 +1,57 @@
+--TEST--
+libxml_set_streams_context()
+--SKIPIF--
+<?php if (!extension_loaded('dom')) die('skip'); ?>
+--FILE--
+<?php
+
+$ctxs = array(
+       NULL,
+       'bogus',
+       123,
+       new stdclass,
+       array('a'),
+       stream_context_create(),
+       stream_context_create(array('file')),
+       stream_context_create(array('file' => array('some_opt' => 'aaa')))
+);
+
+
+foreach ($ctxs as $ctx) {
+       var_dump(libxml_set_streams_context($ctx));
+       $dom = new DOMDocument();
+       var_dump($dom->load(dirname(__FILE__).'/test.xml'));
+}
+
+echo "Done\n";
+
+?>
+--EXPECTF--
+Warning: options should have the form ["wrappername"]["optionname"] = $value in %s004.php on line 10
+NULL
+
+Warning: DOMDocument::load(): supplied argument is not a valid Stream-Context resource in %s004.php on line 18
+bool(true)
+NULL
+
+Warning: DOMDocument::load(): supplied argument is not a valid Stream-Context resource in %s004.php on line 18
+bool(true)
+NULL
+
+Warning: DOMDocument::load(): supplied argument is not a valid Stream-Context resource in %s004.php on line 18
+bool(true)
+NULL
+
+Warning: DOMDocument::load(): supplied argument is not a valid Stream-Context resource in %s004.php on line 18
+bool(true)
+NULL
+
+Warning: DOMDocument::load(): supplied argument is not a valid Stream-Context resource in %s004.php on line 18
+bool(true)
+NULL
+bool(true)
+NULL
+bool(true)
+NULL
+bool(true)
+Done
diff --git a/ext/libxml/tests/test.xml b/ext/libxml/tests/test.xml
new file mode 100644 (file)
index 0000000..fc1d328
--- /dev/null
@@ -0,0 +1,8 @@
+<library>
+       <book>
+               <title>PHP made simple</title>
+       </book>
+       <book>
+               <title>learn PHP easily</title>
+       </book>
+</library>