updated core to 7.73

This commit is contained in:
2020-09-24 17:04:08 +02:00
parent 084d28842a
commit 7d87153100
524 changed files with 25194 additions and 7745 deletions
+47 -8
View File
@@ -48,7 +48,7 @@ class XMLRPCBasicTestCase extends DrupalWebTestCase {
$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.'));
'system.methodSignature returns an array of signature arrays.');
}
/**
@@ -58,19 +58,19 @@ class XMLRPCBasicTestCase extends DrupalWebTestCase {
$invalid_messages = array(
array(
'message' => xmlrpc_message(''),
'assertion' => t('Empty message correctly rejected during parsing.'),
'assertion' => 'Empty message correctly rejected during parsing.',
),
array(
'message' => xmlrpc_message('<?xml version="1.0" encoding="ISO-8859-1"?>'),
'assertion' => t('Empty message with XML declaration correctly rejected during parsing.'),
'assertion' => 'Empty message with XML declaration correctly rejected during parsing.',
),
array(
'message' => xmlrpc_message('<?xml version="1.0"?><params><param><value><string>value</string></value></param></params>'),
'assertion' => t('Non-empty message without a valid message type is rejected during parsing.'),
'assertion' => 'Non-empty message without a valid message type is rejected during parsing.',
),
array(
'message' => xmlrpc_message('<methodResponse><params><param><value><string>value</string></value></param></methodResponse>'),
'assertion' => t('Non-empty malformed message is rejected during parsing.'),
'assertion' => 'Non-empty malformed message is rejected during parsing.',
),
);
@@ -211,13 +211,18 @@ class XMLRPCMessagesTestCase extends DrupalWebTestCase {
* Make sure that XML-RPC can transfer large messages.
*/
function testSizedMessages() {
// These tests can produce up to 128 x 160 words in the XML-RPC message
// (see xmlrpc_test_message_sized_in_kb()) with 4 tags used to represent
// each. Set a large enough tag limit to allow this to be tested.
variable_set('xmlrpc_message_maximum_tag_count', 100000);
$xml_url = url(NULL, array('absolute' => TRUE)) . 'xmlrpc.php';
$sizes = array(8, 80, 160);
foreach ($sizes as $size) {
$xml_message_l = xmlrpc_test_message_sized_in_kb($size);
$xml_message_r = xmlrpc($xml_url, array('messages.messageSizedInKB' => array($size)));
$this->assertEqual($xml_message_l, $xml_message_r, t('XML-RPC messages.messageSizedInKB of %s Kb size received', array('%s' => $size)));
$this->assertEqual($xml_message_l, $xml_message_r, format_string('XML-RPC messages.messageSizedInKB of %s Kb size received', array('%s' => $size)));
}
}
@@ -236,9 +241,43 @@ class XMLRPCMessagesTestCase extends DrupalWebTestCase {
$methods2 = xmlrpc($url, array('system.listMethods' => array()));
$diff = array_diff($methods1, $methods2);
$this->assertTrue(is_array($diff) && !empty($diff), t('Method list is altered by hook_xmlrpc_alter'));
$this->assertTrue(is_array($diff) && !empty($diff), 'Method list is altered by hook_xmlrpc_alter');
$removed = reset($diff);
$this->assertEqual($removed, 'system.methodSignature', t('Hiding builting system.methodSignature with hook_xmlrpc_alter works'));
$this->assertEqual($removed, 'system.methodSignature', 'Hiding builting system.methodSignature with hook_xmlrpc_alter works');
}
/**
* Test limits on system.multicall that can prevent brute-force attacks.
*/
function testMulticallLimit() {
$url = url(NULL, array('absolute' => TRUE)) . 'xmlrpc.php';
$multicall_args = array();
$num_method_calls = 10;
for ($i = 0; $i < $num_method_calls; $i++) {
$struct = array('i' => $i);
$multicall_args[] = array('methodName' => 'validator1.echoStructTest', 'params' => array($struct));
}
// Test limits of 1, 5, 9, 13.
for ($limit = 1; $limit < $num_method_calls + 4; $limit += 4) {
variable_set('xmlrpc_multicall_duplicate_method_limit', $limit);
$results = xmlrpc($url, array('system.multicall' => array($multicall_args)));
$this->assertEqual($num_method_calls, count($results));
for ($i = 0; $i < min($limit, $num_method_calls); $i++) {
$x = array_shift($results);
$this->assertTrue(empty($x->is_error), "Result $i is not an error");
$this->assertEqual($multicall_args[$i]['params'][0], $x);
}
for (; $i < $num_method_calls; $i++) {
$x = array_shift($results);
$this->assertFalse(empty($x->is_error), "Result $i is an error");
$this->assertEqual(-156579, $x->code);
}
}
variable_set('xmlrpc_multicall_duplicate_method_limit', -1);
$results = xmlrpc($url, array('system.multicall' => array($multicall_args)));
$this->assertEqual($num_method_calls, count($results));
foreach ($results as $i => $x) {
$this->assertTrue(empty($x->is_error), "Result $i is not an error");
}
}
}