示例#1
0
				include_once ICMS_LIBRARIES_PATH . '/xml/rpc/metaweblogapi.php';
				$rpc_api = new MetaWeblogApi($parser->getParam(), $response, $module);
				break;
			case 'mt':
				include_once ICMS_LIBRARIES_PATH . '/xml/rpc/movabletypeapi.php';
				$rpc_api = new MovableTypeApi($parser->getParam(), $response, $module);
				break;
			case 'xoops':
			default:
				include_once ICMS_LIBRARIES_PATH . '/xml/rpc/xoopsapi.php';
				$rpc_api = new XoopsApi($parser->getParam(), $response, $module);
				break;
		}
		$method = $methods[1];
		if (!method_exists($rpc_api, $method))
		{
			$response->add(new XoopsXmlRpcFault(107));
		} else {
			$rpc_api->$method();
		}
	}
}
$payload =& $response->render();
//$fp = fopen(ICMS_CACHE_PATH.'/xmllog.txt', 'w');
//fwrite($fp, $payload);
//fclose($fp);
header('Server: XOOPS XML-RPC Server');
header('Content-type: text/xml');
header('Content-Length: '.strlen($payload));
echo $payload;
?>
            $logic =& $factory->create($methods[1]);
            if (is_object($logic)) {
                $logic->execute($request, $response);
                if ($response->getResult()) {
                    // succeed in XooNIpsLogic
                    // create view and render
                    $factory =& XooNIpsXmlRpcViewFactory::getInstance();
                    $view =& $factory->create($methods[1], $response);
                    if (!is_object($view)) {
                        $rpc_response->add(new XooNIpsXmlRpcFault(106));
                    } else {
                        $rpc_response->add($view->render());
                    }
                } else {
                    //failed in XooNIpsLogic
                    $error = $response->getError();
                    $rpc_response->add(new XooNIpsXmlRpcFault(106, serialize($error->getAll())));
                }
            } else {
                $rpc_response->add(new XooNIpsXmlRpcFault(107));
            }
        } else {
            $rpc_response->add(new XooNIpsXmlRpcFault(107));
        }
    }
}
$payload = $rpc_response->render();
header('Server: XooNIps XML-RPC Server');
header('Content-type: text/xml');
header('Content-Length: ' . strlen($payload));
echo $payload;
示例#3
0
 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();
 }
示例#4
0
 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);
 }