]> granicus.if.org Git - php/commitdiff
Merge tidynode changes: (pierrick)
authorJohannes Schlüter <johannes@php.net>
Mon, 25 Jan 2010 17:29:37 +0000 (17:29 +0000)
committerJohannes Schlüter <johannes@php.net>
Mon, 25 Jan 2010 17:29:37 +0000 (17:29 +0000)
r292635 - Changed tidyNode class to disallow manual node creation.
r292719 - Set the tidyNode constructor private
r292765 - Add a test for tidyNode::__construct()

NEWS
ext/tidy/php_tidy.h
ext/tidy/tests/023.phpt
ext/tidy/tests/025.phpt
ext/tidy/tests/035.phpt [new file with mode: 0644]
ext/tidy/tidy.c

diff --git a/NEWS b/NEWS
index e2a7a52c5d16dc4788e6918c6beb76ff1ce2276a..2abdb5eee875ddf7e07b3a474e48662db7d5c2ba 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -16,6 +16,7 @@ PHP                                                                        NEWS
   (David Soria Parra)
 - Changed "post_max_size" php.ini directive to allow unlimited post size by
   setting it to 0. (Rasmus)
+- Changed tidyNode class to disallow manual node creation. (Pierrick)
 
 - Removed automatic file descriptor unlocking happening on shutdown and/or 
   stream close (on all OSes). (Tony, Ilia)
index 03ddb32872625b1a07672c4435a356d4b30eb25f..90a3e095d2a2e17ab8f5b15cc611fc7b35ebae7a 100644 (file)
@@ -28,6 +28,7 @@ extern zend_module_entry tidy_module_entry;
        ZEND_NAMED_FE(name, ZEND_FN(func_name), arg_types)
 #define TIDY_NODE_METHOD(name)    PHP_FUNCTION(tnm_ ##name)
 #define TIDY_NODE_ME(name, param) TIDY_METHOD_MAP(name, tnm_ ##name, param)
+#define TIDY_NODE_PRIVATE_ME(name, param) ZEND_NAMED_ME(name, ZEND_FN(tnm_ ##name), param, ZEND_ACC_PRIVATE)
 #define TIDY_DOC_METHOD(name)     PHP_FUNCTION(tdm_ ##name)
 #define TIDY_DOC_ME(name, param)  TIDY_METHOD_MAP(name, tdm_ ##name, param)
 #define TIDY_ATTR_METHOD(name)    PHP_FUNCTION(tam_ ##name)
index e7ee4b3c0c4961d100c1fd8c7e7bb6a97e3211f7..1f7b02d56bdd50049430a3ddc573034f73e2e526 100644 (file)
@@ -6,16 +6,11 @@ tidy and tidyNode OO
 <?php
 
 //test leaks here:
-new tidyNode();
-var_dump(new tidyNode());
 new tidy();
 var_dump(new tidy());
 
 echo "-------\n";
 
-$x = new tidyNode();
-var_dump($x->isHtml());
-
 $tidy = new tidy();
 $tidy->parseString('<html><?php echo "xpto;" ?></html>');
 
@@ -30,8 +25,6 @@ var_dump(tidy_get_root($tidy)->child[0]->child[0]->hasChildren());
 
 ?>
 --EXPECT--
-object(tidyNode)#1 (0) {
-}
 object(tidy)#1 (2) {
   ["errorBuffer"]=>
   NULL
@@ -39,7 +32,6 @@ object(tidy)#1 (2) {
   NULL
 }
 -------
-bool(false)
 bool(true)
 bool(true)
 bool(false)
index a7bd544d6736e264d78f771f421e23ffb5dce1b1..631ec2e5e96099e7379e669dcf5577a147695ab1 100644 (file)
@@ -5,15 +5,6 @@ tidyNode tests
 --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());
 
@@ -34,11 +25,6 @@ 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)
diff --git a/ext/tidy/tests/035.phpt b/ext/tidy/tests/035.phpt
new file mode 100644 (file)
index 0000000..832f90f
--- /dev/null
@@ -0,0 +1,12 @@
+--TEST--
+tidyNode::__construct()
+--SKIPIF--
+<?php
+  if (!extension_loaded('tidy')) die ('skip tidy not present');
+?>
+--FILE--
+<?php
+new tidyNode;
+?>
+--EXPECTF--
+Fatal error: Call to private tidyNode::__construct() from invalid context in %s on line %d
index 64da737d663faa52f21189d511a838524f35f6cd..28982d7b19def4d075b3f4ea913a7e7a6d24aff6 100644 (file)
@@ -268,6 +268,7 @@ static TIDY_NODE_METHOD(isJste);
 static TIDY_NODE_METHOD(isAsp);
 static TIDY_NODE_METHOD(isPhp);
 static TIDY_NODE_METHOD(getParent);
+static TIDY_NODE_METHOD(__construct);
 /* }}} */
 
 ZEND_DECLARE_MODULE_GLOBALS(tidy)
@@ -443,6 +444,7 @@ static const zend_function_entry tidy_funcs_node[] = {
        TIDY_NODE_ME(isAsp, NULL)
        TIDY_NODE_ME(isPhp, NULL)
        TIDY_NODE_ME(getParent, NULL)
+       TIDY_NODE_PRIVATE_ME(__construct, NULL)
        {NULL, NULL, NULL}
 };
 
@@ -1790,6 +1792,14 @@ static TIDY_NODE_METHOD(getParent)
 }
 /* }}} */
 
+/* {{{ proto void tidyNode::__construct()
+         __constructor for tidyNode. */
+static TIDY_NODE_METHOD(__construct)
+{
+       php_error_docref(NULL TSRMLS_CC, E_ERROR, "You should not create a tidyNode manually");
+}   
+/* }}} */
+
 static void _php_tidy_register_nodetypes(INIT_FUNC_ARGS)
 {
        TIDY_NODE_CONST(ROOT, Root);