Make WordPress Core

Changeset 1253 in tests


Ignore:
Timestamp:
04/03/2013 06:19:54 PM (13 years ago)
Author:
kurtpayne
Message:

Update ajax autosave unit tests for 3.6

See #23928

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/ajax/Autosave.php

    r967 r1253  
    3333
    3434        /**
    35          * Test autosaving as a logged out user
    36          * @return void
    37          */
    38         public function test_nopriv_autosave() {
    39 
    40                 // Log out
    41                 wp_logout();
    42 
    43                 // Set up a default request
    44                 $_POST = array(
    45                     'post_ID'  => 1,
    46                     'autosave' => 1
    47                 );
    48 
    49                 // Make the request
    50                 try {
    51                         $this->_handleAjax( 'nopriv_autosave' );
    52                 } catch ( WPAjaxDieContinueException $e ) {
    53                         unset( $e );
    54                 }
    55 
    56                 // Get the response
    57                 $xml = simplexml_load_string( $this->_last_response, 'SimpleXMLElement', LIBXML_NOCDATA );
    58 
    59                 // Ensure everything is correct
    60                 $this->assertEquals( 1, (string) $xml->response[0]->autosave['id'] );
    61                 $this->assertEquals( 'nopriv_autosave_1', (string) $xml->response['action'] );
    62         }
    63 
    64         /**
    65          * Test as a logged out user with no post id
    66          * @return void
    67          */
    68         public function test_nopriv_no_postid() {
    69 
    70                 // Log out
    71                 wp_logout();
    72 
    73                 // Set up a request
    74                 $_POST = array(
    75                     'autosave'      => 1
    76                 );
    77 
    78                 // Make the request
    79                 $this->setExpectedException( 'WPAjaxDieStopException', '-1' );
    80                 $this->_handleAjax( 'nopriv_autosave' );
    81         }
    82 
    83         /**
    8435         * Test autosaving a post
    8536         * @return void
     
    9344                $md5 = md5( uniqid() );
    9445                $_POST = array(
    95                     'post_ID'       => $this->_post->ID,
     46                    'post_id'       => $this->_post->ID,
    9647                    'autosavenonce' => wp_create_nonce( 'autosave' ),
    9748                    'post_content'  => $this->_post->post_content . PHP_EOL . $md5,
    98                     'autosave'      => 1
     49                        'post_type'     => 'post',
     50                    'autosave'      => 1,
    9951                );
    10052
     
    12981                // Set up the $_POST request
    13082                $_POST = array(
    131                     'post_ID'       => $this->_post->ID,
     83                    'post_id'       => $this->_post->ID,
    13284                    'autosavenonce' => md5( uniqid() ),
    13385                    'autosave'      => 1
     
    150102                // Set up the $_POST request
    151103                $_POST = array(
    152                     'post_ID'       => 0,
     104                    'post_id'       => 0,
    153105                    'autosavenonce' => wp_create_nonce( 'autosave' ),
    154                     'autosave'      => 1
     106                    'autosave'      => 1,
     107                        'post_type'     => 'post'
    155108                );
    156109
     
    159112                $this->_handleAjax( 'autosave' );
    160113        }
    161 
    162         /**
    163          * Test with a locked post
    164          * @return void
    165          */
    166         public function test_locked_post() {
    167 
    168                 // Become an administrator
    169                 $this->_setRole( 'administrator' );
    170 
    171                 // Lock the post
    172                 wp_set_post_lock( $this->_post->ID );
    173 
    174                 // Become a different administrator
    175                 $this->_setRole( 'administrator' );
    176 
    177                 // Set up the $_POST request
    178                 $_POST = array(
    179                     'post_ID'       => $this->_post->ID,
    180                     'autosavenonce' => wp_create_nonce( 'autosave' ),
    181                     'autosave'      => 1
    182                 );
    183 
    184                 // Make the request
    185                 try {
    186                         $this->_handleAjax( 'autosave' );
    187                 } catch ( WPAjaxDieContinueException $e ) {
    188                         unset( $e );
    189                 }
    190 
    191                 // Get the response
    192                 $xml = simplexml_load_string( $this->_last_response, 'SimpleXMLElement', LIBXML_NOCDATA );
    193 
    194                 // Ensure everything is correct
    195                 $this->assertEquals( $this->_post->ID, (int) $xml->response[0]->autosave['id'] );
    196                 $this->assertEquals( 'autosave_' . $this->_post->ID, (string) $xml->response['action']);
    197                 $this->assertEquals( 'disable', (string) $xml->response[0]->autosave[0]->supplemental[0]->disable_autosave);
    198         }
    199 
    200 
    201         /**
    202          * Test with a browser that is about to be logged out
    203          * @return void
    204          */
    205         public function test_past_grace_period() {
    206                 global $login_grace_period;
    207                 $login_grace_period = 1;
    208 
    209                 // Become an admnistrator
    210                 $this->_setRole( 'administrator' );
    211 
    212                 // Set up the $_POST request
    213                 $_POST = array(
    214                     'post_ID'       => $this->_post->ID,
    215                     'autosavenonce' => wp_create_nonce( 'autosave' ),
    216                     'autosave'      => 1
    217                 );
    218 
    219                 // Make the request
    220                 try {
    221                         $this->_handleAjax( 'autosave' );
    222                 } catch ( WPAjaxDieContinueException $e ) {
    223                         unset( $e );
    224                 }
    225 
    226                 // Look for the warning
    227                 $this->assertRegExp( '/Your login has expired. Please open a new browser window/' , $this->_last_response );
    228         }
    229114}
Note: See TracChangeset for help on using the changeset viewer.