diff --git a/core/modules/system/lib/Drupal/lib/XmlRpc/BasicTest.php b/core/modules/system/lib/Drupal/lib/XmlRpc/BasicTest.php
new file mode 100644
index 0000000..afe7c7e
--- /dev/null
+++ b/core/modules/system/lib/Drupal/lib/XmlRpc/BasicTest.php
@@ -0,0 +1,94 @@
+<?php
+
+/**
+ * @file
+ * Definition of Drupal\system\Tests\XmlRpc\BasicTest.
+ */
+
+namespace Drupal\system\Tests\XmlRpc;
+
+use Drupal\simpletest\WebTestBase;
+
+/**
+ * Perform basic XML-RPC tests that do not require addition callbacks.
+ */
+class BasicTest extends WebTestBase {
+
+  public static function getInfo() {
+    return array(
+      'name'  => 'XML-RPC basic',
+      'description'  => 'Perform basic XML-RPC tests that do not require additional callbacks.',
+      'group' => 'XML-RPC',
+    );
+  }
+
+  /**
+   * Ensure that a basic XML-RPC call with no parameters works.
+   */
+  protected function testListMethods() {
+    global $base_url;
+
+    // Minimum list of methods that should be included.
+    $minimum = array(
+      'system.multicall',
+      'system.methodSignature',
+      'system.getCapabilities',
+      'system.listMethods',
+      'system.methodHelp',
+    );
+
+    // Invoke XML-RPC call to get list of methods.
+    $url = $base_url . '/core/xmlrpc.php';
+    $methods = xmlrpc($url, array('system.listMethods' => array()));
+
+    // Ensure that the minimum methods were found.
+    $count = 0;
+    foreach ($methods as $method) {
+      if (in_array($method, $minimum)) {
+        $count++;
+      }
+    }
+
+    $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() {
+    global $base_url;
+
+    $url = $base_url . '/core/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.
+   */
+  protected function testInvalidMessageParsing() {
+    $invalid_messages = array(
+      array(
+        'message' => xmlrpc_message(''),
+        'assertion' => t('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.'),
+      ),
+      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.'),
+      ),
+      array(
+        'message' => xmlrpc_message('<methodResponse><params><param><value><string>value</string></value></param></methodResponse>'),
+        'assertion' => t('Non-empty malformed message is rejected during parsing.'),
+      ),
+    );
+
+    foreach ($invalid_messages as $assertion) {
+      $this->assertFalse(xmlrpc_message_parse($assertion['message']), $assertion['assertion']);
+    }
+  }
+}
diff --git a/core/modules/system/lib/Drupal/lib/XmlRpc/MessagesTest.php b/core/modules/system/lib/Drupal/lib/XmlRpc/MessagesTest.php
new file mode 100644
index 0000000..4938786
--- /dev/null
+++ b/core/modules/system/lib/Drupal/lib/XmlRpc/MessagesTest.php
@@ -0,0 +1,65 @@
+<?php
+
+/**
+ * @file
+ * Definition of Drupal\system\Tests\XmlRpc\MessagesTest.
+ */
+
+namespace Drupal\system\Tests\XmlRpc;
+
+use Drupal\simpletest\WebTestBase;
+
+/**
+ * XML-RPC message and alteration tests.
+ */
+class MessagesTest extends WebTestBase {
+  public static function getInfo() {
+    return array(
+      'name'  => 'XML-RPC message and alteration',
+      'description' => 'Test large messages and method alterations.',
+      'group' => 'XML-RPC',
+    );
+  }
+
+  function setUp() {
+    parent::setUp('xmlrpc_test');
+  }
+
+  /**
+   * Make sure that XML-RPC can transfer large messages.
+   */
+  function testSizedMessages() {
+    global $base_url;
+
+    $xml_url = $base_url . '/core/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)));
+    }
+  }
+
+  /**
+   * Ensure that hook_xmlrpc_alter() can hide even builtin methods.
+   */
+  protected function testAlterListMethods() {
+    global $base_url;
+
+    // Ensure xmlrpc_test_xmlrpc_alter() is disabled and retrieve regular list of methods.
+    variable_set('xmlrpc_test_xmlrpc_alter', FALSE);
+    $url = $base_url . '/core/xmlrpc.php';
+    $methods1 = xmlrpc($url, array('system.listMethods' => array()));
+
+    // Enable the alter hook and retrieve the list of methods again.
+    variable_set('xmlrpc_test_xmlrpc_alter', TRUE);
+    $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'));
+    $removed = reset($diff);
+    $this->assertEqual($removed, 'system.methodSignature', t('Hiding builting system.methodSignature with hook_xmlrpc_alter works'));
+  }
+
+}
diff --git a/core/modules/system/tests/xmlrpc.test b/core/modules/system/lib/Drupal/lib/XmlRpc/ValidatorTest.php
similarity index 51%
rename from core/modules/system/tests/xmlrpc.test
rename to core/modules/system/lib/Drupal/lib/XmlRpc/ValidatorTest.php
index b5c07ca..538fe01 100644
--- a/core/modules/system/tests/xmlrpc.test
+++ b/core/modules/system/lib/Drupal/lib/XmlRpc/ValidatorTest.php
@@ -1,92 +1,18 @@
 <?php
 
-use Drupal\simpletest\WebTestBase;
-
 /**
- * Perform basic XML-RPC tests that do not require addition callbacks.
+ * @file
+ * Definition of Drupal\system\Tests\XmlRpc\ValidatorTest.
  */
-class XMLRPCBasicTestCase extends WebTestBase {
-
-  public static function getInfo() {
-    return array(
-      'name'  => 'XML-RPC basic',
-      'description'  => 'Perform basic XML-RPC tests that do not require additional callbacks.',
-      'group' => 'XML-RPC',
-    );
-  }
-
-  /**
-   * Ensure that a basic XML-RPC call with no parameters works.
-   */
-  protected function testListMethods() {
-    global $base_url;
-
-    // Minimum list of methods that should be included.
-    $minimum = array(
-      'system.multicall',
-      'system.methodSignature',
-      'system.getCapabilities',
-      'system.listMethods',
-      'system.methodHelp',
-    );
-
-    // Invoke XML-RPC call to get list of methods.
-    $url = $base_url . '/core/xmlrpc.php';
-    $methods = xmlrpc($url, array('system.listMethods' => array()));
-
-    // Ensure that the minimum methods were found.
-    $count = 0;
-    foreach ($methods as $method) {
-      if (in_array($method, $minimum)) {
-        $count++;
-      }
-    }
-
-    $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() {
-    global $base_url;
 
-    $url = $base_url . '/core/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.
-   */
-  protected function testInvalidMessageParsing() {
-    $invalid_messages = array(
-      array(
-        'message' => xmlrpc_message(''),
-        'assertion' => t('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.'),
-      ),
-      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.'),
-      ),
-      array(
-        'message' => xmlrpc_message('<methodResponse><params><param><value><string>value</string></value></param></methodResponse>'),
-        'assertion' => t('Non-empty malformed message is rejected during parsing.'),
-      ),
-    );
+namespace Drupal\system\Tests\XmlRpc;
 
-    foreach ($invalid_messages as $assertion) {
-      $this->assertFalse(xmlrpc_message_parse($assertion['message']), $assertion['assertion']);
-    }
-  }
-}
+use Drupal\simpletest\WebTestBase;
 
-class XMLRPCValidator1IncTestCase extends WebTestBase {
+/**
+ * XML-RPC validator1 specification tests.
+ */
+class ValidatorTest extends WebTestBase {
   public static function getInfo() {
     return array(
       'name' => 'XML-RPC validator',
@@ -102,7 +28,7 @@ class XMLRPCValidator1IncTestCase extends WebTestBase {
   /**
    * Run validator1 tests.
    */
-  function testValidator1() {
+  function testValidator() {
     global $base_url;
     $xml_url = $base_url . '/core/xmlrpc.php';
     srand();
@@ -200,55 +126,3 @@ class XMLRPCValidator1IncTestCase extends WebTestBase {
     $this->assertEqual($a_l_res, $a_r_res);
   }
 }
-
-class XMLRPCMessagesTestCase extends WebTestBase {
-  public static function getInfo() {
-    return array(
-      'name'  => 'XML-RPC message and alteration',
-      'description' => 'Test large messages and method alterations.',
-      'group' => 'XML-RPC',
-    );
-  }
-
-  function setUp() {
-    parent::setUp('xmlrpc_test');
-  }
-
-  /**
-   * Make sure that XML-RPC can transfer large messages.
-   */
-  function testSizedMessages() {
-    global $base_url;
-
-    $xml_url = $base_url . '/core/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)));
-    }
-  }
-
-  /**
-   * Ensure that hook_xmlrpc_alter() can hide even builtin methods.
-   */
-  protected function testAlterListMethods() {
-    global $base_url;
-
-    // Ensure xmlrpc_test_xmlrpc_alter() is disabled and retrieve regular list of methods.
-    variable_set('xmlrpc_test_xmlrpc_alter', FALSE);
-    $url = $base_url . '/core/xmlrpc.php';
-    $methods1 = xmlrpc($url, array('system.listMethods' => array()));
-
-    // Enable the alter hook and retrieve the list of methods again.
-    variable_set('xmlrpc_test_xmlrpc_alter', TRUE);
-    $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'));
-    $removed = reset($diff);
-    $this->assertEqual($removed, 'system.methodSignature', t('Hiding builting system.methodSignature with hook_xmlrpc_alter works'));
-  }
-
-}
