WordPress.org

Make WordPress Core

Ticket #34336: 34336.tests.diff

File 34336.tests.diff, 1.7 KB (added by johnbillion, 6 years ago)
  • tests/phpunit/tests/xmlrpc/basic.php

     
    2525                $this->assertTrue( $this->myxmlrpcserver->login_pass_ok( 'subscriber', 'subscriber' ) );
    2626                $this->assertInstanceOf( 'WP_User', $this->myxmlrpcserver->login( 'subscriber', 'subscriber' ) );
    2727        }
     28
     29        function test_multicall_invalidates_all_calls_after_invalid_call() {
     30                $editor_id = $this->make_user_by_role( 'editor' );
     31                $post_id = self::factory()->post->create( array(
     32                        'post_author' => $editor_id,
     33                ) );
     34
     35                $method_calls = array(
     36                        // Valid login
     37                        array(
     38                                'methodName' => 'wp.editPost',
     39                                'params'     => array(
     40                                        0,
     41                                        'editor',
     42                                        'editor',
     43                                        $post_id,
     44                                        array(
     45                                                'title' => 'Title 1',
     46                                        ),
     47                                ),
     48                        ),
     49                        // *Invalid* login
     50                        array(
     51                                'methodName' => 'wp.editPost',
     52                                'params'     => array(
     53                                        0,
     54                                        'editor',
     55                                        'password',
     56                                        $post_id,
     57                                        array(
     58                                                'title' => 'Title 2',
     59                                        ),
     60                                ),
     61                        ),
     62                        // Valid login
     63                        array(
     64                                'methodName' => 'wp.editPost',
     65                                'params'     => array(
     66                                        0,
     67                                        'editor',
     68                                        'editor',
     69                                        $post_id,
     70                                        array(
     71                                                'title' => 'Title 3',
     72                                        ),
     73                                ),
     74                        ),
     75                );
     76
     77                $this->myxmlrpcserver->callbacks = $this->myxmlrpcserver->methods;
     78
     79                $result = $this->myxmlrpcserver->multiCall( $method_calls );
     80
     81                $this->assertArrayNotHasKey( 'faultCode', $result[0] );
     82                $this->assertArrayHasKey( 'faultCode', $result[1] );
     83                $this->assertArrayHasKey( 'faultCode', $result[2] );
     84
     85        }
    2886}
     87 No newline at end of file