- Timestamp:
- 12/07/2018 06:41:16 PM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/tests/phpunit/testcases/xprofile/class-bp-xprofile-group.php
r12210 r12317 442 442 $this->assertSame( "Test ' Name", $e1->name ); 443 443 } 444 445 /** 446 * @group BP7435 447 * @group cache 448 */ 449 public function test_group_ids_query_should_be_cached() { 450 global $wpdb; 451 452 $group_ids = array( 1 ); // Default group. 453 $group_ids[] = self::factory()->xprofile_group->create(); 454 $group_ids[] = self::factory()->xprofile_group->create(); 455 $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 ); 464 465 // Prime cache. 466 $found_1 = BP_XProfile_Group::get_group_ids( $params_1 ); 467 $this->assertEqualSets( $group_ids, $found_1 ); 468 469 $num_queries = $wpdb->num_queries; 470 471 $found_1 = BP_XProfile_Group::get_group_ids( $params_1 ); 472 $this->assertEqualSets( $group_ids, $found_1 ); 473 $this->assertSame( $num_queries, $wpdb->num_queries ); 474 475 // 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 ); 478 $this->assertNotSame( $num_queries, $wpdb->num_queries ); 479 } 480 481 /** 482 * @group BP7435 483 * @group cache 484 */ 485 public function test_group_ids_query_cache_should_be_busted_on_group_delete() { 486 $group_ids = array( 1 ); // Default group. 487 $group_ids[1] = self::factory()->xprofile_group->create(); 488 $group_ids[2] = self::factory()->xprofile_group->create(); 489 $group_ids[3] = self::factory()->xprofile_group->create(); 490 491 // Prime cache. 492 $found = BP_XProfile_Group::get_group_ids(); 493 $this->assertContains( $group_ids[1], $found ); 494 495 $g1 = new BP_XProfile_Group( $group_ids[1] ); 496 $g1->delete(); 497 498 $found = BP_XProfile_Group::get_group_ids(); 499 $this->assertNotContains( $group_ids[1], $found ); 500 } 501 502 /** 503 * @group BP7435 504 * @group cache 505 */ 506 public function test_group_ids_query_cache_should_be_busted_on_group_save() { 507 global $wpdb; 508 509 $group_ids = array( 1 ); // Default group. 510 $group_ids[1] = self::factory()->xprofile_group->create(); 511 $group_ids[2] = self::factory()->xprofile_group->create(); 512 $group_ids[3] = self::factory()->xprofile_group->create(); 513 514 // Prime cache. 515 $found = BP_XProfile_Group::get_group_ids(); 516 $this->assertContains( $group_ids[1], $found ); 517 518 $g1 = new BP_XProfile_Group( $group_ids[1] ); 519 $g1->save(); 520 521 $num_queries = $wpdb->num_queries; 522 523 $found = BP_XProfile_Group::get_group_ids(); 524 $this->assertNotSame( $num_queries, $wpdb->num_queries ); 525 } 526 527 /** 528 * @group BP7435 529 * @group cache 530 */ 531 public function test_group_ids_query_cache_should_be_busted_on_field_save() { 532 global $wpdb; 533 534 $group_ids = array( 1 ); // Default group. 535 $group_ids[1] = self::factory()->xprofile_group->create(); 536 $group_ids[2] = self::factory()->xprofile_group->create(); 537 $group_ids[3] = self::factory()->xprofile_group->create(); 538 539 $f = self::factory()->xprofile_field->create( array( 540 'field_group_id' => $group_ids[1], 541 ) ); 542 $field = new BP_XProfile_Field( $f ); 543 544 // Prime cache. 545 $found = BP_XProfile_Group::get_group_ids(); 546 $this->assertContains( $group_ids[1], $found ); 547 548 $field->save(); 549 550 $num_queries = $wpdb->num_queries; 551 552 $found = BP_XProfile_Group::get_group_ids(); 553 $this->assertNotSame( $num_queries, $wpdb->num_queries ); 554 } 555 556 /** 557 * @group BP7435 558 * @group cache 559 */ 560 public function test_group_ids_query_cache_should_be_busted_on_field_delete() { 561 $group_ids = array( 1 ); // Default group. 562 $group_ids[1] = self::factory()->xprofile_group->create(); 563 $group_ids[2] = self::factory()->xprofile_group->create(); 564 $group_ids[3] = self::factory()->xprofile_group->create(); 565 566 $f = self::factory()->xprofile_field->create( array( 567 'field_group_id' => $group_ids[1], 568 ) ); 569 $field = new BP_XProfile_Field( $f ); 570 571 $args = array( 572 'hide_empty_groups' => true, 573 ); 574 575 // Prime cache. 576 $found = BP_XProfile_Group::get_group_ids( $args ); 577 $this->assertContains( $group_ids[1], $found ); 578 579 $field->delete(); 580 581 $found = BP_XProfile_Group::get_group_ids( $args ); 582 $this->assertNotContains( $group_ids[1], $found ); 583 } 584 585 /** 586 * @group BP7435 587 * @group cache 588 */ 589 public function test_group_field_ids_query_cache() { 590 global $wpdb; 591 592 $group_id = self::factory()->xprofile_group->create(); 593 594 $f = self::factory()->xprofile_field->create( array( 595 'field_group_id' => $group_id, 596 ) ); 597 $field = new BP_XProfile_Field( $f ); 598 599 // Prime cache. 600 $found = BP_XProfile_Group::get_group_field_ids( array( $group_id ) ); 601 $this->assertContains( $f, $found ); 602 603 $num_queries = $wpdb->num_queries; 604 605 $found = BP_XProfile_Group::get_group_field_ids( array( $group_id ) ); 606 $this->assertContains( $f, $found ); 607 $this->assertSame( $num_queries, $wpdb->num_queries ); 608 } 609 610 /** 611 * @group BP7435 612 * @group cache 613 */ 614 public function test_group_field_ids_query_cache_should_be_busted_on_field_save() { 615 global $wpdb; 616 617 $group_id = self::factory()->xprofile_group->create(); 618 619 $f = self::factory()->xprofile_field->create( array( 620 'field_group_id' => $group_id, 621 ) ); 622 $field = new BP_XProfile_Field( $f ); 623 624 // Prime cache. 625 $found = BP_XProfile_Group::get_group_field_ids( array( $group_id ) ); 626 $this->assertContains( $f, $found ); 627 628 $field->save(); 629 $num_queries = $wpdb->num_queries; 630 631 $found = BP_XProfile_Group::get_group_field_ids( array( $group_id ) ); 632 $this->assertContains( $f, $found ); 633 $this->assertNotSame( $num_queries, $wpdb->num_queries ); 634 } 635 636 /** 637 * @group BP7435 638 * @group cache 639 */ 640 public function test_group_field_ids_query_cache_should_be_busted_on_field_delete() { 641 $group_id = self::factory()->xprofile_group->create(); 642 643 $f = self::factory()->xprofile_field->create( array( 644 'field_group_id' => $group_id, 645 ) ); 646 $field = new BP_XProfile_Field( $f ); 647 648 // Prime cache. 649 $found = BP_XProfile_Group::get_group_field_ids( array( $group_id ) ); 650 $this->assertContains( $f, $found ); 651 652 $field->delete(); 653 654 $found = BP_XProfile_Group::get_group_field_ids( array( $group_id ) ); 655 $this->assertNotContains( $f, $found ); 656 } 444 657 }
Note: See TracChangeset
for help on using the changeset viewer.