### Eclipse Workspace Patch 1.0
#P drupal-7
Index: modules/simpletest/tests/xmlrpc_test.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/simpletest/tests/xmlrpc_test.module,v
retrieving revision 1.1
diff -u -r1.1 xmlrpc_test.module
--- modules/simpletest/tests/xmlrpc_test.module	9 Aug 2008 12:41:22 -0000	1.1
+++ modules/simpletest/tests/xmlrpc_test.module	17 Sep 2008 15:12:17 -0000
@@ -18,7 +18,7 @@
     'ctAmpersands' => substr_count($string, '&'),
     'ctApostrophes' => substr_count($string, "'"),
     'ctQuotes' => substr_count($string, '"'),
-    );
+  );
 }
 
 function xmlrpc_test_easyStructTest($array) {
@@ -58,5 +58,32 @@
     'validator1.manyTypesTest' => 'xmlrpc_test_manyTypesTest',
     'validator1.moderateSizeArrayCheck' => 'xmlrpc_test_moderateSizeArrayCheck',
     'validator1.nestedStructTest' => 'xmlrpc_test_nestedStructTest',
-    'validator1.simpleStructReturnTest' => 'xmlrpc_test_simpleStructReturnTest');
+    'validator1.simpleStructReturnTest' => 'xmlrpc_test_simpleStructReturnTest',
+    'messages.messageSizedInKB' => 'xmlrpc_test_message_sized_in_kb',
+  );
+}
+
+/**
+ * Created a message of the desired size in KB.
+ *
+ * @param $size
+ *   Message size in KB.
+ * @return array
+ *   Generated message structure.
+ */
+function xmlrpc_test_message_sized_in_kb($size) {
+  $message = array();
+
+  $word = 'abcdefg';
+
+  // Create a ~1KB sized struct.
+  for ($i = 0 ; $i < 128; $i++) {
+    $line['word_' . $i] = $word;
+  }
+
+  for($i = 0; $i < $size; $i++) {
+    $message['line_' . $i] = $line;
+  }
+
+  return $message;
 }
Index: modules/simpletest/tests/xmlrpc.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/simpletest/tests/xmlrpc.test,v
retrieving revision 1.3
diff -u -r1.3 xmlrpc.test
--- modules/simpletest/tests/xmlrpc.test	17 Sep 2008 07:11:58 -0000	1.3
+++ modules/simpletest/tests/xmlrpc.test	17 Sep 2008 15:12:17 -0000
@@ -126,3 +126,38 @@
     $this->assertEqual($a_l_res, $a_r_res, 'multicall equals result');
   }
 }
+
+class XMLRPCMessagesTestCase extends DrupalWebTestCase {
+  /**
+   * Implementation of getInfo().
+   */
+  function getInfo() {
+    return array(
+      'name'  => t('XML-RPC message'),
+      'description' => t('Test large messages.'),
+      'group' => t('XML-RPC'),
+    );
+  }
+
+  /**
+   * Implementation of setUp().
+   */
+  function setUp() {
+    parent::setUp('xmlrpc_test');
+  }
+
+  /**
+   * Make sure that XML-RPC can transfer large messages.
+   */
+  function testSizedMessages() {
+    $sizes = array(8, 80, 160);
+    foreach ($sizes as $size) {
+      $xml_url = url(NULL, array('absolute' => TRUE)) . 'xmlrpc.php';
+
+      $xml_message_l = xmlrpc_test_message_sized_in_kb($size);
+      $xml_message_r = xmlrpc($xml_url, 'messages.messageSizedInKB', $size);
+
+      $this->assertEqual($xml_message_l, $xml_message_r, t('XML-RPC messages.messageSizedInKB of %s Kb size received', array('%s' => $size)));
+    }
+  }
+}
