function XMLRPCMessagesTestCase::testAlterListMethods

Ensure that hook_xmlrpc_alter() can hide even builtin methods.

File

modules/simpletest/tests/xmlrpc.test, line 232

Class

XMLRPCMessagesTestCase

Code

protected function testAlterListMethods() {
    // Ensure xmlrpc_test_xmlrpc_alter() is disabled and retrieve regular list of methods.
    variable_set('xmlrpc_test_xmlrpc_alter', FALSE);
    $url = url(NULL, array(
        'absolute' => TRUE,
    )) . '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), 'Method list is altered by hook_xmlrpc_alter');
    $removed = reset($diff);
    $this->assertEqual($removed, 'system.methodSignature', 'Hiding builting system.methodSignature with hook_xmlrpc_alter works');
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.