From: ggiunta Date: Sat, 5 Sep 2009 15:18:25 +0000 (+0000) Subject: * xmlrpcs.inc, xmlrpcs.inc: remove code that was left for compatibility with php... X-Git-Tag: 3.0.0-beta~4 X-Git-Url: http://git.onelab.eu/?p=plcapi.git;a=commitdiff_plain;h=62545ebd3ce29c40a0be2cacf40be20082944e12 * xmlrpcs.inc, xmlrpcs.inc: remove code that was left for compatibility with php 4; use __METHOD__ constant for error messages instead of hardcoded values * xmlrpcs.inc: catch exceptions thrown during execution of invoked methods; check for $_SERVER having been disabled via php.ini and log an error if so * server.php, testsuite.php: add a new test and server method for exception catching in the server git-svn-id: https://svn.code.sf.net/p/phpxmlrpc/code/trunk/xmlrpc@55 013ecfd8-0664-425d-a759-9c98391dc3f9 --- diff --git a/test/testsuite.php b/test/testsuite.php index 6c43cb9..d2e56d4 100644 --- a/test/testsuite.php +++ b/test/testsuite.php @@ -460,6 +460,19 @@ And turned it into nylon'; } } + function testCatchExceptions() + { + global $URI; + $f = new xmlrpcmsg('examples.raiseException', array( + new xmlrpcval('whatever', 'string') + )); + $v = $this->send($f, $GLOBALS['xmlrpcerr']['server_error']); + $this->client->path = $URI.'?EXCEPTION_HANDLING=1'; + $v = $this->send($f, 1); + $this->client->path = $URI.'?EXCEPTION_HANDLING=2'; + $v = $this->send($f, $GLOBALS['xmlrpcerr']['invalid_return']); + } + function testZeroParams() { $f = new xmlrpcmsg('system.listMethods'); @@ -617,7 +630,7 @@ And turned it into nylon'; global $failed_tests; foreach(get_class_methods('LocalhostTests') as $meth) { - if(strpos($meth, 'test') === 0 && $meth != 'testHttps') + if(strpos($meth, 'test') === 0 && $meth != 'testHttps' && $meth != 'testCatchExceptions') { if (!isset($failed_tests[$meth])) $this->$meth(); @@ -1365,6 +1378,7 @@ $f = 'addTest(new LocalhostTests('testClientMulticall2')); $suite->addTest(new LocalhostTests('testClientMulticall3')); $suite->addTest(new LocalhostTests('testCatchWarnings')); + $suite->addTest(new LocalhostTests('testCatchExceptions')); $suite->addTest(new LocalhostTests('testZeroParams')); $suite->addTest(new LocalhostTests('testCodeInjectionServerSide')); $suite->addTest(new LocalhostTests('testAutoRegisteredFunction'));