/** * @group groups_get_invite_count_for_user * @group group_invitations * @group group_membership */ public function test_groups_get_invite_count_for_user_ignore_drafts() { $u1 = $this->factory->user->create(); $u2 = $this->factory->user->create(); $g1 = $this->factory->group->create(array('creator_id' => $u1)); // Create draft invitation. groups_invite_user(array('user_id' => $u2, 'group_id' => $g1, 'inviter_id' => $u1, 'date_modified' => bp_core_current_time(), 'is_confirmed' => 0)); // groups_get_invite_count_for_user should ignore draft invitations. $this->assertEquals(0, groups_get_invite_count_for_user($u2)); }
/** * Set up the component entries in the WordPress Admin Bar. * * @see BP_Component::setup_nav() for a description of the $wp_admin_nav * parameter array. * * @param array $wp_admin_nav See BP_Component::setup_admin_bar() for a description. */ public function setup_admin_bar($wp_admin_nav = array()) { // Menus for logged in user. if (is_user_logged_in()) { // Setup the logged in user variables. $groups_link = trailingslashit(bp_loggedin_user_domain() . bp_get_groups_slug()); // Pending group invites. $count = groups_get_invite_count_for_user(); $title = _x('Groups', 'My Account Groups', 'buddypress'); $pending = _x('No Pending Invites', 'My Account Groups sub nav', 'buddypress'); if (!empty($count['total'])) { $title = sprintf(_x('Groups <span class="count">%s</span>', 'My Account Groups nav', 'buddypress'), bp_core_number_format($count)); $pending = sprintf(_x('Pending Invites <span class="count">%s</span>', 'My Account Groups sub nav', 'buddypress'), bp_core_number_format($count)); } // Add the "My Account" sub menus. $wp_admin_nav[] = array('parent' => buddypress()->my_account_menu_id, 'id' => 'my-account-' . $this->id, 'title' => $title, 'href' => $groups_link); // My Groups. $wp_admin_nav[] = array('parent' => 'my-account-' . $this->id, 'id' => 'my-account-' . $this->id . '-memberships', 'title' => _x('Memberships', 'My Account Groups sub nav', 'buddypress'), 'href' => $groups_link); // Invitations. $wp_admin_nav[] = array('parent' => 'my-account-' . $this->id, 'id' => 'my-account-' . $this->id . '-invites', 'title' => $pending, 'href' => trailingslashit($groups_link . 'invites')); // Create a Group. if (bp_user_can_create_groups()) { $wp_admin_nav[] = array('parent' => 'my-account-' . $this->id, 'id' => 'my-account-' . $this->id . '-create', 'title' => _x('Create a Group', 'My Account Groups sub nav', 'buddypress'), 'href' => trailingslashit(bp_get_groups_directory_permalink() . 'create')); } } parent::setup_admin_bar($wp_admin_nav); }
/** * @group counts */ public function test_get_invite_count_for_user() { $u1 = $this->factory->user->create(); $u2 = $this->factory->user->create(); $g = $this->factory->group->create(array('creator_id' => $u1)); // create invitation groups_invite_user(array('user_id' => $u2, 'group_id' => $g, 'inviter_id' => $u1)); // send the invite // this function is imperative to set the 'invite_sent' flag in the DB // why is this separated from groups_invite_user()? // @see groups_screen_group_invite() groups_send_invites($u1, $g); // assert invite count $this->assertEquals(1, groups_get_invite_count_for_user($u2)); // accept the invite and reassert groups_accept_invite($u2, $g); $this->assertEquals(0, groups_get_invite_count_for_user($u2)); }