Skip to:
Content

BuddyPress.org

Changeset 11212


Ignore:
Timestamp:
10/26/2016 03:12:54 AM (10 years ago)
Author:
dcavins
Message:

Improve backward compatibility in groups_get_group().

In r11090, we changed the signature of groups_get_group() to accept
an integer and added backcompat for the most commonly used former
signature, an associative array. However, it was also possible to use a
query-string-style argument. This commit covers that case.

Fixes #7302 (for 2.7 branch).

Location:
branches/2.7
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/2.7/src/bp-groups/bp-groups-functions.php

    r11197 r11212  
    4444 */
    4545function groups_get_group( $group_id ) {
    46         // Backward compatibilty.
    47         if ( is_array( $group_id ) && isset( $group_id['group_id'] ) ) {
    48                 $group_id = $group_id['group_id'];
     46        /*
     47         * Backward compatibilty.
     48         * Old-style arguments take the form of an array or a query string.
     49         */
     50        if ( ! is_numeric( $group_id ) ) {
     51                $r = wp_parse_args( $group_id, array(
     52                        'group_id'        => false,
     53                        'load_users'      => false,
     54                        'populate_extras' => false,
     55                ) );
     56
     57                $group_id = $r['group_id'];
    4958        }
    5059
  • branches/2.7/tests/phpunit/testcases/groups/functions.php

    r11095 r11212  
    668668                $this->assertEquals( $g1, $child->parent_id );
    669669        }
     670
     671        /**
     672         * @group groups_get_group
     673         * @ticket BP7302
     674         */
     675        public function test_groups_get_group_accept_integer() {
     676                $g1 = $this->factory->group->create();
     677                $group = groups_get_group( $g1 );
     678
     679                $this->assertEquals( $g1, $group->id );
     680        }
     681
     682        /**
     683         * @group groups_get_group
     684         * @ticket BP7302
     685         */
     686        public function test_groups_get_group_accept_numeric() {
     687                $g1 = $this->factory->group->create();
     688                $group = groups_get_group( (string) $g1 );
     689
     690                $this->assertEquals( $g1, $group->id );
     691        }
     692
     693        /**
     694         * @group groups_get_group
     695         * @ticket BP7302
     696         */
     697        public function test_groups_get_group_accept_array() {
     698                $g1 = $this->factory->group->create();
     699                $group = groups_get_group( array( 'group_id' => $g1 ) );
     700
     701                $this->assertEquals( $g1, $group->id );
     702        }
     703
     704        /**
     705         * @group groups_get_group
     706         * @ticket BP7302
     707         */
     708        public function test_groups_get_group_accept_query_string() {
     709                $g1 = $this->factory->group->create();
     710                $group = groups_get_group( 'group_id=' . $g1 );
     711
     712                $this->assertEquals( $g1, $group->id );
     713        }
    670714}
Note: See TracChangeset for help on using the changeset viewer.