Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
11/13/2021 06:54:07 PM (2 years ago)
Author:
espellcaste
Message:

Adding support to paginate messages/recipients to the BP_Messages_Box_Template class.

When querying threads using the BP_Messages_Box_Template class, one might set a default of messages/recipients, instead of returning all items.

Fixes #8597

File:
1 edited

Legend:

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

    r11737 r13148  
    66 */
    77class BP_Tests_Messages_Template extends BP_UnitTestCase {
     8
    89    /**
    910     * @group bp_has_message_threads
     
    360361        $_REQUEST = $request;
    361362    }
     363
     364    /**
     365     * @group pagination
     366     * @group BP_Messages_Box_Template
     367     */
     368    public function test_setting_per_page_messages_and_recipients() {
     369        $u1 = self::factory()->user->create();
     370        $u2 = self::factory()->user->create();
     371
     372        // create initial thread
     373        $message_1 = self::factory()->message->create_and_get(
     374            array(
     375                'sender_id'  => $u1,
     376                'recipients' => array( $u2 ),
     377            )
     378        );
     379
     380        // create some replies to thread
     381        self::factory()->message->create_and_get(
     382            array(
     383                'thread_id'  => $message_1->thread_id,
     384                'sender_id'  => $u2,
     385                'recipients' => array( $u1 ),
     386            )
     387        );
     388
     389        self::factory()->message->create_and_get(
     390            array(
     391                'thread_id'  => $message_1->thread_id,
     392                'sender_id'  => $u2,
     393                'recipients' => array( $u1 ),
     394            )
     395        );
     396
     397        self::factory()->message->create_and_get(
     398            array(
     399                'thread_id'  => $message_1->thread_id,
     400                'sender_id'  => $u1,
     401                'recipients' => array( $u2 ),
     402            )
     403        );
     404
     405        $messages_template = new BP_Messages_Box_Template(
     406            array( 'user_id' => $u1 )
     407        );
     408
     409        $this->assertSame( array( $message_1->thread_id ), wp_list_pluck( $messages_template->threads, 'thread_id' ) );
     410        $this->assertCount( 4, $messages_template->threads[0]->messages );
     411        $this->assertCount( 2, $messages_template->threads[0]->recipients );
     412
     413        $messages_template = new BP_Messages_Box_Template(
     414            array(
     415                'user_id'             => $u1,
     416                'messages_page'       => 1,
     417                'messages_per_page'   => 2,
     418                'recipients_page'     => 1,
     419                'recipients_per_page' => 1,
     420            )
     421        );
     422
     423        $this->assertCount( 2, $messages_template->threads[0]->messages );
     424        $this->assertNotCount( 2, $messages_template->threads[0]->recipients );
     425        $this->assertCount( 1, $messages_template->threads[0]->recipients );
     426    }
    362427}
Note: See TracChangeset for help on using the changeset viewer.