Changeset 7761
- Timestamp:
- 09/30/2026 10:05:18 AM (4 weeks ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/tests/phpunit/testcases/core/abstraction.php
r7467 r7761 10 10 11 11 /** 12 * @covers ::bbp_setup_admin 13 * @covers ::bbp_setup_converter 14 */ 15 public function test_bbp_setup_admin_and_converter_are_reused() { 16 $admin = bbp_setup_admin(); 17 18 $this->assertInstanceOf( 'BBP_Admin', $admin ); 19 $this->assertSame( $admin, bbpress()->admin ); 20 $this->assertSame( $admin, bbp_setup_admin() ); 21 22 $converter = bbp_setup_converter(); 23 $this->assertInstanceOf( 'BBP_Converter', $converter ); 24 $this->assertSame( $converter, $admin->converter ); 25 $this->assertSame( $converter, bbp_setup_converter() ); 26 } 27 28 /** 12 29 * @covers ::bbp_get_global_object 13 * @todo Implement test_bbp_get_global_object().14 30 */ 15 31 public function test_bbp_get_global_object() { 16 // Remove the following lines when you implement this test. 17 $this->markTestIncomplete( 18 'This test has not been implemented yet.' 19 ); 32 $name = 'bbp_test_global_object'; 33 $object = new stdClass(); 34 $filter = function( $value, $global_name, $type, $default ) use ( $name, $object ) { 35 $this->assertSame( $name, $global_name ); 36 $this->assertSame( 'stdClass', $type ); 37 $this->assertSame( 'fallback', $default ); 38 $this->assertSame( $object, $value ); 39 return 'filtered'; 40 }; 41 42 try { 43 $this->assertSame( 'fallback', bbp_get_global_object( '', '', 'fallback' ) ); 44 $this->assertSame( 'fallback', bbp_get_global_object( $name, '', 'fallback' ) ); 45 46 $GLOBALS[ $name ] = null; 47 $this->assertSame( 'fallback', bbp_get_global_object( $name, '', 'fallback' ) ); 48 49 $GLOBALS[ $name ] = $object; 50 $this->assertSame( $object, bbp_get_global_object( $name ) ); 51 $this->assertSame( 'fallback', bbp_get_global_object( $name, 'WP_Query', 'fallback' ) ); 52 53 add_filter( 'bbp_get_global_object', $filter, 10, 4 ); 54 $this->assertSame( 'filtered', bbp_get_global_object( $name, 'stdClass', 'fallback' ) ); 55 } finally { 56 remove_filter( 'bbp_get_global_object', $filter, 10 ); 57 unset( $GLOBALS[ $name ] ); 58 } 59 } 60 61 /** 62 * @covers ::bbp_get_wp_query 63 */ 64 public function test_bbp_get_wp_query() { 65 $this->assertSame( $GLOBALS['wp_query'], bbp_get_wp_query() ); 66 } 67 68 /** 69 * @covers ::bbp_get_wp_roles 70 */ 71 public function test_bbp_get_wp_roles() { 72 $this->assertSame( $GLOBALS['wp_roles'], bbp_get_wp_roles() ); 20 73 } 21 74 22 75 /** 23 76 * @covers ::bbp_db 24 * @todo Implement test_bbp_db().25 77 */ 26 78 public function test_bbp_db() { 27 // Remove the following lines when you implement this test. 28 $this->markTestIncomplete( 29 'This test has not been implemented yet.' 30 ); 79 $this->assertSame( $GLOBALS['wpdb'], bbp_db() ); 31 80 } 32 81 … … 110 159 $this->assertTrue( bbp_bump_count_meta( 'user', $user_id, '_bbp_test_count', 1 ) ); 111 160 $this->assertSame( 1, (int) get_user_meta( $user_id, '_bbp_test_count', true ) ); 161 $this->assertTrue( bbp_bump_count_meta( 'user', $user_id, '_bbp_test_count', 1 ) ); 162 $this->assertSame( 2, (int) get_user_meta( $user_id, '_bbp_test_count', true ) ); 112 163 $this->assertTrue( bbp_bump_count_meta( 'term', $term_id, '_bbp_test_count', 2 ) ); 113 164 $this->assertSame( 2, (int) get_term_meta( $term_id, '_bbp_test_count', true ) ); 165 $this->assertTrue( bbp_bump_count_meta( 'term', $term_id, '_bbp_test_count', 2 ) ); 166 $this->assertSame( 4, (int) get_term_meta( $term_id, '_bbp_test_count', true ) ); 114 167 $this->assertTrue( bbp_bump_count_meta( 'comment', $comment_id, '_bbp_test_count', 3 ) ); 115 168 $this->assertSame( 3, (int) get_comment_meta( $comment_id, '_bbp_test_count', true ) ); 169 $this->assertTrue( bbp_bump_count_meta( 'comment', $comment_id, '_bbp_test_count', 3 ) ); 170 $this->assertSame( 6, (int) get_comment_meta( $comment_id, '_bbp_test_count', true ) ); 116 171 } 117 172 … … 375 430 /** 376 431 * @covers ::bbp_rewrite 377 * @todo Implement test_bbp_rewrite().378 432 */ 379 433 public function test_bbp_rewrite() { 380 // Remove the following lines when you implement this test. 381 $this->markTestIncomplete( 382 'This test has not been implemented yet.' 383 ); 434 $filter = function( $value, $name, $type, $default ) { 435 if ( 'wp_rewrite' === $name ) { 436 $this->assertSame( 'WP_Rewrite', $type ); 437 $this->assertSame( '', $default->root ); 438 $this->assertSame( 'page', $default->pagination_base ); 439 } 440 441 return $value; 442 }; 443 444 add_filter( 'bbp_get_global_object', $filter, 10, 4 ); 445 try { 446 $this->assertSame( $GLOBALS['wp_rewrite'], bbp_rewrite() ); 447 448 $rewrite = $GLOBALS['wp_rewrite']; 449 unset( $GLOBALS['wp_rewrite'] ); 450 try { 451 $fallback = bbp_rewrite(); 452 $this->assertSame( '', $fallback->root ); 453 $this->assertSame( 'page', $fallback->pagination_base ); 454 } finally { 455 $GLOBALS['wp_rewrite'] = $rewrite; 456 } 457 } finally { 458 remove_filter( 'bbp_get_global_object', $filter, 10 ); 459 } 384 460 } 385 461 386 462 /** 387 463 * @covers ::bbp_get_root_url 388 * @todo Implement test_bbp_get_root_url().389 464 */ 390 465 public function test_bbp_get_root_url() { 391 // Remove the following lines when you implement this test. 392 $this->markTestIncomplete( 393 'This test has not been implemented yet.' 394 ); 466 $this->assertSame( '', bbp_get_root_url() ); 467 468 $rewrite_filter = function() { 469 return new stdClass(); 470 }; 471 472 add_filter( 'bbp_get_global_object', $rewrite_filter ); 473 try { 474 $this->assertSame( '', bbp_get_root_url() ); 475 } finally { 476 remove_filter( 'bbp_get_global_object', $rewrite_filter ); 477 } 478 479 $filter = function() { 480 return '/filtered/'; 481 }; 482 483 add_filter( 'bbp_get_root_url', $filter ); 484 try { 485 $this->assertSame( '/filtered/', bbp_get_root_url() ); 486 } finally { 487 remove_filter( 'bbp_get_root_url', $filter ); 488 } 395 489 } 396 490 397 491 /** 398 492 * @covers ::bbp_get_paged_slug 399 * @todo Implement test_bbp_get_paged_slug().400 493 */ 401 494 public function test_bbp_get_paged_slug() { 402 // Remove the following lines when you implement this test. 403 $this->markTestIncomplete( 404 'This test has not been implemented yet.' 405 ); 495 $this->assertSame( 'page', bbp_get_paged_slug() ); 496 497 $rewrite_filter = function() { 498 return new stdClass(); 499 }; 500 501 add_filter( 'bbp_get_global_object', $rewrite_filter ); 502 try { 503 $this->assertSame( 'page', bbp_get_paged_slug() ); 504 } finally { 505 remove_filter( 'bbp_get_global_object', $rewrite_filter ); 506 } 507 508 $filter = function() { 509 return 'filtered-page'; 510 }; 511 512 add_filter( 'bbp_get_paged_slug', $filter ); 513 try { 514 $this->assertSame( 'filtered-page', bbp_get_paged_slug() ); 515 } finally { 516 remove_filter( 'bbp_get_paged_slug', $filter ); 517 } 406 518 } 407 519 408 520 /** 409 521 * @covers ::bbp_use_pretty_urls 410 * @todo Implement test_bbp_use_pretty_urls().411 522 */ 412 523 public function test_bbp_use_pretty_urls() { 413 // Remove the following lines when you implement this test. 414 $this->markTestIncomplete( 415 'This test has not been implemented yet.' 416 ); 524 $this->assertFalse( bbp_use_pretty_urls() ); 525 526 $this->set_permalink_structure( '/%postname%/' ); 527 $this->assertTrue( bbp_use_pretty_urls() ); 528 $this->set_permalink_structure(); 529 530 $rewrite_filter = function() { 531 return new stdClass(); 532 }; 533 534 add_filter( 'bbp_get_global_object', $rewrite_filter ); 535 try { 536 $this->assertFalse( bbp_use_pretty_urls() ); 537 } finally { 538 remove_filter( 'bbp_get_global_object', $rewrite_filter ); 539 } 540 541 add_filter( 'bbp_pretty_urls', '__return_true' ); 542 try { 543 $this->assertTrue( bbp_use_pretty_urls() ); 544 } finally { 545 remove_filter( 'bbp_pretty_urls', '__return_true' ); 546 } 547 548 add_filter( 'bbp_pretty_urls', '__return_false' ); 549 try { 550 $this->assertFalse( bbp_use_pretty_urls() ); 551 } finally { 552 remove_filter( 'bbp_pretty_urls', '__return_false' ); 553 } 554 } 555 556 /** 557 * @covers ::bbp_make_first_page_canonical 558 */ 559 public function test_bbp_make_first_page_canonical() { 560 add_filter( 'bbp_pretty_urls', '__return_true' ); 561 try { 562 $this->assertSame( '/forums/', bbp_make_first_page_canonical( '/forums/page/1/' ) ); 563 $this->assertSame( '/forums/page/10/', bbp_make_first_page_canonical( '/forums/page/10/' ) ); 564 } finally { 565 remove_filter( 'bbp_pretty_urls', '__return_true' ); 566 } 567 568 add_filter( 'bbp_pretty_urls', '__return_false' ); 569 try { 570 $this->assertSame( '/forums/?foo=1&bar=2', bbp_make_first_page_canonical( '/forums/?foo=1&paged=1&bar=2' ) ); 571 $this->assertSame( '/forums/?foo=1&paged=10', bbp_make_first_page_canonical( '/forums/?foo=1&paged=10' ) ); 572 } finally { 573 remove_filter( 'bbp_pretty_urls', '__return_false' ); 574 } 575 576 $this->assertSame( '', bbp_make_first_page_canonical() ); 577 578 $filter = function( $canonical, $original ) { 579 $this->assertSame( '/forums/', $canonical ); 580 $this->assertSame( '/forums/page/1/', $original ); 581 return '/filtered/'; 582 }; 583 584 add_filter( 'bbp_pretty_urls', '__return_true' ); 585 add_filter( 'bbp_make_first_page_canonical', $filter, 10, 2 ); 586 try { 587 $this->assertSame( '/filtered/', bbp_make_first_page_canonical( '/forums/page/1/' ) ); 588 } finally { 589 remove_filter( 'bbp_make_first_page_canonical', $filter ); 590 remove_filter( 'bbp_pretty_urls', '__return_true' ); 591 } 592 } 593 594 /** 595 * @covers ::bbp_paginate_links 596 */ 597 public function test_bbp_paginate_links_returns_requested_link_type() { 598 $links = bbp_paginate_links( array( 599 'base' => 'https://example.org/forums/%_%', 600 'format' => '?paged=%#%', 601 'total' => 3, 602 'current' => 2, 603 'prev_next' => false, 604 'type' => 'array', 605 ) ); 606 607 $this->assertIsArray( $links ); 608 $this->assertCount( 3, $links ); 609 $this->assertStringContainsString( 'paged=3', implode( ' ', $links ) ); 610 } 611 612 /** 613 * @covers ::bbp_paginate_links 614 */ 615 public function test_bbp_paginate_links_canonicalizes_the_first_page() { 616 add_filter( 'bbp_pretty_urls', '__return_true' ); 617 try { 618 $links = bbp_paginate_links( array( 619 'base' => 'https://example.org/forums/page/%#%/', 620 'total' => 2, 621 'current' => 2, 622 'prev_next' => false, 623 ) ); 624 625 $this->assertStringContainsString( 'href="https://example.org/forums/"', $links ); 626 $this->assertStringNotContainsString( '/page/1/', $links ); 627 } finally { 628 remove_filter( 'bbp_pretty_urls', '__return_true' ); 629 } 630 } 631 632 /** 633 * @covers ::bbp_paginate_links 634 */ 635 public function test_bbp_paginate_links_adds_view_all_when_requested() { 636 $view_all = function() { 637 return true; 638 }; 639 640 add_filter( 'bbp_get_view_all', $view_all ); 641 try { 642 $links = bbp_paginate_links( array( 643 'base' => 'https://example.org/forums/%_%', 644 'format' => '?paged=%#%', 645 'total' => 2, 646 'current' => 1, 647 'prev_next' => false, 648 ) ); 649 650 $this->assertStringContainsString( 'view=all', $links ); 651 } finally { 652 remove_filter( 'bbp_get_view_all', $view_all ); 653 } 654 } 655 656 /** 657 * @covers ::bbp_get_major_wp_version 658 */ 659 public function test_bbp_get_major_wp_version() { 660 $version = $GLOBALS['wp_version']; 661 662 try { 663 $GLOBALS['wp_version'] = '7.1.2'; 664 $this->assertSame( 7.1, bbp_get_major_wp_version() ); 665 } finally { 666 $GLOBALS['wp_version'] = $version; 667 } 668 } 669 670 /** 671 * @covers ::bbp_switch_to_site 672 * @covers ::bbp_restore_current_site 673 */ 674 public function test_bbp_switch_to_site_and_restore_current_site() { 675 $original_site = get_current_blog_id(); 676 677 if ( is_multisite() ) { 678 $site_id = self::factory()->blog->create(); 679 bbp_switch_to_site( $site_id ); 680 try { 681 $this->assertSame( $site_id, get_current_blog_id() ); 682 } finally { 683 bbp_restore_current_site(); 684 } 685 } else { 686 bbp_switch_to_site( 999 ); 687 bbp_restore_current_site(); 688 } 689 690 $this->assertSame( $original_site, get_current_blog_id() ); 691 if ( is_multisite() ) { 692 $this->assertFalse( ms_is_switched() ); 693 } 694 } 695 696 /** 697 * @covers ::bbp_default_intercept 698 * @covers ::bbp_is_intercepted 699 */ 700 public function test_bbp_default_intercept_and_is_intercepted() { 701 $default = bbp_default_intercept(); 702 703 $this->assertIsString( $default ); 704 $this->assertNotSame( '', $default ); 705 $this->assertSame( $default, bbp_default_intercept() ); 706 $this->assertFalse( bbp_is_intercepted( $default ) ); 707 $this->assertTrue( bbp_is_intercepted( 'other' ) ); 708 } 709 710 /** 711 * @covers ::bbp_maybe_intercept 712 */ 713 public function test_bbp_maybe_intercept() { 714 $default = bbp_default_intercept(); 715 $filter = function( $value ) { 716 return 'intercepted'; 717 }; 718 719 $this->assertSame( $default, bbp_maybe_intercept( 'bbp_test_action' ) ); 720 $this->assertSame( $default, bbp_maybe_intercept( 'bbp_test_action', array( 'original' ) ) ); 721 722 add_filter( 'pre_bbp_test_action', $filter ); 723 try { 724 $this->assertSame( 'intercepted', bbp_maybe_intercept( 'bbp_test_action', array( 'original' ) ) ); 725 $this->assertSame( 'intercepted', bbp_maybe_intercept( 'pre_bbp_test_action', array( 'original' ) ) ); 726 } finally { 727 remove_filter( 'pre_bbp_test_action', $filter ); 728 } 729 } 730 731 /** 732 * @covers ::bbp_get_empty_datetime 733 */ 734 public function test_bbp_get_empty_datetime() { 735 $filter = function( $value, $db_version ) { 736 $this->assertSame( '0000-00-00 00:00:00', $value ); 737 $this->assertSame( bbp_db()->db_version(), $db_version ); 738 return '1970-01-01 00:00:00'; 739 }; 740 741 $this->assertSame( '0000-00-00 00:00:00', bbp_get_empty_datetime() ); 742 add_filter( 'bbp_get_default_zero_date', $filter, 10, 2 ); 743 try { 744 $this->assertSame( '1970-01-01 00:00:00', bbp_get_empty_datetime() ); 745 } finally { 746 remove_filter( 'bbp_get_default_zero_date', $filter ); 747 } 417 748 } 418 749 }
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)