Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
01/29/2015 04:22:02 PM (10 years ago)
Author:
johnjamesjacoby
Message:

Use bp_sanitize_pagination_arg() in BP_Core_Members_Template and include related tests. This prevents pagination values from being overridden outside of anticipated boundaries. See #5796.

File:
1 edited

Legend:

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

    r9210 r9412  
    192192        $this->assertEquals( bp_core_time_since( $time ), bp_get_member_last_active( array( 'active_format' => false, ) ) );
    193193    }
     194
     195    /**
     196     * @group BP_Core_Members_Template
     197     */
     198    public function test_bp_groups_template_should_give_precedence_to_upage_URL_param() {
     199        $request = $_REQUEST;
     200        $_REQUEST['upage'] = '5';
     201
     202        $r = array(
     203            'type'            => 'active',
     204            'page'            => 8,
     205            'per_page'        => 20,
     206            'max'             => false,
     207            'page_arg'        => 'upage',
     208            'include'         => false,
     209            'exclude'         => false,
     210            'user_id'         => 0,
     211            'member_type'     => '',
     212            'search_terms'    => null,
     213            'meta_key'        => false,
     214            'meta_value'      => false,
     215            'populate_extras' => true,
     216            'search_terms'    => ''
     217        );
     218
     219        $at = new BP_Core_Members_Template(
     220            $r['type'],
     221            $r['page'],
     222            $r['per_page'],
     223            $r['max'],
     224            $r['user_id'],
     225            $r['search_terms'],
     226            $r['include'],
     227            $r['populate_extras'],
     228            $r['exclude'],
     229            $r['meta_key'],
     230            $r['meta_value'],
     231            $r['page_arg'],
     232            $r['member_type']
     233        );
     234
     235        $this->assertEquals( 5, $at->pag_page );
     236
     237        $_REQUEST = $request;
     238    }
     239
     240    /**
     241     * @group BP_Core_Members_Template
     242     */
     243    public function test_bp_members_template_should_reset_0_pag_page_URL_param_to_default_pag_page_value() {
     244        $request = $_REQUEST;
     245        $_REQUEST['upage'] = '0';
     246
     247        $r = array(
     248            'type'            => 'active',
     249            'page'            => 8,
     250            'per_page'        => 20,
     251            'max'             => false,
     252            'page_arg'        => 'upage',
     253            'include'         => false,
     254            'exclude'         => false,
     255            'user_id'         => 0,
     256            'member_type'     => '',
     257            'search_terms'    => null,
     258            'meta_key'        => false,
     259            'meta_value'      => false,
     260            'populate_extras' => true,
     261            'search_terms'    => ''
     262        );
     263
     264        $at = new BP_Core_Members_Template(
     265            $r['type'],
     266            $r['page'],
     267            $r['per_page'],
     268            $r['max'],
     269            $r['user_id'],
     270            $r['search_terms'],
     271            $r['include'],
     272            $r['populate_extras'],
     273            $r['exclude'],
     274            $r['meta_key'],
     275            $r['meta_value'],
     276            $r['page_arg'],
     277            $r['member_type']
     278        );
     279
     280        $this->assertEquals( 8, $at->pag_page );
     281
     282        $_REQUEST = $request;
     283    }
     284
     285    /**
     286     * @group BP_Core_Members_Template
     287     */
     288    public function test_bp_members_template_should_give_precedence_to_num_URL_param() {
     289        $request = $_REQUEST;
     290        $_REQUEST['num'] = '14';
     291
     292        $r = array(
     293            'type'            => 'active',
     294            'page'            => 1,
     295            'per_page'        => 13,
     296            'max'             => false,
     297            'page_arg'        => 'upage',
     298            'include'         => false,
     299            'exclude'         => false,
     300            'user_id'         => 0,
     301            'member_type'     => '',
     302            'search_terms'    => null,
     303            'meta_key'        => false,
     304            'meta_value'      => false,
     305            'populate_extras' => true,
     306            'search_terms'    => ''
     307        );
     308
     309        $at = new BP_Core_Members_Template(
     310            $r['type'],
     311            $r['page'],
     312            $r['per_page'],
     313            $r['max'],
     314            $r['user_id'],
     315            $r['search_terms'],
     316            $r['include'],
     317            $r['populate_extras'],
     318            $r['exclude'],
     319            $r['meta_key'],
     320            $r['meta_value'],
     321            $r['page_arg'],
     322            $r['member_type']
     323        );
     324
     325        $this->assertEquals( 14, $at->pag_num );
     326
     327        $_REQUEST = $request;
     328    }
     329
     330    /**
     331     * @group BP_Core_Members_Template
     332     */
     333    public function test_bp_members_template_should_reset_0_pag_num_URL_param_to_default_pag_num_value() {
     334        $request = $_REQUEST;
     335        $_REQUEST['num'] = '0';
     336
     337        $r = array(
     338            'type'            => 'active',
     339            'page'            => 1,
     340            'per_page'        => 13,
     341            'max'             => false,
     342            'page_arg'        => 'upage',
     343            'include'         => false,
     344            'exclude'         => false,
     345            'user_id'         => 0,
     346            'member_type'     => '',
     347            'search_terms'    => null,
     348            'meta_key'        => false,
     349            'meta_value'      => false,
     350            'populate_extras' => true,
     351            'search_terms'    => ''
     352        );
     353
     354        $at = new BP_Core_Members_Template(
     355            $r['type'],
     356            $r['page'],
     357            $r['per_page'],
     358            $r['max'],
     359            $r['user_id'],
     360            $r['search_terms'],
     361            $r['include'],
     362            $r['populate_extras'],
     363            $r['exclude'],
     364            $r['meta_key'],
     365            $r['meta_value'],
     366            $r['page_arg'],
     367            $r['member_type']
     368        );
     369
     370        $this->assertEquals( 13, $at->pag_num );
     371
     372        $_REQUEST = $request;
     373    }
    194374}
Note: See TracChangeset for help on using the changeset viewer.