Skip to:
Content

BuddyPress.org

Ticket #8558: 8558.4.patch

File 8558.4.patch, 2.2 KB (added by dcavins, 4 years ago)

Fix group extension registration. Make the test work. :)

  • src/bp-groups/bp-groups-functions.php

    diff --git src/bp-groups/bp-groups-functions.php src/bp-groups/bp-groups-functions.php
    index e789119c7..4e3183e09 100644
    function bp_init_group_extensions() { 
    36733673        foreach ( array_keys( $registered_group_extensions ) as $group_extension_class ) {
    36743674                $extension = new $group_extension_class;
    36753675
    3676                 add_action( 'bp_actions', array( &$extension, '_register' ), 8 );
    3677                 add_action( 'admin_init', array( &$extension, '_register' ) );
     3676                add_action( 'bp_actions', array( $extension, '_register' ), 8 );
     3677                add_action( 'admin_init', array( $extension, '_register' ) );
    36783678        }
    36793679}
    36803680add_action( 'bp_init', 'bp_init_group_extensions', 11 );
  • tests/phpunit/testcases/groups/class-bp-group-extension.php

    diff --git tests/phpunit/testcases/groups/class-bp-group-extension.php tests/phpunit/testcases/groups/class-bp-group-extension.php
    index 9e1e8b8b0..e640c8793 100644
    class BP_Tests_Group_Extension_TestCases extends BP_UnitTestCase { 
    887887
    888888                $this->assertFalse( $content === 'Widget Displayed' );
    889889        }
     890
     891        /**
     892         * @ticket BP8558
     893         */
     894        public function test_adding_multiple_extension_classes() {
     895                $old_options_nav = buddypress()->bp_options_nav;
     896
     897                $g = self::factory()->group->create();
     898                $g_obj = groups_get_group( $g );
     899
     900                $e = new BPTest_Group_Extension_Enable_Nav_Item_True();
     901                $e_slug = 'bptest_group_extension_enable_nav_item_true';
     902                $e_class_name = get_class( $e );
     903                $f = new BPTest_Group_Extension_Access_Anyone();
     904                $f_slug = 'bptest_group_extension_access_anyone';
     905                $f_class_name = get_class( $f );
     906
     907                bp_register_group_extension( $e_class_name );
     908                bp_register_group_extension( $f_class_name );
     909
     910                $this->go_to( bp_get_group_permalink( $g_obj ) );
     911                $nav = buddypress()->groups->nav->get_secondary( array(
     912                        'parent_slug' => $g_obj->slug ,
     913                ) );
     914
     915                $slugs = array();
     916                foreach ( $nav as $priority => $nav_obj ) {
     917                        $slugs[] = $nav_obj->slug;
     918                }
     919
     920                $this->assertTrue( in_array( $e_slug, $slugs, true ) && in_array( $f_slug, $slugs, true ) );
     921
     922                // Clean up
     923                buddypress()->bp_options_nav = $old_options_nav;
     924        }
    890925}