WordPress.org

Make WordPress Core


Ignore:
Timestamp:
10/21/2015 03:17:36 AM (6 years ago)
Author:
wonderboymusic
Message:

AJAX UNIT TESTS: Have you ever wondered why these take 600 forevers to run? They all eventually call do_action( 'admin_init' ), which has _maybe_update_core, _maybe_update_plugins, and _maybe_update_themes hooked to it. REMOVE THEM, and AJAX unit tests run like the wind. Tests_Ajax_Response is still slow.

See #30017, #33968.

File:
1 edited

Legend:

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

    r35242 r35311  
    2020     * @var array
    2121     */
    22     protected $_comments = array();
    23 
    24     /**
    25      * Set up the test fixture
    26      */
    27     public function setUp() {
    28         parent::setUp();
    29         $post_id = self::factory()->post->create();
    30         $this->_comments = self::factory()->comment->create_post_comments( $post_id, 15 );
    31         $this->_comments = array_map( 'get_comment', $this->_comments );
     22    protected static $comments = array();
     23
     24    protected static $admin_id = 0;
     25    protected static $editor_id = 0;
     26    protected static $post;
     27    protected static $post_id;
     28    protected static $user_ids = array();
     29
     30    public static function wpSetUpBeforeClass( $factory ) {
     31        self::$user_ids[] = self::$admin_id = $factory->user->create( array( 'role' => 'administrator' ) );
     32        self::$user_ids[] = self::$editor_id = $factory->user->create( array( 'role' => 'editor' ) );
     33
     34        self::$post_id = $factory->post->create();
     35        self::$post = get_post( self::$post_id );
     36
     37        $comment_ids = $factory->comment->create_post_comments( self::$post_id, 8 );
     38        self::$comments = array_map( 'get_comment', $comment_ids );
     39    }
     40
     41    public static function wpTearDownAfterClass() {
     42        foreach ( self::$user_ids as $user_id ) {
     43            self::delete_user( $user_id );
     44        }
     45
     46        wp_delete_post( self::$post_id, true );
     47
     48        foreach ( self::$comments as $c ) {
     49            wp_delete_comment( $c->ID, true );
     50        }
    3251    }
    3352
     
    6786        $_POST['_ajax_nonce'] = wp_create_nonce( 'delete-comment_' . $comment->comment_ID );
    6887        $_POST[$action]       = 1;
    69         $_POST['_total']      = count( $this->_comments );
     88        $_POST['_total']      = count( self::$comments );
    7089        $_POST['_per_page']   = 100;
    7190        $_POST['_page']       = 1;
     
    125144        $_POST['_ajax_nonce'] = wp_create_nonce( 'delete-comment_' . $comment->comment_ID );
    126145        $_POST[$action]       = 1;
    127         $_POST['_total']      = count( $this->_comments );
     146        $_POST['_total']      = count( self::$comments );
    128147        $_POST['_per_page']   = 100;
    129148        $_POST['_page']       = 1;
     
    155174        $_POST['_ajax_nonce'] = wp_create_nonce( uniqid() );
    156175        $_POST[$action]       = 1;
    157         $_POST['_total']      = count( $this->_comments );
     176        $_POST['_total']      = count( self::$comments );
    158177        $_POST['_per_page']   = 100;
    159178        $_POST['_page']       = 1;
     
    184203        $_POST['_ajax_nonce'] = wp_create_nonce( 'delete-comment_12346789' );
    185204        $_POST[$action]       = 1;
    186         $_POST['_total']      = count( $this->_comments );
     205        $_POST['_total']      = count( self::$comments );
    187206        $_POST['_per_page']   = 100;
    188207        $_POST['_page']       = 1;
     
    220239        $_POST['_ajax_nonce'] = wp_create_nonce( 'delete-comment_' . $comment->comment_ID );
    221240        $_POST[$action]       = 1;
    222         $_POST['_total']      = count( $this->_comments );
     241        $_POST['_total']      = count( self::$comments );
    223242        $_POST['_per_page']   = 100;
    224243        $_POST['_page']       = 1;
     
    255274     */
    256275    public function test_ajax_comment_trash_actions_as_administrator() {
    257 
    258         // Test trash/untrash
    259         $comment = array_pop( $this->_comments );
    260         $this->_test_as_admin( $comment, 'trash' );
    261         $this->_test_as_admin( $comment, 'untrash' );
    262 
    263         // Test spam/unspam
    264         $comment = array_pop( $this->_comments );
    265         $this->_test_as_admin( $comment, 'spam' );
    266         $this->_test_as_admin( $comment, 'unspam' );
    267 
    268         // Test delete
    269         $comment = array_pop( $this->_comments );
    270         $this->_test_as_admin( $comment, 'delete' );
     276        // Test trash/untrash
     277        $this->_test_as_admin( self::$comments[0], 'trash' );
     278        $this->_test_as_admin( self::$comments[0], 'untrash' );
     279
     280        // Test spam/unspam
     281        $this->_test_as_admin( self::$comments[1], 'spam' );
     282        $this->_test_as_admin( self::$comments[1], 'unspam' );
     283
     284        // Test delete
     285        $this->_test_as_admin( self::$comments[2], 'delete' );
    271286    }
    272287
     
    276291     */
    277292    public function test_ajax_comment_trash_actions_as_subscriber() {
    278 
    279         // Test trash/untrash
    280         $comment = array_pop( $this->_comments );
    281         $this->_test_as_subscriber( $comment, 'trash' );
    282         $this->_test_as_subscriber( $comment, 'untrash' );
    283 
    284         // Test spam/unspam
    285         $comment = array_pop( $this->_comments );
    286         $this->_test_as_subscriber( $comment, 'spam' );
    287         $this->_test_as_subscriber( $comment, 'unspam' );
    288 
    289         // Test delete
    290         $comment = array_pop( $this->_comments );
    291         $this->_test_as_subscriber( $comment, 'delete' );
     293        // Test trash/untrash
     294        $this->_test_as_subscriber( self::$comments[0], 'trash' );
     295        $this->_test_as_subscriber( self::$comments[0], 'untrash' );
     296
     297        // Test spam/unspam
     298        $this->_test_as_subscriber( self::$comments[1], 'spam' );
     299        $this->_test_as_subscriber( self::$comments[1], 'unspam' );
     300
     301        // Test delete
     302        $this->_test_as_subscriber( self::$comments[2], 'delete' );
    292303    }
    293304
     
    297308     */
    298309    public function test_ajax_trash_comment_no_id() {
    299 
    300         // Test trash/untrash
    301         $comment = array_pop( $this->_comments );
    302         $this->_test_as_admin( $comment, 'trash' );
    303         $this->_test_as_admin( $comment, 'untrash' );
    304 
    305         // Test spam/unspam
    306         $comment = array_pop( $this->_comments );
    307         $this->_test_as_admin( $comment, 'spam' );
    308         $this->_test_as_admin( $comment, 'unspam' );
    309 
    310         // Test delete
    311         $comment = array_pop( $this->_comments );
    312         $this->_test_as_admin( $comment, 'delete' );
     310        // Test trash/untrash
     311        $this->_test_as_admin( self::$comments[0], 'trash' );
     312        $this->_test_as_admin( self::$comments[0], 'untrash' );
     313
     314        // Test spam/unspam
     315        $this->_test_as_admin( self::$comments[1], 'spam' );
     316        $this->_test_as_admin( self::$comments[1], 'unspam' );
     317
     318        // Test delete
     319        $this->_test_as_admin( self::$comments[2], 'delete' );
    313320    }
    314321
     
    318325     */
    319326    public function test_ajax_trash_comment_bad_nonce() {
    320 
    321         // Test trash/untrash
    322         $comment = array_pop( $this->_comments );
    323         $this->_test_with_bad_nonce( $comment, 'trash' );
    324         $this->_test_with_bad_nonce( $comment, 'untrash' );
    325 
    326         // Test spam/unspam
    327         $comment = array_pop( $this->_comments );
    328         $this->_test_with_bad_nonce( $comment, 'spam' );
    329         $this->_test_with_bad_nonce( $comment, 'unspam' );
    330 
    331         // Test delete
    332         $comment = array_pop( $this->_comments );
    333         $this->_test_with_bad_nonce( $comment, 'delete' );
     327        // Test trash/untrash
     328        $this->_test_with_bad_nonce( self::$comments[0], 'trash' );
     329        $this->_test_with_bad_nonce( self::$comments[0], 'untrash' );
     330
     331        // Test spam/unspam
     332        $this->_test_with_bad_nonce( self::$comments[1], 'spam' );
     333        $this->_test_with_bad_nonce( self::$comments[1], 'unspam' );
     334
     335        // Test delete
     336        $this->_test_with_bad_nonce( self::$comments[2], 'delete' );
    334337    }
    335338
     
    339342     */
    340343    public function test_ajax_trash_double_action() {
    341 
    342         // Test trash/untrash
    343         $comment = array_pop( $this->_comments );
    344         $this->_test_double_action( $comment, 'trash' );
    345         $this->_test_double_action( $comment, 'untrash' );
    346 
    347         // Test spam/unspam
    348         $comment = array_pop( $this->_comments );
    349         $this->_test_double_action( $comment, 'spam' );
    350         $this->_test_double_action( $comment, 'unspam' );
    351 
    352         // Test delete
    353         $comment = array_pop( $this->_comments );
    354         $this->_test_double_action( $comment, 'delete' );
     344        // Test trash/untrash
     345        $this->_test_double_action( self::$comments[0], 'trash' );
     346        $this->_test_double_action( self::$comments[0], 'untrash' );
     347
     348        // Test spam/unspam
     349        $this->_test_double_action( self::$comments[1], 'spam' );
     350        $this->_test_double_action( self::$comments[1], 'unspam' );
     351
     352        // Test delete
     353        $this->_test_double_action( self::$comments[2], 'delete' );
    355354    }
    356355}
Note: See TracChangeset for help on using the changeset viewer.