Make WordPress Core


Ignore:
Timestamp:
06/30/2020 12:41:30 AM (4 years ago)
Author:
SergeyBiryukov
Message:

Docs: Improve documentation for Ajax comment tests per the documentation standards.

See #49572.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/tests/ajax/EditComment.php

    r48217 r48220  
    1717
    1818    /**
    19      * A post with at least one comment
     19     * A post with at least one comment.
    2020     *
    2121     * @var mixed
     
    2424
    2525    /**
    26      * Set up the test fixture
     26     * Sets up the test fixture.
    2727     */
    2828    public function setUp() {
     
    3939
    4040    /**
    41      * Get comments as a privilged user (administrator)
    42      * Expects test to pass
    43      *
    44      * @return void
     41     * Gets comments as a privileged user (administrator).
     42     *
     43     * Expects test to pass.
    4544     */
    4645    public function test_as_admin() {
     
    133132
    134133    /**
     134     * Gets comments as a non-privileged user (subscriber).
     135     *
     136     * Expects test to fail.
     137     */
     138    public function test_as_subscriber() {
     139
     140        // Become a subscriber.
     141        $this->_setRole( 'subscriber' );
     142
     143        // Get a comment.
     144        $comments = get_comments(
     145            array(
     146                'post_id' => $this->_comment_post->ID,
     147            )
     148        );
     149        $comment  = array_pop( $comments );
     150
     151        // Set up a default request.
     152        $_POST['_ajax_nonce-replyto-comment'] = wp_create_nonce( 'replyto-comment' );
     153        $_POST['comment_ID']                  = $comment->comment_ID;
     154        $_POST['content']                     = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.';
     155
     156        // Make the request.
     157        $this->setExpectedException( 'WPAjaxDieStopException', '-1' );
     158        $this->_handleAjax( 'edit-comment' );
     159    }
     160
     161    /**
     162     * Gets comments with a bad nonce.
     163     *
     164     * Expects test to fail.
     165     */
     166    public function test_bad_nonce() {
     167
     168        // Become an administrator.
     169        $this->_setRole( 'administrator' );
     170
     171        // Get a comment.
     172        $comments = get_comments(
     173            array(
     174                'post_id' => $this->_comment_post->ID,
     175            )
     176        );
     177        $comment  = array_pop( $comments );
     178
     179        // Set up a default request.
     180        $_POST['_ajax_nonce-replyto-comment'] = wp_create_nonce( uniqid() );
     181        $_POST['comment_ID']                  = $comment->comment_ID;
     182        $_POST['content']                     = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.';
     183
     184        // Make the request.
     185        $this->setExpectedException( 'WPAjaxDieStopException', '-1' );
     186        $this->_handleAjax( 'get-comments' );
     187    }
     188
     189    /**
     190     * Gets comments for an invalid post.
     191     *
     192     * This should return valid XML.
     193     */
     194    public function test_invalid_comment() {
     195
     196        // Become an administrator.
     197        $this->_setRole( 'administrator' );
     198
     199        // Set up a default request.
     200        $_POST['_ajax_nonce-replyto-comment'] = wp_create_nonce( 'replyto-comment' );
     201        $_POST['comment_ID']                  = 123456789;
     202        $_POST['content']                     = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.';
     203
     204        // Make the request.
     205        $this->setExpectedException( 'WPAjaxDieStopException', '-1' );
     206        $this->_handleAjax( 'edit-comment' );
     207    }
     208
     209    /**
    135210     * @ticket 39732
    136211     */
    137212    public function test_wp_update_comment_data_is_wp_error() {
    138         // Become an administrator
    139         $this->_setRole( 'administrator' );
    140 
    141         // Get a comment
    142         $comments = get_comments(
    143             array(
    144                 'post_id' => $this->_comment_post->ID,
    145             )
    146         );
    147         $comment  = array_pop( $comments );
    148 
    149         // Set up a default request
    150         $_POST['_ajax_nonce-replyto-comment'] = wp_create_nonce( 'replyto-comment' );
    151         $_POST['comment_ID']                  = $comment->comment_ID;
    152         $_POST['content']                     = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.';
    153 
    154         // Simulate filter check error
     213        // Become an administrator.
     214        $this->_setRole( 'administrator' );
     215
     216        // Get a comment.
     217        $comments = get_comments(
     218            array(
     219                'post_id' => $this->_comment_post->ID,
     220            )
     221        );
     222        $comment  = array_pop( $comments );
     223
     224        // Set up a default request.
     225        $_POST['_ajax_nonce-replyto-comment'] = wp_create_nonce( 'replyto-comment' );
     226        $_POST['comment_ID']                  = $comment->comment_ID;
     227        $_POST['content']                     = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.';
     228
     229        // Simulate filter check error.
    155230        add_filter( 'wp_update_comment_data', array( $this, '_wp_update_comment_data_filter' ), 10, 3 );
    156231
    157         // Make the request
     232        // Make the request.
    158233        $this->setExpectedException( 'WPAjaxDieStopException', 'wp_update_comment_data filter fails for this comment.' );
    159234        $this->_handleAjax( 'edit-comment' );
     
    161236
    162237    /**
    163      * Block comments from being updated by returning WP_Error
     238     * Blocks comments from being updated by returning WP_Error.
    164239     */
    165240    public function _wp_update_comment_data_filter( $data, $comment, $commentarr ) {
    166241        return new WP_Error( 'comment_wrong', 'wp_update_comment_data filter fails for this comment.', 500 );
    167242    }
    168 
    169     /**
    170      * Get comments as a non-privileged user (subscriber)
    171      * Expects test to fail
    172      *
    173      * @return void
    174      */
    175     public function test_as_subscriber() {
    176 
    177         // Become a subscriber.
    178         $this->_setRole( 'subscriber' );
    179 
    180         // Get a comment.
    181         $comments = get_comments(
    182             array(
    183                 'post_id' => $this->_comment_post->ID,
    184             )
    185         );
    186         $comment  = array_pop( $comments );
    187 
    188         // Set up a default request.
    189         $_POST['_ajax_nonce-replyto-comment'] = wp_create_nonce( 'replyto-comment' );
    190         $_POST['comment_ID']                  = $comment->comment_ID;
    191         $_POST['content']                     = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.';
    192 
    193         // Make the request.
    194         $this->setExpectedException( 'WPAjaxDieStopException', '-1' );
    195         $this->_handleAjax( 'edit-comment' );
    196     }
    197 
    198     /**
    199      * Get comments with a bad nonce
    200      * Expects test to fail
    201      *
    202      * @return void
    203      */
    204     public function test_bad_nonce() {
    205 
    206         // Become an administrator.
    207         $this->_setRole( 'administrator' );
    208 
    209         // Get a comment.
    210         $comments = get_comments(
    211             array(
    212                 'post_id' => $this->_comment_post->ID,
    213             )
    214         );
    215         $comment  = array_pop( $comments );
    216 
    217         // Set up a default request.
    218         $_POST['_ajax_nonce-replyto-comment'] = wp_create_nonce( uniqid() );
    219         $_POST['comment_ID']                  = $comment->comment_ID;
    220         $_POST['content']                     = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.';
    221 
    222         // Make the request.
    223         $this->setExpectedException( 'WPAjaxDieStopException', '-1' );
    224         $this->_handleAjax( 'get-comments' );
    225     }
    226 
    227     /**
    228      * Get comments for an invalid post
    229      * This should return valid XML
    230      *
    231      * @return void
    232      */
    233     public function test_invalid_comment() {
    234 
    235         // Become an administrator.
    236         $this->_setRole( 'administrator' );
    237 
    238         // Set up a default request.
    239         $_POST['_ajax_nonce-replyto-comment'] = wp_create_nonce( 'replyto-comment' );
    240         $_POST['comment_ID']                  = 123456789;
    241         $_POST['content']                     = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.';
    242 
    243         // Make the request.
    244         $this->setExpectedException( 'WPAjaxDieStopException', '-1' );
    245         $this->_handleAjax( 'edit-comment' );
    246     }
    247243}
Note: See TracChangeset for help on using the changeset viewer.