Skip to:
Content

bbPress.org


Ignore:
Timestamp:
08/16/2015 12:05:56 PM (9 years ago)
Author:
netweb
Message:

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

Props thebrandonallen. See #2801.

File:
1 edited

Legend:

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

    r5792 r5921  
    1111
    1212    /**
     13     * Generic function to test the forum counts with a new topic
     14     */
     15    public function test_bbp_forum_new_topic_counts() {
     16        $f = $this->factory->forum->create();
     17        $t1 = $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        $u = $this->factory->user->create();
     25
     26        // Cheating here, but we need $_SERVER['SERVER_NAME'] to be set.
     27        $this->setUp_wp_mail( false );
     28
     29        // Simulate the 'bbp_new_topic' action.
     30        do_action( 'bbp_new_topic', $t1, $f, false, bbp_get_current_user_id(), $t1 );
     31
     32        // Reverse our changes.
     33        $this->tearDown_wp_mail( false );
     34
     35        $count = bbp_get_forum_topic_count( $f, true, true );
     36        $this->assertSame( 1, $count );
     37
     38        $count = bbp_get_forum_topic_count_hidden( $f, true, true );
     39        $this->assertSame( 0, $count );
     40
     41        $t2 = $this->factory->topic->create( array(
     42            'post_parent' => $f,
     43            'post_author' => $u,
     44            'topic_meta' => array(
     45                'forum_id' => $f,
     46            ),
     47        ) );
     48
     49        // Cheating here, but we need $_SERVER['SERVER_NAME'] to be set.
     50        $this->setUp_wp_mail( false );
     51
     52        // Simulate the 'bbp_new_topic' action.
     53        do_action( 'bbp_new_topic', $t2, $f, false, $u , $t2 );
     54
     55        // Reverse our changes.
     56        $this->tearDown_wp_mail( false );
     57
     58        $count = bbp_get_forum_topic_count( $f, true, true );
     59        $this->assertSame( 2, $count );
     60
     61        $count = bbp_get_forum_topic_count_hidden( $f, true, true );
     62        $this->assertSame( 0, $count );
     63    }
     64
     65    /**
     66     * Generic function to test the forum counts on a trashed/untrashed topic
     67     */
     68    public function test_bbp_forum_trashed_untrashed_topic_counts() {
     69        $f = $this->factory->forum->create();
     70        $t = $this->factory->topic->create_many( 3, array(
     71            'post_parent' => $f,
     72            'topic_meta' => array(
     73                'forum_id' => $f,
     74            ),
     75        ) );
     76        $r1 = $this->factory->reply->create_many( 2, array(
     77            'post_parent' => $t[1],
     78            'reply_meta' => array(
     79                'forum_id' => $f,
     80                'topic_id' => $t[1],
     81            ),
     82        ) );
     83        $r2 = $this->factory->reply->create_many( 2, array(
     84            'post_parent' => $t[2],
     85            'reply_meta' => array(
     86                'forum_id' => $f,
     87                'topic_id' => $t[2],
     88            ),
     89        ) );
     90
     91        $count = bbp_update_forum_topic_count( $f );
     92        $this->assertSame( 3, $count );
     93
     94        $count = bbp_update_forum_topic_count_hidden( $f );
     95        $this->assertSame( 0, $count );
     96
     97        $count = bbp_update_forum_reply_count( $f );
     98        $this->assertSame( 4, $count );
     99
     100        // ToDo: Update this to use bbp_trash_topic().
     101        wp_trash_post( $t[2] );
     102
     103        $count = bbp_get_forum_topic_count( $f, true, true );
     104        $this->assertSame( 2, $count );
     105
     106        $count = bbp_get_forum_topic_count_hidden( $f, true, true );
     107        $this->assertSame( 1, $count );
     108
     109        $count = bbp_get_forum_reply_count( $f, true, true );
     110        $this->assertSame( 2, $count );
     111
     112        // ToDo: Update this to use bbp_untrash_topic().
     113        wp_untrash_post( $t[2] );
     114
     115        $count = bbp_get_forum_topic_count( $f, true, true );
     116        $this->assertSame( 3, $count );
     117
     118        $count = bbp_get_forum_topic_count_hidden( $f, true, true );
     119        $this->assertSame( 0, $count );
     120
     121        $count = bbp_get_forum_reply_count( $f, true, true );
     122        $this->assertSame( 4, $count );
     123    }
     124
     125    /**
     126     * Generic function to test the forum counts on a spammed/unspammed topic
     127     */
     128    public function test_bbp_forum_spammed_unspammed_topic_counts() {
     129        $f = $this->factory->forum->create();
     130        $t = $this->factory->topic->create_many( 3, array(
     131            'post_parent' => $f,
     132            'topic_meta' => array(
     133                'forum_id' => $f,
     134            ),
     135        ) );
     136        $r1 = $this->factory->reply->create_many( 2, array(
     137            'post_parent' => $t[1],
     138            'reply_meta' => array(
     139                'forum_id' => $f,
     140                'topic_id' => $t[1],
     141            ),
     142        ) );
     143        $r2 = $this->factory->reply->create_many( 2, array(
     144            'post_parent' => $t[2],
     145            'reply_meta' => array(
     146                'forum_id' => $f,
     147                'topic_id' => $t[2],
     148            ),
     149        ) );
     150
     151        $count = bbp_update_forum_topic_count( $f );
     152        $this->assertSame( 3, $count );
     153
     154        $count = bbp_update_forum_topic_count_hidden( $f );
     155        $this->assertSame( 0, $count );
     156
     157        $count = bbp_update_forum_reply_count( $f );
     158        $this->assertSame( 4, $count );
     159
     160        bbp_spam_topic( $t[2] );
     161
     162        $count = bbp_get_forum_topic_count( $f, true, true );
     163        $this->assertSame( 2, $count );
     164
     165        $count = bbp_get_forum_topic_count_hidden( $f, true, true );
     166        $this->assertSame( 1, $count );
     167
     168        $count = bbp_get_forum_reply_count( $f, true, true );
     169        $this->assertSame( 2, $count );
     170
     171        bbp_unspam_topic( $t[2] );
     172
     173        $count = bbp_get_forum_topic_count( $f, true, true );
     174        $this->assertSame( 3, $count );
     175
     176        $count = bbp_get_forum_topic_count_hidden( $f, true, true );
     177        $this->assertSame( 0, $count );
     178
     179        $count = bbp_get_forum_reply_count( $f, true, true );
     180        $this->assertSame( 4, $count );
     181    }
     182
     183    /**
     184     * Generic function to test the forum counts on a approved/unapproved topic
     185     */
     186    public function test_bbp_forum_approved_unapproved_topic_counts() {
     187        $f = $this->factory->forum->create();
     188        $t = $this->factory->topic->create_many( 3, array(
     189            'post_parent' => $f,
     190            'topic_meta' => array(
     191                'forum_id' => $f,
     192            ),
     193        ) );
     194        $r1 = $this->factory->reply->create_many( 2, array(
     195            'post_parent' => $t[1],
     196            'reply_meta' => array(
     197                'forum_id' => $f,
     198                'topic_id' => $t[1],
     199            ),
     200        ) );
     201        $r2 = $this->factory->reply->create_many( 2, array(
     202            'post_parent' => $t[2],
     203            'reply_meta' => array(
     204                'forum_id' => $f,
     205                'topic_id' => $t[2],
     206            ),
     207        ) );
     208
     209        $count = bbp_update_forum_topic_count( $f );
     210        $this->assertSame( 3, $count );
     211
     212        $count = bbp_update_forum_topic_count_hidden( $f );
     213        $this->assertSame( 0, $count );
     214
     215        $count = bbp_update_forum_reply_count( $f );
     216        $this->assertSame( 4, $count );
     217
     218        bbp_unapprove_topic( $t[2] );
     219
     220        $count = bbp_get_forum_topic_count( $f, true, true );
     221        $this->assertSame( 2, $count );
     222
     223        $count = bbp_get_forum_topic_count_hidden( $f, true, true );
     224        $this->assertSame( 1, $count );
     225
     226        $count = bbp_get_forum_reply_count( $f, true, true );
     227        $this->assertSame( 2, $count );
     228
     229        bbp_approve_topic( $t[2] );
     230
     231        $count = bbp_get_forum_topic_count( $f, true, true );
     232        $this->assertSame( 3, $count );
     233
     234        $count = bbp_get_forum_topic_count_hidden( $f, true, true );
     235        $this->assertSame( 0, $count );
     236
     237        $count = bbp_get_forum_reply_count( $f, true, true );
     238        $this->assertSame( 4, $count );
     239    }
     240
     241    /**
    13242     * @covers ::bbp_bump_forum_topic_count
    14243     */
Note: See TracChangeset for help on using the changeset viewer.