Skip to:
Content

bbPress.org

Changeset 5920


Ignore:
Timestamp:
08/16/2015 10:35:46 AM (9 years ago)
Author:
netweb
Message:

Tests: Introduce generic tests to test topic counts with various new, spam, trash, delete, and approve reply actions

Props thebrandonallen. See #2801.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/testcases/topics/functions/counts.php

    r5780 r5920  
    1111
    1212    /**
     13     * Generic function to test the topics counts with a new reply
     14     */
     15    public function test_bbp_topic_new_reply_counts() {
     16        $f = $this->factory->forum->create();
     17        $t = $this->factory->topic->create( array(
     18            'post_parent' => $f,
     19            'post_author' => bbp_get_current_user_id(),
     20            'topic_meta' => array(
     21                'forum_id' => $f,
     22            ),
     23        ) );
     24        $r1 = $this->factory->reply->create( array(
     25            'post_parent' => $t,
     26            'post_author' => bbp_get_current_user_id(),
     27            'reply_meta' => array(
     28                'forum_id' => $f,
     29                'topic_id' => $t,
     30            ),
     31        ) );
     32        $u = $this->factory->user->create();
     33
     34        // Cheating here, but we need $_SERVER['SERVER_NAME'] to be set.
     35        $this->setUp_wp_mail( false );
     36
     37        // Simulate the 'bbp_new_reply' action.
     38        do_action( 'bbp_new_reply', $r1, $t, $f, false, bbp_get_current_user_id() );
     39
     40        // Reverse our changes.
     41        $this->tearDown_wp_mail( false );
     42
     43        $count = bbp_get_topic_reply_count( $t, true );
     44        $this->assertSame( 1, $count );
     45
     46        $count = bbp_get_topic_reply_count_hidden( $t, true );
     47        $this->assertSame( 0, $count );
     48
     49        $count = bbp_get_topic_voice_count( $t, true );
     50        $this->assertSame( 1, $count );
     51
     52        $r2 = $this->factory->reply->create( array(
     53            'post_parent' => $t,
     54            'post_author' => $u,
     55            'reply_meta' => array(
     56                'forum_id' => $f,
     57                'topic_id' => $t,
     58            ),
     59        ) );
     60
     61        bbp_clean_post_cache( $r2 );
     62
     63        // Cheating here, but we need $_SERVER['SERVER_NAME'] to be set.
     64        $this->setUp_wp_mail( false );
     65
     66        // Simulate the 'bbp_new_topic' action.
     67        do_action( 'bbp_new_reply', $r2, $t, $f, false, $u );
     68
     69        // Reverse our changes.
     70        $this->tearDown_wp_mail( false );
     71
     72        $count = bbp_get_topic_reply_count( $t, true );
     73        $this->assertSame( 2, $count );
     74
     75        $count = bbp_get_topic_reply_count_hidden( $t, true );
     76        $this->assertSame( 0, $count );
     77
     78        $count = bbp_get_topic_voice_count( $t, true );
     79        $this->assertSame( 2, $count );
     80    }
     81
     82    /**
     83     * Generic function to test the topic counts on a deleted reply
     84     */
     85    public function test_bbp_topic_deleted_reply_counts() {
     86        $f = $this->factory->forum->create();
     87        $t = $this->factory->topic->create( array(
     88            'post_parent' => $f,
     89            'post_author' => bbp_get_current_user_id(),
     90            'topic_meta' => array(
     91                'forum_id' => $f,
     92            ),
     93        ) );
     94        $r1 = $this->factory->reply->create( array(
     95            'post_parent' => $t,
     96            'post_author' => bbp_get_current_user_id(),
     97            'reply_meta' => array(
     98                'forum_id' => $f,
     99                'topic_id' => $t,
     100            ),
     101        ) );
     102        $u = $this->factory->user->create();
     103
     104        $count = bbp_update_topic_reply_count( $t );
     105        $this->assertSame( 1, $count );
     106
     107        $count = bbp_update_topic_reply_count_hidden( $t );
     108        $this->assertSame( 0, $count );
     109
     110        $count = bbp_update_topic_voice_count( $t );
     111        $this->assertSame( 1, $count );
     112
     113        $r2 = $this->factory->reply->create( array(
     114            'post_parent' => $t,
     115            'post_author' => $u,
     116            'reply_meta' => array(
     117                'forum_id' => $f,
     118                'topic_id' => $t,
     119            ),
     120        ) );
     121
     122        $count = bbp_update_topic_reply_count( $t );
     123        $this->assertSame( 2, $count );
     124
     125        $count = bbp_update_topic_reply_count_hidden( $t );
     126        $this->assertSame( 0, $count );
     127
     128        $count = bbp_update_topic_voice_count( $t );
     129        $this->assertSame( 2, $count );
     130
     131        // ToDo: Update this to use bbp_delete_reply().
     132        bbp_clean_post_cache( $t );
     133        wp_delete_post( $r2, true );
     134
     135        $count = bbp_get_topic_reply_count( $t, true );
     136        $this->assertSame( 1, $count );
     137
     138        $count = bbp_get_topic_reply_count_hidden( $t, true );
     139        $this->assertSame( 0, $count );
     140
     141        $count = bbp_get_topic_voice_count( $t, true );
     142        $this->assertSame( 1, $count );
     143    }
     144
     145    /**
     146     * Generic function to test the topic counts on a trashed/untrashed reply
     147     */
     148    public function test_bbp_topic_trashed_untrashed_reply_counts() {
     149        $u = $this->factory->user->create();
     150        $f = $this->factory->forum->create();
     151        $t = $this->factory->topic->create( array(
     152            'post_parent' => $f,
     153            'topic_meta' => array(
     154                'forum_id' => $f,
     155            ),
     156        ) );
     157        $r = $this->factory->reply->create_many( 2, array(
     158            'post_parent' => $t,
     159            'reply_meta' => array(
     160                'forum_id' => $f,
     161                'topic_id' => $t,
     162            ),
     163        ) );
     164        $r3 = $this->factory->reply->create( array(
     165            'post_parent' => $t,
     166            'post_author' => $u,
     167            'reply_meta' => array(
     168                'forum_id' => $f,
     169                'topic_id' => $t,
     170            ),
     171        ) );
     172
     173        $count = bbp_update_topic_reply_count( $t );
     174        $this->assertSame( 3, $count );
     175
     176        $count = bbp_update_topic_reply_count_hidden( $t );
     177        $this->assertSame( 0, $count );
     178
     179        $count = bbp_update_topic_voice_count( $t );
     180        $this->assertSame( 2, $count );
     181
     182        // ToDo: Update this to use bbp_trash_reply().
     183        wp_trash_post( $r3 );
     184
     185        $count = bbp_get_topic_reply_count( $t, true );
     186        $this->assertSame( 2, $count );
     187
     188        $count = bbp_get_topic_reply_count_hidden( $t, true );
     189        $this->assertSame( 1, $count );
     190
     191        $count = bbp_get_topic_voice_count( $t, true );
     192        $this->assertSame( 1, $count );
     193
     194        // ToDo: Update this to use bbp_untrash_reply().
     195        wp_untrash_post( $r3 );
     196
     197        $count = bbp_get_topic_reply_count( $t, true );
     198        $this->assertSame( 3, $count );
     199
     200        $count = bbp_get_topic_reply_count_hidden( $t, true );
     201        $this->assertSame( 0, $count );
     202
     203        $count = bbp_get_topic_voice_count( $t, true );
     204        $this->assertSame( 2, $count );
     205    }
     206
     207    /**
     208     * Generic function to test the topic counts on a spammed/unspammed reply
     209     */
     210    public function test_bbp_topic_spammed_unspammed_reply_counts() {
     211        $u = $this->factory->user->create();
     212        $f = $this->factory->forum->create();
     213        $t = $this->factory->topic->create( array(
     214            'post_parent' => $f,
     215            'topic_meta' => array(
     216                'forum_id' => $f,
     217            ),
     218        ) );
     219        $r = $this->factory->reply->create_many( 2, array(
     220            'post_parent' => $t,
     221            'reply_meta' => array(
     222                'forum_id' => $f,
     223                'topic_id' => $t,
     224            ),
     225        ) );
     226        $r3 = $this->factory->reply->create( array(
     227            'post_parent' => $t,
     228            'post_author' => $u,
     229            'reply_meta' => array(
     230                'forum_id' => $f,
     231                'topic_id' => $t,
     232            ),
     233        ) );
     234
     235        $count = bbp_update_topic_reply_count( $t );
     236        $this->assertSame( 3, $count );
     237
     238        $count = bbp_update_topic_reply_count_hidden( $t );
     239        $this->assertSame( 0, $count );
     240
     241        $count = bbp_update_topic_voice_count( $t );
     242        $this->assertSame( 2, $count );
     243
     244        bbp_spam_reply( $r3 );
     245
     246        $count = bbp_get_topic_reply_count( $t, true );
     247        $this->assertSame( 2, $count );
     248
     249        $count = bbp_get_topic_reply_count_hidden( $t, true );
     250        $this->assertSame( 1, $count );
     251
     252        $count = bbp_get_topic_voice_count( $t, true );
     253        $this->assertSame( 1, $count );
     254
     255        bbp_unspam_reply( $r3 );
     256
     257        $count = bbp_get_topic_reply_count( $t, true );
     258        $this->assertSame( 3, $count );
     259
     260        $count = bbp_get_topic_reply_count_hidden( $t, true );
     261        $this->assertSame( 0, $count );
     262
     263        $count = bbp_get_topic_voice_count( $t, true );
     264        $this->assertSame( 2, $count );
     265    }
     266
     267    /**
     268     * Generic function to test the topic counts on a approved/unapproved reply
     269     */
     270    public function test_bbp_topic_approved_unapproved_reply_counts() {
     271        $u = $this->factory->user->create();
     272        $f = $this->factory->forum->create();
     273        $t = $this->factory->topic->create( array(
     274            'post_parent' => $f,
     275            'topic_meta' => array(
     276                'forum_id' => $f,
     277            ),
     278        ) );
     279        $r = $this->factory->reply->create_many( 2, array(
     280            'post_parent' => $t,
     281            'reply_meta' => array(
     282                'forum_id' => $f,
     283                'topic_id' => $t,
     284            ),
     285        ) );
     286        $r3 = $this->factory->reply->create( array(
     287            'post_parent' => $t,
     288            'post_author' => $u,
     289            'reply_meta' => array(
     290                'forum_id' => $f,
     291                'topic_id' => $t,
     292            ),
     293        ) );
     294
     295        $count = bbp_update_topic_reply_count( $t );
     296        $this->assertSame( 3, $count );
     297
     298        $count = bbp_update_topic_reply_count_hidden( $t );
     299        $this->assertSame( 0, $count );
     300
     301        $count = bbp_update_topic_voice_count( $t );
     302        $this->assertSame( 2, $count );
     303
     304        bbp_unapprove_reply( $r3 );
     305
     306        $count = bbp_get_topic_reply_count( $t, true );
     307        $this->assertSame( 2, $count );
     308
     309        $count = bbp_get_topic_reply_count_hidden( $t, true );
     310        $this->assertSame( 1, $count );
     311
     312        $count = bbp_get_topic_voice_count( $t, true );
     313        $this->assertSame( 1, $count );
     314
     315        bbp_approve_reply( $r3 );
     316
     317        $count = bbp_get_topic_reply_count( $t, true );
     318        $this->assertSame( 3, $count );
     319
     320        $count = bbp_get_topic_reply_count_hidden( $t, true );
     321        $this->assertSame( 0, $count );
     322
     323        $count = bbp_get_topic_voice_count( $t, true );
     324        $this->assertSame( 2, $count );
     325    }
     326
     327    /**
    13328     * @covers ::bbp_bump_topic_reply_count
    14329     */
Note: See TracChangeset for help on using the changeset viewer.