Skip to:
Content

bbPress.org


Ignore:
Timestamp:
07/24/2015 11:21:28 AM (10 years ago)
Author:
netweb
Message:

Replies: In bbp_update_reply_walker() always update the topics last active time with bbp_update_topic_last_active_time() regardless of reply's published status.

This changeset including unit tests ensures that when calling reply actions spam/unspam, trash/untrash, approve/unapprove the reply's parent topic's last active time is updated to the time of the last published reply.

Props netweb. See #2838

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/testcases/topics/template/links.php

    r5878 r5880  
    5959
    6060        $link = bbp_get_topic_freshness_link( $t );
    61         $this->assertSame( '<a href="http://example.org/?topic=topic-1" title="">4 days, 4 hours ago</a>', $link );
     61        $this->assertSame( '<a href="http://' . WP_TESTS_DOMAIN . '/?topic=topic-1" title="">4 days, 4 hours ago</a>', $link );
    6262
    6363        $r1 = $this->factory->reply->create( array(
     
    7171
    7272        $link = bbp_get_topic_freshness_link( $t );
    73         $this->assertSame( '<a href="http://example.org/?topic=topic-1/#post-' . bbp_get_reply_id( $r1 ) . '" title="Reply To: ' . bbp_get_topic_title( $t ) . '">3 days, 8 hours ago</a>', $link );
     73        $this->assertSame( '<a href="http://' . WP_TESTS_DOMAIN . '/?topic=topic-1/#post-' . bbp_get_reply_id( $r1 ) . '" title="Reply To: ' . bbp_get_topic_title( $t ) . '">3 days, 8 hours ago</a>', $link );
    7474
    7575        $r2 = $this->factory->reply->create( array(
     
    8383
    8484        $link = bbp_get_topic_freshness_link( $t );
    85         $this->assertSame( '<a href="http://example.org/?topic=topic-1/#post-' . bbp_get_reply_id( $r2 ) . '" title="Reply To: ' . bbp_get_topic_title( $t ) . '">2 days, 12 hours ago</a>', $link );
     85        $this->assertSame( '<a href="http://' . WP_TESTS_DOMAIN . '/?topic=topic-1/#post-' . bbp_get_reply_id( $r2 ) . '" title="Reply To: ' . bbp_get_topic_title( $t ) . '">2 days, 12 hours ago</a>', $link );
     86
     87        // Retore the user
     88        $this->set_current_user( $this->old_current_user );
     89    }
     90
     91    /**
     92     * @covers ::bbp_get_topic_freshness_link
     93     */
     94    public function test_bbp_get_topic_freshness_link_with_unpublished_replies() {
     95
     96        if ( is_multisite() ) {
     97            $this->markTestSkipped( 'Skipping URL tests in multiste for now.' );
     98        }
     99
     100        $now = time();
     101        $post_date    = date( 'Y-m-d H:i:s', $now - 60 * 60 * 20 ); // 2o hours ago
     102        $post_date_r1 = date( 'Y-m-d H:i:s', $now - 60 * 60 * 18 ); // 18 hours ago
     103        $post_date_r2 = date( 'Y-m-d H:i:s', $now - 60 * 60 * 16 ); // 16 hours ago
     104        $post_date_r3 = date( 'Y-m-d H:i:s', $now - 60 * 60 * 14 ); // 14 hours ago
     105        $post_date_r4 = date( 'Y-m-d H:i:s', $now - 60 * 60 * 12 ); // 12 hours ago
     106        $post_date_r5 = date( 'Y-m-d H:i:s', $now - 60 * 60 * 10 ); // 1o hours ago
     107
     108        $f = $this->factory->forum->create();
     109        $t = $this->factory->topic->create( array(
     110            'post_parent' => $f,
     111            'post_date' => $post_date,
     112            'topic_meta' => array(
     113                'forum_id' => $f,
     114            ),
     115        ) );
     116
     117        $link = bbp_get_topic_freshness_link( $t );
     118        $this->assertSame( '<a href="http://' . WP_TESTS_DOMAIN . '/?topic=topic-1" title="">20 hours ago</a>', $link );
     119
     120        $r1 = $this->factory->reply->create( array(
     121            'post_parent' => $t,
     122            'post_date' => $post_date_r1,
     123            'reply_meta' => array(
     124                'forum_id' => $f,
     125                'topic_id' => $t,
     126            ),
     127        ) );
     128
     129        $link = bbp_get_topic_freshness_link( $t );
     130        $this->assertSame( '<a href="http://' . WP_TESTS_DOMAIN . '/?topic=topic-1/#post-' . bbp_get_reply_id( $r1 ) . '" title="Reply To: ' . bbp_get_topic_title( $t ) . '">18 hours ago</a>', $link );
     131
     132        $r2 = $this->factory->reply->create( array(
     133            'post_parent' => $t,
     134            'post_date' => $post_date_r2,
     135            'reply_meta' => array(
     136                'forum_id' => $f,
     137                'topic_id' => $t,
     138            ),
     139        ) );
     140
     141        $link = bbp_get_topic_freshness_link( $t );
     142        $this->assertSame( '<a href="http://' . WP_TESTS_DOMAIN . '/?topic=topic-1/#post-' . bbp_get_reply_id( $r2 ) . '" title="Reply To: ' . bbp_get_topic_title( $t ) . '">16 hours ago</a>', $link );
     143
     144        bbp_spam_reply( $r2 );
     145
     146        $link = bbp_get_topic_freshness_link( $t );
     147        $this->assertSame( '<a href="http://' . WP_TESTS_DOMAIN . '/?topic=topic-1/#post-' . bbp_get_reply_id( $r1 ) . '" title="Reply To: ' . bbp_get_topic_title( $t ) . '">18 hours ago</a>', $link );
     148
     149        $r3 = $this->factory->reply->create( array(
     150            'post_parent' => $t,
     151            'post_date' => $post_date_r3,
     152            'reply_meta' => array(
     153                'forum_id' => $f,
     154                'topic_id' => $t,
     155            ),
     156        ) );
     157
     158        $link = bbp_get_topic_freshness_link( $t );
     159        $this->assertSame( '<a href="http://example.org/?topic=topic-1/#post-' . bbp_get_reply_id( $r3 ) . '" title="Reply To: ' . bbp_get_topic_title( $t ) . '">14 hours ago</a>', $link );
     160
     161        // Todo: Use bbp_trash_reply() and not wp_trash_post()
     162        wp_trash_post( $r3 );
     163
     164        $link = bbp_get_topic_freshness_link( $t );
     165        $this->assertSame( '<a href="http://' . WP_TESTS_DOMAIN . '/?topic=topic-1/#post-' . bbp_get_reply_id( $r1 ) . '" title="Reply To: ' . bbp_get_topic_title( $t ) . '">18 hours ago</a>', $link );
     166
     167        $r4 = $this->factory->reply->create( array(
     168            'post_parent' => $t,
     169            'post_date' => $post_date_r4,
     170            'reply_meta' => array(
     171                'forum_id' => $f,
     172                'topic_id' => $t,
     173            ),
     174        ) );
     175
     176        $link = bbp_get_topic_freshness_link( $t );
     177        $this->assertSame( '<a href="http://' . WP_TESTS_DOMAIN . '/?topic=topic-1/#post-' . bbp_get_reply_id( $r4 ) . '" title="Reply To: ' . bbp_get_topic_title( $t ) . '">12 hours ago</a>', $link );
     178
     179        bbp_unapprove_reply( $r4 );
     180
     181        $link = bbp_get_topic_freshness_link( $t );
     182        $this->assertSame( '<a href="http://' . WP_TESTS_DOMAIN . '/?topic=topic-1/#post-' . bbp_get_reply_id( $r1 ) . '" title="Reply To: ' . bbp_get_topic_title( $t ) . '">18 hours ago</a>', $link );
     183
     184        bbp_unspam_reply( $r2 );
     185
     186        $link = bbp_get_topic_freshness_link( $t );
     187        $this->assertSame( '<a href="http://' . WP_TESTS_DOMAIN . '/?topic=topic-1/#post-' . bbp_get_reply_id( $r2 ) . '" title="Reply To: ' . bbp_get_topic_title( $t ) . '">16 hours ago</a>', $link );
     188
     189        // Todo: Use bbp_untrash_reply() and not wp_untrash_post()
     190        wp_untrash_post( $r3 );
     191
     192        $link = bbp_get_topic_freshness_link( $t );
     193        $this->assertSame( '<a href="http://' . WP_TESTS_DOMAIN . '/?topic=topic-1/#post-' . bbp_get_reply_id( $r3 ) . '" title="Reply To: ' . bbp_get_topic_title( $t ) . '">14 hours ago</a>', $link );
     194
     195        bbp_approve_reply( $r4 );
     196
     197        $link = bbp_get_topic_freshness_link( $t );
     198        $this->assertSame( '<a href="http://' . WP_TESTS_DOMAIN . '/?topic=topic-1/#post-' . bbp_get_reply_id( $r4 ) . '" title="Reply To: ' . bbp_get_topic_title( $t ) . '">12 hours ago</a>', $link );
     199
     200        $r5 = $this->factory->reply->create( array(
     201            'post_parent' => $t,
     202            'post_date' => $post_date_r5,
     203            'reply_meta' => array(
     204                'forum_id' => $f,
     205                'topic_id' => $t,
     206            ),
     207        ) );
     208
     209        $link = bbp_get_topic_freshness_link( $t );
     210        $this->assertSame( '<a href="http://' . WP_TESTS_DOMAIN . '/?topic=topic-1/#post-' . bbp_get_reply_id( $r5 ) . '" title="Reply To: ' . bbp_get_topic_title( $t ) . '">10 hours ago</a>', $link );
    86211    }
    87212
Note: See TracChangeset for help on using the changeset viewer.