mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2026-05-25 05:34:32 +00:00
Dynamic (non-explicitly declared) properties are deprecated as of PHP 8.2 and are expected to become a fatal error in PHP 9.0. In each of the cases included in this commit, one or more properties are dynamically created in the `set_up()` method of the test class. This commit explicitly declares these properties. As these properties are being declared on test classes, they are marked as private. Even though the original dynamic property was public, this should not be considered a backward compatibility break as this only involves test classes. Notes: * As these properties receive assignments during test runs or a one-time assignment, but the assignment uses a function call or variable access, these properties cannot be changed to class constants, but they should be declared explicitly as properties on the class. * In `Tests_Theme_CustomHeader`, the `$customize_manager` property is given a default value of `null`, same as it was already being reset to `null` in the `tear_down()` method. * In `Tests_Privacy_wpPrivacyProcessPersonalDataExportPage` and `Tests_Privacy_wpPrivacyGeneratePersonalDataExportFile` classes, the property name had a leading `_` underscore. This is an outdated PHP 4 practice to indicate a private property. As PHP 4 is no longer supported, the property has been renamed to `$orig_error_level`. * Along the same lines, in `Tests_Menu_Walker_Nav_Menu`, the property name also had a leading `_` underscore. The property has been renamed to `$orig_wp_nav_menu_max_depth`. * In the `Tests_Shortcode` class, three properties were already being (re)set in the `set_up() `method, while three others were being set for most tests via the `shortcode_test_shortcode_tag()` method or in the tests themselves. It is ensured now that all six properties are given their initial `null` value in the `set_up()` method and are explicitly declared. Additionally: * In the `Tests_User_Session` class, the `set_up()` method is incorrect. No assertions should be executed in fixture methods, but the `set_up()` method contains two assertions. This has not been addressed yet as it is outside the scope of this commit, but should be addressed at a later point in time. Follow-up to [12/tests], [218/tests], [374/tests], [384/tests], [986/tests], [1106/tests], [1239/tests], [28704], [29221], [29347], [32648], [36519], [37953], [38832], [40142], [40825], [43584], [43768], [44786], [45141], [53557], [53558], [53850], [53851], [53852], [53853], [53854], [53856], [53916], [53935], [53936], [53937], [53938], [53942], [53945]. Props jrf. See #56033. git-svn-id: https://develop.svn.wordpress.org/trunk@53948 602fd350-edb4-49c9-b593-d223f7449a82
48 lines
1.5 KiB
PHP
48 lines
1.5 KiB
PHP
<?php
|
|
|
|
class TestFactoryFor extends WP_UnitTestCase {
|
|
|
|
/**
|
|
* @var WP_UnitTest_Factory_For_Term
|
|
*/
|
|
private $category_factory;
|
|
|
|
public function set_up() {
|
|
parent::set_up();
|
|
$this->category_factory = new WP_UnitTest_Factory_For_Term( null, 'category' );
|
|
}
|
|
|
|
public function test_create_creates_a_category() {
|
|
$id = $this->category_factory->create();
|
|
$this->assertInstanceOf( 'WP_Term', get_term_by( 'id', $id, 'category' ) );
|
|
}
|
|
|
|
public function test_get_object_by_id_gets_an_object() {
|
|
$id = $this->category_factory->create();
|
|
$this->assertInstanceOf( 'WP_Term', $this->category_factory->get_object_by_id( $id ) );
|
|
}
|
|
|
|
public function test_get_object_by_id_gets_an_object_with_the_same_name() {
|
|
$id = $this->category_factory->create( array( 'name' => 'Boo' ) );
|
|
$object = $this->category_factory->get_object_by_id( $id );
|
|
$this->assertSame( 'Boo', $object->name );
|
|
}
|
|
|
|
public function test_the_taxonomy_argument_overrules_the_factory_taxonomy() {
|
|
$term_factory = new WP_UnitTest_Factory_For_term( null, 'category' );
|
|
$id = $term_factory->create( array( 'taxonomy' => 'post_tag' ) );
|
|
$term = get_term( $id, 'post_tag' );
|
|
$this->assertSame( $id, $term->term_id );
|
|
}
|
|
|
|
/**
|
|
* @ticket 32536
|
|
*/
|
|
public function test_term_factory_create_and_get_should_return_term_object() {
|
|
register_taxonomy( 'wptests_tax', 'post' );
|
|
$term = self::factory()->term->create_and_get( array( 'taxonomy' => 'wptests_tax' ) );
|
|
$this->assertIsObject( $term );
|
|
$this->assertNotEmpty( $term->term_id );
|
|
}
|
|
}
|