- Timestamp:
- 11/08/2022 06:27:01 AM (2 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/tests/phpunit/testcases/xprofile/class-bp-xprofile-group.php
r12317 r13358 132 132 133 133 /** 134 * @group get_xprofile_groups 135 * @group BP4075 136 */ 137 public function test_get_specific_xprofile_groups() { 138 $g1 = self::factory()->xprofile_group->create(); 139 $g2 = self::factory()->xprofile_group->create(); 140 $g3 = self::factory()->xprofile_group->create(); 141 $e1 = [ $g1, $g2 ]; 142 143 // Comma-separated list of profile group ids. 144 $groups1 = BP_XProfile_Group::get( [ 'profile_group_id' => join( ',', $e1 ) ] ); 145 146 $this->assertSame( $e1, array_map( 'absint', wp_list_pluck( $groups1, 'id' ) ) ); 147 148 // Array of profile group ids. 149 $groups2 = BP_XProfile_Group::get( [ 'profile_group_id' => $e1 ] ); 150 151 $this->assertSame( $e1, array_map( 'absint', wp_list_pluck( $groups2, 'id' ) ) ); 152 } 153 154 /** 134 155 * @group member_types 135 156 * @ticket BP5192 … … 444 465 445 466 /** 446 * @group BP 7435447 * @group cache448 */449 public function test_group_ids_query_should_be_cached() {450 global $wpdb;451 452 $group_ids = array( 1 ); // Default group.467 * @group BP4075 468 */ 469 public function test_group_ids_query() { 470 $g1 = self::factory()->xprofile_group->create(); 471 $g2 = self::factory()->xprofile_group->create(); 472 473 $group_ids = [ 1 ]; // Default group. 453 474 $group_ids[] = self::factory()->xprofile_group->create(); 454 475 $group_ids[] = self::factory()->xprofile_group->create(); 455 476 $group_ids[] = self::factory()->xprofile_group->create(); 456 457 $params_1 = array( 458 'exclude_groups' => false, 459 ); 460 461 $params_2 = array( 462 'exclude_groups' => array( 0 ), 463 ); 477 $group_ids[] = $g1; 478 $group_ids[] = $g2; 479 480 $found_1 = BP_XProfile_Group::get_group_ids(); 481 $this->assertEqualSets( $group_ids, $found_1 ); 482 483 $found_2 = BP_XProfile_Group::get_group_ids( [ 'profile_group_id' => $g1 ] ); 484 $this->assertCount( 1, $found_2 ); 485 $this->assertSame( [ $g1 ], $found_2 ); 486 487 $found_3 = BP_XProfile_Group::get_group_ids( [ 'profile_group_id' => [ $g1 ] ] ); 488 $this->assertCount( 1, $found_3 ); 489 $this->assertSame( [ $g1 ], $found_3 ); 490 491 $found_4 = BP_XProfile_Group::get_group_ids( [ 'profile_group_id' => [ $g2 ] ] ); 492 $this->assertCount( 1, $found_4 ); 493 $this->assertSame( [ $g2 ], $found_4 ); 494 495 $found_5 = BP_XProfile_Group::get_group_ids( [ 'profile_group_id' => [ $g1, $g2 ] ] ); 496 $this->assertCount( 2, $found_5 ); 497 $this->assertSame( [ $g1, $g2 ], $found_5 ); 498 499 $found_6 = BP_XProfile_Group::get_group_ids( [ 'profile_group_id' => join( ',', [ $g1, $g2 ] ) ] ); 500 $this->assertCount( 2, $found_6 ); 501 $this->assertSame( [ $g1, $g2 ], $found_6 ); 502 503 $found_7 = BP_XProfile_Group::get_group_ids( [ 'profile_group_id' => true ] ); 504 $this->assertEqualSets( $group_ids, $found_7 ); 505 } 506 507 /** 508 * @group BP7435 509 * @group cache 510 */ 511 public function test_group_ids_query_should_be_cached() { 512 global $wpdb; 513 514 $group_ids = array( 1 ); // Default group. 515 $g1 = self::factory()->xprofile_group->create(); 516 $g2 = self::factory()->xprofile_group->create(); 517 $group_ids[] = self::factory()->xprofile_group->create(); 518 $group_ids[] = self::factory()->xprofile_group->create(); 519 $group_ids[] = self::factory()->xprofile_group->create(); 520 $group_ids[] = $g1; 521 $group_ids[] = $g2; 522 523 $params_1 = [ 'exclude_groups' => false ]; 464 524 465 525 // Prime cache. … … 469 529 $num_queries = $wpdb->num_queries; 470 530 471 $found_ 1= BP_XProfile_Group::get_group_ids( $params_1 );472 $this->assertEqualSets( $group_ids, $found_ 1);531 $found_2 = BP_XProfile_Group::get_group_ids( $params_1 ); 532 $this->assertEqualSets( $group_ids, $found_2 ); 473 533 $this->assertSame( $num_queries, $wpdb->num_queries ); 474 534 475 535 // Different parameters should trigger a cache miss. 476 $found_2 = BP_XProfile_Group::get_group_ids( $params_2 ); 477 $this->assertEqualSets( $group_ids, $found_2 ); 536 $found_3 = BP_XProfile_Group::get_group_ids( [ 'exclude_groups' => [ 0 ] ] ); 537 $this->assertEqualSets( $group_ids, $found_3 ); 538 $this->assertNotSame( $num_queries, $wpdb->num_queries ); 539 540 // Again, different parameters should trigger a cache miss. 541 $found_4 = BP_XProfile_Group::get_group_ids( [ 'profile_group_id' => [ $g1, $g2 ] ] ); 542 $this->assertEqualSets( [ $g1, $g2 ], $found_4 ); 478 543 $this->assertNotSame( $num_queries, $wpdb->num_queries ); 479 544 }
Note: See TracChangeset
for help on using the changeset viewer.