Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
01/29/2015 04:22:02 PM (12 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.