Changeset 11074
- Timestamp:
- 09/09/2016 03:54:32 PM (9 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
-
src/bp-groups/bp-groups-cache.php (modified) (1 diff)
-
tests/phpunit/testcases/groups/class-bp-groups-group.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/bp-groups/bp-groups-cache.php
r11072 r11074 275 275 add_action( 'deleted_group_meta', 'bp_groups_reset_cache_incrementor' ); 276 276 add_action( 'added_group_meta', 'bp_groups_reset_cache_incrementor' ); 277 278 /** 279 * Reset cache incrementor for Groups component when a group's taxonomy terms change. 280 * 281 * We infer that a group is being affected by looking at the objects belonging 282 * to the taxonomy being affected. 283 * 284 * @since 2.7.0 285 * 286 * @param int $object_id ID of the item whose terms are being modified. 287 * @param array $terms Array of object terms. 288 * @param array $tt_ids Array of term taxonomy IDs. 289 * @param string $taxonomy Taxonomy slug. 290 * @return bool True on success, false on failure. 291 */ 292 function bp_groups_reset_cache_incrementor_on_group_term_change( $object_id, $terms, $tt_ids, $taxonomy ) { 293 $tax_object = get_taxonomy( $taxonomy ); 294 if ( $tax_object && in_array( 'bp_group', $tax_object->object_type ) ) { 295 return bp_groups_reset_cache_incrementor(); 296 } 297 298 return false; 299 } 300 add_action( 'bp_set_object_terms', 'bp_groups_reset_cache_incrementor_on_group_term_change', 10, 4 ); 301 302 /** 303 * Reset cache incrementor for Groups component when a group's taxonomy terms are removed. 304 * 305 * We infer that a group is being affected by looking at the objects belonging 306 * to the taxonomy being affected. 307 * 308 * @since 2.7.0 309 * 310 * @param int $object_id ID of the item whose terms are being modified. 311 * @param array $terms Array of object terms. 312 * @param string $taxonomy Taxonomy slug. 313 * @return bool True on success, false on failure. 314 */ 315 function bp_groups_reset_cache_incrementor_on_group_term_remove( $object_id, $terms, $taxonomy ) { 316 $tax_object = get_taxonomy( $taxonomy ); 317 if ( $tax_object && in_array( 'bp_group', $tax_object->object_type ) ) { 318 return bp_groups_reset_cache_incrementor(); 319 } 320 321 return false; 322 } 323 add_action( 'bp_remove_object_terms', 'bp_groups_reset_cache_incrementor_on_group_term_remove', 10, 3 ); 277 324 278 325 /* List actions to clear super cached pages on, if super cache is installed */ -
trunk/tests/phpunit/testcases/groups/class-bp-groups-group.php
r11072 r11074 567 567 /** 568 568 * @group cache 569 * @group group_types 570 * @ticket BP5451 571 * @ticket BP6643 572 */ 573 public function test_get_query_caches_should_be_busted_by_group_term_change() { 574 global $wpdb; 575 576 bp_groups_register_group_type( 'foo' ); 577 bp_groups_register_group_type( 'bar' ); 578 579 $groups = $this->factory->group->create_many( 2 ); 580 bp_groups_set_group_type( $groups[0], 'foo' ); 581 bp_groups_set_group_type( $groups[1], 'bar' ); 582 583 $found1 = BP_Groups_Group::get( array( 584 'group_type' => 'foo', 585 ) ); 586 587 $this->assertEqualSets( array( $groups[0] ), wp_list_pluck( $found1['groups'], 'id' ) ); 588 589 bp_groups_set_group_type( $groups[1], 'foo' ); 590 591 $found2 = BP_Groups_Group::get( array( 592 'group_type' => 'foo', 593 ) ); 594 595 $this->assertEqualSets( array( $groups[0], $groups[1] ), wp_list_pluck( $found2['groups'], 'id' ) ); 596 } 597 598 /** 599 * @group cache 600 * @group group_types 601 * @ticket BP5451 602 * @ticket BP6643 603 */ 604 public function test_get_query_caches_should_be_busted_by_group_term_removal() { 605 global $wpdb; 606 607 bp_groups_register_group_type( 'foo' ); 608 609 $groups = $this->factory->group->create_many( 2 ); 610 bp_groups_set_group_type( $groups[0], 'foo' ); 611 bp_groups_set_group_type( $groups[1], 'foo' ); 612 613 $found1 = BP_Groups_Group::get( array( 614 'group_type' => 'foo', 615 ) ); 616 617 $this->assertEqualSets( array( $groups[0], $groups[1] ), wp_list_pluck( $found1['groups'], 'id' ) ); 618 619 bp_groups_remove_group_type( $groups[1], 'foo' ); 620 621 $found2 = BP_Groups_Group::get( array( 622 'group_type' => 'foo', 623 ) ); 624 625 $this->assertEqualSets( array( $groups[0] ), wp_list_pluck( $found2['groups'], 'id' ) ); 626 } 627 628 /** 629 * @group cache 569 630 * @ticket BP5451 570 631 * @ticket BP6643
Note: See TracChangeset
for help on using the changeset viewer.