* @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU General Public License (GPL) * @package core * @since XOOPS * @author http://www.xoops.org The XOOPS Project * @author Sina Asghari (aka stranger) <*****@*****.**> * @version $Id: xmlrpc.php 10806 2010-11-20 17:09:38Z phoenyx $ */ define('XOOPS_XMLRPC', 1); include './mainfile.php'; error_reporting(0); include_once ICMS_LIBRARIES_PATH . '/xml/rpc/xmlrpctag.php'; include_once ICMS_LIBRARIES_PATH . '/xml/rpc/xmlrpcparser.php'; icms::$logger->disableLogger(); $response = new XoopsXmlRpcResponse(); $parser = new XoopsXmlRpcParser(rawurlencode($GLOBALS['HTTP_RAW_POST_DATA'])); if (!$parser->parse()) { $response->add(new XoopsXmlRpcFault(102)); } else { $module_handler = icms::handler('icms_module'); $module =& $module_handler->getByDirname('news'); if (!is_object($module)) { $response->add(new XoopsXmlRpcFault(110)); } else { $methods = explode('.', $parser->getMethodName()); switch($methods[0]) { case 'blogger':
restore_error_handler(); include_once XOOPS_ROOT_PATH . '/class/xml/rpc/xmlrpctag.php'; include_once XOOPS_ROOT_PATH . '/modules/xoonips/class/xmlrpc/xmlrpcparser.class.php'; include_once XOOPS_ROOT_PATH . '/modules/xoonips/class/xmlrpc/logic/xmlrpclogic.class.php'; include_once XOOPS_ROOT_PATH . '/modules/xoonips/class/base/logicfactory.class.php'; include_once XOOPS_ROOT_PATH . '/modules/xoonips/class/xmlrpc/xmlrpcfault.class.php'; include_once XOOPS_ROOT_PATH . '/modules/xoonips/class/xmlrpc/xmlrpcrequest.class.php'; include_once XOOPS_ROOT_PATH . '/modules/xoonips/class/xmlrpc/xmlrpcresponse.class.php'; include_once XOOPS_ROOT_PATH . '/modules/xoonips/class/xmlrpc/view/xmlrpcview.class.php'; include_once XOOPS_ROOT_PATH . '/modules/xoonips/class/xmlrpc/view/xmlrpcviewfactory.class.php'; error_reporting(E_ALL & ~E_NOTICE); ini_set('display_errors', 0); ini_set('log_errors', 1); ini_set('error_log', 'syslog'); $allow_methods = array('XooNIps.getChildIndexes', 'XooNIps.getFile', 'XooNIps.getFileMetadata', 'XooNIps.getIndex', 'XooNIps.getItem', 'XooNIps.getItemPermission', 'XooNIps.getItemtype', 'XooNIps.getItemtypes', 'XooNIps.getPreference', 'XooNIps.getRootIndex', 'XooNIps.getSimpleItems', 'XooNIps.login', 'XooNIps.logout', 'XooNIps.putItem', 'XooNIps.removeItem', 'XooNIps.searchItem', 'XooNIps.updateItem2'); $rpc_response = new XoopsXmlRpcResponse(); $parser = new XooNIpsXmlRpcParser(file_get_contents("php://input")); if (!$parser->parse()) { $rpc_response->add(new XooNIpsXmlRpcFault(102)); } else { if (!in_array($parser->getMethodName(), $allow_methods)) { $rpc_response->add(new XooNIpsXmlRpcFault(107)); } else { global $xoopsModule; $module =& $xoopsModule; $methods = explode('.', $parser->getMethodName()); if ($methods[0] == 'XooNIps') { $request = new XooNIpsXmlRpcRequest($methods[1], $parser->getParam()); $response = new XooNIpsXmlRpcResponse(); $factory =& XooNIpsXmlRpcLogicFactory::getInstance(); $logic =& $factory->create($methods[1]);
function test_getRecentPosts() { $title = '<title>Title</title>'; $hometext = '<hometext>Hometext</hometext>'; $moretext = '<moretext>Moretext</moretext>'; $categories = '<categories>10</categories>'; $text = $title . $hometext . $moretext . $categories; $params = array('', '', 'admin', 'adminadmin', $text); $response = new XoopsXmlRpcResponse(); $module = new XoopsModule(); $instance = new $this->myClass($params, $response, $module); $instance->getRecentPosts(); $msg = $response->render(); if (false !== strpos($msg, '<name>faultString</name><value>Module not found')) { $this->markTestSkipped(); } $this->markTestIncomplete(); }
function test_setTemplate() { $params = array(null, null, 'admin', 'goodpassword', null, null); $response = new XoopsXmlRpcResponse(); $module = new XoopsModule(); $instance = new $this->myClass($params, $response, $module); $result = $instance->setTemplate(); $msg = $response->render(); $expected = '<?xml version="1.0"?>' . '<methodResponse><fault><value><struct>' . '<member><name>faultCode</name><value>107</value></member>' . "<member><name>faultString</name><value>Method not supported\n</value></member>" . '</struct></value></fault></methodResponse>'; $this->assertSame($expected, $msg); $params = array(null, null, 'admin', 'WRONG_password', null, null); $response = new XoopsXmlRpcResponse(); $module = new XoopsModule(); $instance = new $this->myClass($params, $response, $module); $result = $instance->setTemplate(); $msg = $response->render(); $expected = '<?xml version="1.0"?>' . '<methodResponse><fault><value><struct>' . '<member><name>faultCode</name><value>104</value></member>' . "<member><name>faultString</name><value>User authentication failed\n</value></member>" . '</struct></value></fault></methodResponse>'; $this->assertSame($expected, $msg); }