nlopess         Sat Jan 20 12:58:20 2007 UTC

  Modified files:              
    /php-src/ext/tidy   tidy.c 
    /php-src/ext/tidy/tests     024.phpt 025.phpt 026.phpt 
  Log:
  MFB: fix crash & add tests
  
http://cvs.php.net/viewvc.cgi/php-src/ext/tidy/tidy.c?r1=1.109&r2=1.110&diff_format=u
Index: php-src/ext/tidy/tidy.c
diff -u php-src/ext/tidy/tidy.c:1.109 php-src/ext/tidy/tidy.c:1.110
--- php-src/ext/tidy/tidy.c:1.109       Sat Jan 20 12:27:55 2007
+++ php-src/ext/tidy/tidy.c     Sat Jan 20 12:58:20 2007
@@ -16,7 +16,7 @@
   +----------------------------------------------------------------------+
 */
 
-/* $Id: tidy.c,v 1.109 2007/01/20 12:27:55 nlopess Exp $ */
+/* $Id: tidy.c,v 1.110 2007/01/20 12:58:20 nlopess Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -729,14 +729,22 @@
                case IS_STRING:
                        obj = (PHPTidyObj *)zend_object_store_get_object(in 
TSRMLS_CC);
                        tidyBufInit(&buf);
-                       tidyNodeGetText(obj->ptdoc->doc, obj->node, &buf);
-                       ZVAL_STRINGL(out, (char *) buf.bp, buf.size, 0);
+                       if (obj->ptdoc) {
+                               tidyNodeGetText(obj->ptdoc->doc, obj->node, 
&buf);
+                               ZVAL_STRINGL(out, (char *) buf.bp, buf.size-1, 
0);
+                       } else {
+                               ZVAL_EMPTY_STRING(out);
+                       }
                        break;
 
                case IS_UNICODE:
                        obj = (PHPTidyObj *)zend_object_store_get_object(in 
TSRMLS_CC);
-                       tidyNodeGetText(obj->ptdoc->doc, obj->node, &buf);
-                       ZVAL_U_STRINGL(obj->converter->conv, out, (char *) 
buf.bp, buf.size, 0);
+                       if (obj->ptdoc) {
+                               tidyNodeGetText(obj->ptdoc->doc, obj->node, 
&buf);
+                               ZVAL_U_STRINGL(obj->converter->conv, out, (char 
*) buf.bp, buf.size-1, 0);
+                       } else {
+                               ZVAL_EMPTY_UNICODE(out);
+                       }
                        break;
 
                default:
@@ -1040,7 +1048,7 @@
        php_info_print_table_start();
        php_info_print_table_header(2, "Tidy support", "enabled");
        php_info_print_table_row(2, "libTidy Release", (char 
*)tidyReleaseDate());
-       php_info_print_table_row(2, "Extension Version", 
PHP_TIDY_MODULE_VERSION " ($Id: tidy.c,v 1.109 2007/01/20 12:27:55 nlopess Exp 
$)");
+       php_info_print_table_row(2, "Extension Version", 
PHP_TIDY_MODULE_VERSION " ($Id: tidy.c,v 1.110 2007/01/20 12:58:20 nlopess Exp 
$)");
        php_info_print_table_end();
 
        DISPLAY_INI_ENTRIES();
http://cvs.php.net/viewvc.cgi/php-src/ext/tidy/tests/024.phpt?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/tidy/tests/024.phpt
diff -u /dev/null php-src/ext/tidy/tests/024.phpt:1.2
--- /dev/null   Sat Jan 20 12:58:20 2007
+++ php-src/ext/tidy/tests/024.phpt     Sat Jan 20 12:58:20 2007
@@ -0,0 +1,41 @@
+--TEST--
+libtidy handling of 'new-blocklevel-tags'
+--SKIPIF--
+<?php
+if (!extension_loaded('tidy')) die('skip');
+if (strtotime(tidy_get_release()) < strtotime('20 january 2007')) die ('skip 
old libtidy');
+?>
+--FILE--
+<?php
+
+// more info at 
http://sf.net/tracker/?func=detail&atid=390963&aid=1598422&group_id=27659
+
+$contents = '
+<wps:block>
+<wps:var>
+<wps:value/>
+</wps:var>
+</wps:block>';
+
+$config = array(
+'new-blocklevel-tags' => 'wps:block,wps:var,wps:value'
+);
+
+$tidy = tidy_parse_string($contents, $config, 'utf8');
+$tidy->cleanRepair();
+
+var_dump($tidy->value);
+
+?>
+--EXPECT--
+string(117) "<html>
+<head>
+<title></title>
+</head>
+<body>
+<wps:block>
+<wps:var>
+<wps:value></wps:var>
+</wps:block>
+</body>
+</html>"
http://cvs.php.net/viewvc.cgi/php-src/ext/tidy/tests/025.phpt?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/tidy/tests/025.phpt
diff -u /dev/null php-src/ext/tidy/tests/025.phpt:1.2
--- /dev/null   Sat Jan 20 12:58:20 2007
+++ php-src/ext/tidy/tests/025.phpt     Sat Jan 20 12:58:20 2007
@@ -0,0 +1,50 @@
+--TEST--
+tidyNode tests
+--SKIPIF--
+<?php if (!extension_loaded('tidy')) die('skip'); ?>
+--FILE--
+<?php
+
+new tidyNode;
+$node = new tidyNode();
+
+var_dump($node->isPhp());
+var_dump($node->isText());
+var_dump($node->isComment());
+var_dump($node->hasSiblings());
+var_dump((string)$node);
+
+$tidy=tidy_parse_string('<% %>');
+var_dump($tidy->Root()->child[0]->isAsp());
+
+$tidy=tidy_parse_string('<# #>');
+var_dump($tidy->Root()->child[0]->isJste());
+
+$tidy=tidy_parse_string('<html><body>text</body></html>');
+var_dump($tidy->Root()->child[0]->child[1]->child[0]->isText());
+
+$tidy=tidy_parse_string('<html><body><!-- comment --></body></html>');
+$n = $tidy->Root()->child[0]->child[1]->child[0];
+var_dump($n->isComment());
+var_dump((string)$n);
+var_dump((bool)$n);
+var_dump((double)$n);
+var_dump((int)$n);
+var_dump($tidy->Root()->child[0]->child[0]->hasSiblings());
+
+?>
+--EXPECT--
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+string(0) ""
+bool(true)
+bool(true)
+bool(true)
+bool(true)
+string(16) "<!-- comment -->"
+bool(true)
+float(0)
+int(0)
+bool(true)
http://cvs.php.net/viewvc.cgi/php-src/ext/tidy/tests/026.phpt?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/tidy/tests/026.phpt
diff -u /dev/null php-src/ext/tidy/tests/026.phpt:1.2
--- /dev/null   Sat Jan 20 12:58:20 2007
+++ php-src/ext/tidy/tests/026.phpt     Sat Jan 20 12:58:20 2007
@@ -0,0 +1,24 @@
+--TEST--
+tidy.clean_output test
+--SKIPIF--
+<?php if (!extension_loaded('tidy')) die('skip'); ?>
+--INI--
+tidy.clean_output=1
+--FILE--
+<html>
+<?php
+
+echo '<p>xpto</p>';
+
+?>
+</html>
+--EXPECT--
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<html>
+<head>
+<title></title>
+</head>
+<body>
+<p>xpto</p>
+</body>
+</html>

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to