Commit c6b5f180 authored by Dries's avatar Dries

- Patch #897140 by fgm: system.methodSignature returns incorrect and incomplete data.

parent d003c2af
......@@ -336,7 +336,7 @@ function xmlrpc_server_get_capabilities() {
}
/**
* Returns the method signature of a function.
* Returns one method signature for a function.
*
* This is the function mapped to the XML-RPC method system.methodSignature.
*
......@@ -348,8 +348,8 @@ function xmlrpc_server_get_capabilities() {
* Name of method to return a method signature for.
*
* @return array
* An array of types representing the method signature of the function that
* $methodname maps to.
* An array of arrays of types, each of the arrays representing one method
* signature of the function that $methodname maps to.
*/
function xmlrpc_server_method_signature($methodname) {
$xmlrpc_server = xmlrpc_server_get();
......@@ -364,7 +364,7 @@ function xmlrpc_server_method_signature($methodname) {
foreach ($xmlrpc_server->signatures[$methodname] as $type) {
$return[] = $type;
}
return $return;
return array($return);
}
/**
......
......@@ -41,6 +41,16 @@ class XMLRPCBasicTestCase extends DrupalWebTestCase {
$this->assertEqual($count, count($minimum), 'system.listMethods returned at least the minimum listing');
}
/**
* Ensure that system.methodSignature returns an array of signatures.
*/
protected function testMethodSignature() {
$url = url(NULL, array('absolute' => TRUE)) . 'xmlrpc.php';
$signature = xmlrpc($url, array('system.methodSignature' => array('system.listMethods')));
$this->assert(is_array($signature) && !empty($signature) && is_array($signature[0]),
t('system.methodSignature returns an array of signature arrays.'));
}
/**
* Ensure that XML-RPC correctly handles invalid messages when parsing.
*/
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment