mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2026-06-28 14:20:15 +00:00
Unit Tests: one $factory to rule them all, and it shall be static.
Using more than one instance of `WP_UnitTest_Factory` causes all kinds of craziness, due to out-of-sync internal generator sequences. Since we want to use `setUpBeforeClass`, we were creating ad hoc instances. To avoid that, we were injecting one `static` instance via Dependency Injection in `wpSetUpBeforeClass`. All tests should really use the `static` instance, so we will remove the instance prop `$factory`. Replace `$this->factory` with `self::$factory` over 2000 times. Rewrite all of the tests that were hard-coding dynamic values. #YOLOFriday git-svn-id: https://develop.svn.wordpress.org/trunk@35225 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
@@ -14,8 +14,8 @@ class Tests_Query extends WP_UnitTestCase {
|
||||
*
|
||||
*/
|
||||
function test_nested_loop_reset_postdata() {
|
||||
$post_id = $this->factory->post->create();
|
||||
$nested_post_id = $this->factory->post->create();
|
||||
$post_id = self::$factory->post->create();
|
||||
$nested_post_id = self::$factory->post->create();
|
||||
|
||||
$first_query = new WP_Query( array( 'post__in' => array( $post_id ) ) );
|
||||
while ( $first_query->have_posts() ) { $first_query->the_post();
|
||||
@@ -43,7 +43,7 @@ class Tests_Query extends WP_UnitTestCase {
|
||||
* @ticket 25380
|
||||
*/
|
||||
function test_pre_posts_per_page() {
|
||||
$this->factory->post->create_many( 10 );
|
||||
self::$factory->post->create_many( 10 );
|
||||
|
||||
add_action( 'pre_get_posts', array( $this, 'filter_posts_per_page' ) );
|
||||
|
||||
@@ -61,7 +61,7 @@ class Tests_Query extends WP_UnitTestCase {
|
||||
*/
|
||||
function test_tag_queried_object() {
|
||||
$slug = 'tag-slug-26627';
|
||||
$this->factory->tag->create( array( 'slug' => $slug ) );
|
||||
self::$factory->tag->create( array( 'slug' => $slug ) );
|
||||
$tag = get_term_by( 'slug', $slug, 'post_tag' );
|
||||
|
||||
add_action( 'pre_get_posts', array( $this, '_tag_queried_object' ), 11 );
|
||||
@@ -94,11 +94,11 @@ class Tests_Query extends WP_UnitTestCase {
|
||||
// Don't override the args provided below.
|
||||
remove_action( 'pre_get_posts', array( $this, 'pre_get_posts_tax_category_tax_query' ) );
|
||||
register_taxonomy( 'wptests_tax', 'post' );
|
||||
$terms = $this->factory->term->create_many( 2, array(
|
||||
$terms = self::$factory->term->create_many( 2, array(
|
||||
'taxonomy' => 'wptests_tax',
|
||||
) );
|
||||
|
||||
$posts = $this->factory->post->create_many( 2 );
|
||||
$posts = self::$factory->post->create_many( 2 );
|
||||
|
||||
wp_set_object_terms( $posts[0], array( $terms[0] ), 'wptests_tax' );
|
||||
wp_set_object_terms( $posts[1], array( $terms[1] ), 'wptests_tax' );
|
||||
@@ -130,18 +130,18 @@ class Tests_Query extends WP_UnitTestCase {
|
||||
}
|
||||
|
||||
public function test_cat_querystring_single_term() {
|
||||
$c1 = $this->factory->category->create( array(
|
||||
$c1 = self::$factory->category->create( array(
|
||||
'name' => 'Test Category 1',
|
||||
'slug' => 'test1',
|
||||
) );
|
||||
$c2 = $this->factory->category->create( array(
|
||||
$c2 = self::$factory->category->create( array(
|
||||
'name' => 'Test Category 2',
|
||||
'slug' => 'test2',
|
||||
) );
|
||||
|
||||
$p1 = $this->factory->post->create();
|
||||
$p2 = $this->factory->post->create();
|
||||
$p3 = $this->factory->post->create();
|
||||
$p1 = self::$factory->post->create();
|
||||
$p2 = self::$factory->post->create();
|
||||
$p3 = self::$factory->post->create();
|
||||
|
||||
wp_set_object_terms( $p1, $c1, 'category' );
|
||||
wp_set_object_terms( $p2, array( $c1, $c2 ), 'category' );
|
||||
@@ -159,23 +159,23 @@ class Tests_Query extends WP_UnitTestCase {
|
||||
}
|
||||
|
||||
public function test_category_querystring_multiple_terms_comma_separated() {
|
||||
$c1 = $this->factory->category->create( array(
|
||||
$c1 = self::$factory->category->create( array(
|
||||
'name' => 'Test Category 1',
|
||||
'slug' => 'test1',
|
||||
) );
|
||||
$c2 = $this->factory->category->create( array(
|
||||
$c2 = self::$factory->category->create( array(
|
||||
'name' => 'Test Category 2',
|
||||
'slug' => 'test2',
|
||||
) );
|
||||
$c3 = $this->factory->category->create( array(
|
||||
$c3 = self::$factory->category->create( array(
|
||||
'name' => 'Test Category 3',
|
||||
'slug' => 'test3',
|
||||
) );
|
||||
|
||||
$p1 = $this->factory->post->create();
|
||||
$p2 = $this->factory->post->create();
|
||||
$p3 = $this->factory->post->create();
|
||||
$p4 = $this->factory->post->create();
|
||||
$p1 = self::$factory->post->create();
|
||||
$p2 = self::$factory->post->create();
|
||||
$p3 = self::$factory->post->create();
|
||||
$p4 = self::$factory->post->create();
|
||||
|
||||
wp_set_object_terms( $p1, $c1, 'category' );
|
||||
wp_set_object_terms( $p2, array( $c1, $c2 ), 'category' );
|
||||
@@ -197,23 +197,23 @@ class Tests_Query extends WP_UnitTestCase {
|
||||
* @ticket 33532
|
||||
*/
|
||||
public function test_category_querystring_multiple_terms_formatted_as_array() {
|
||||
$c1 = $this->factory->category->create( array(
|
||||
$c1 = self::$factory->category->create( array(
|
||||
'name' => 'Test Category 1',
|
||||
'slug' => 'test1',
|
||||
) );
|
||||
$c2 = $this->factory->category->create( array(
|
||||
$c2 = self::$factory->category->create( array(
|
||||
'name' => 'Test Category 2',
|
||||
'slug' => 'test2',
|
||||
) );
|
||||
$c3 = $this->factory->category->create( array(
|
||||
$c3 = self::$factory->category->create( array(
|
||||
'name' => 'Test Category 3',
|
||||
'slug' => 'test3',
|
||||
) );
|
||||
|
||||
$p1 = $this->factory->post->create();
|
||||
$p2 = $this->factory->post->create();
|
||||
$p3 = $this->factory->post->create();
|
||||
$p4 = $this->factory->post->create();
|
||||
$p1 = self::$factory->post->create();
|
||||
$p2 = self::$factory->post->create();
|
||||
$p3 = self::$factory->post->create();
|
||||
$p4 = self::$factory->post->create();
|
||||
|
||||
wp_set_object_terms( $p1, $c1, 'category' );
|
||||
wp_set_object_terms( $p2, array( $c1, $c2 ), 'category' );
|
||||
@@ -233,18 +233,18 @@ class Tests_Query extends WP_UnitTestCase {
|
||||
|
||||
|
||||
public function test_tag_querystring_single_term() {
|
||||
$t1 = $this->factory->tag->create_and_get( array(
|
||||
$t1 = self::$factory->tag->create_and_get( array(
|
||||
'name' => 'Test Tag 1',
|
||||
'slug' => 'test1',
|
||||
) );
|
||||
$t2 = $this->factory->tag->create_and_get( array(
|
||||
$t2 = self::$factory->tag->create_and_get( array(
|
||||
'name' => 'Test Tag 2',
|
||||
'slug' => 'test2',
|
||||
) );
|
||||
|
||||
$p1 = $this->factory->post->create();
|
||||
$p2 = $this->factory->post->create();
|
||||
$p3 = $this->factory->post->create();
|
||||
$p1 = self::$factory->post->create();
|
||||
$p2 = self::$factory->post->create();
|
||||
$p3 = self::$factory->post->create();
|
||||
|
||||
wp_set_object_terms( $p1, $t1->slug, 'post_tag' );
|
||||
wp_set_object_terms( $p2, array( $t1->slug, $t2->slug ), 'post_tag' );
|
||||
@@ -262,23 +262,23 @@ class Tests_Query extends WP_UnitTestCase {
|
||||
}
|
||||
|
||||
public function test_tag_querystring_multiple_terms_comma_separated() {
|
||||
$c1 = $this->factory->tag->create_and_get( array(
|
||||
$c1 = self::$factory->tag->create_and_get( array(
|
||||
'name' => 'Test Tag 1',
|
||||
'slug' => 'test1',
|
||||
) );
|
||||
$c2 = $this->factory->tag->create_and_get( array(
|
||||
$c2 = self::$factory->tag->create_and_get( array(
|
||||
'name' => 'Test Tag 2',
|
||||
'slug' => 'test2',
|
||||
) );
|
||||
$c3 = $this->factory->tag->create_and_get( array(
|
||||
$c3 = self::$factory->tag->create_and_get( array(
|
||||
'name' => 'Test Tag 3',
|
||||
'slug' => 'test3',
|
||||
) );
|
||||
|
||||
$p1 = $this->factory->post->create();
|
||||
$p2 = $this->factory->post->create();
|
||||
$p3 = $this->factory->post->create();
|
||||
$p4 = $this->factory->post->create();
|
||||
$p1 = self::$factory->post->create();
|
||||
$p2 = self::$factory->post->create();
|
||||
$p3 = self::$factory->post->create();
|
||||
$p4 = self::$factory->post->create();
|
||||
|
||||
wp_set_object_terms( $p1, $c1->slug, 'post_tag' );
|
||||
wp_set_object_terms( $p2, array( $c1->slug, $c2->slug ), 'post_tag' );
|
||||
@@ -300,23 +300,23 @@ class Tests_Query extends WP_UnitTestCase {
|
||||
* @ticket 33532
|
||||
*/
|
||||
public function test_tag_querystring_multiple_terms_formatted_as_array() {
|
||||
$c1 = $this->factory->tag->create_and_get( array(
|
||||
$c1 = self::$factory->tag->create_and_get( array(
|
||||
'name' => 'Test Tag 1',
|
||||
'slug' => 'test1',
|
||||
) );
|
||||
$c2 = $this->factory->tag->create_and_get( array(
|
||||
$c2 = self::$factory->tag->create_and_get( array(
|
||||
'name' => 'Test Tag 2',
|
||||
'slug' => 'test2',
|
||||
) );
|
||||
$c3 = $this->factory->tag->create_and_get( array(
|
||||
$c3 = self::$factory->tag->create_and_get( array(
|
||||
'name' => 'Test Tag 3',
|
||||
'slug' => 'test3',
|
||||
) );
|
||||
|
||||
$p1 = $this->factory->post->create();
|
||||
$p2 = $this->factory->post->create();
|
||||
$p3 = $this->factory->post->create();
|
||||
$p4 = $this->factory->post->create();
|
||||
$p1 = self::$factory->post->create();
|
||||
$p2 = self::$factory->post->create();
|
||||
$p3 = self::$factory->post->create();
|
||||
$p4 = self::$factory->post->create();
|
||||
|
||||
wp_set_object_terms( $p1, $c1->slug, 'post_tag' );
|
||||
wp_set_object_terms( $p2, array( $c1->slug, $c2->slug ), 'post_tag' );
|
||||
@@ -341,9 +341,9 @@ class Tests_Query extends WP_UnitTestCase {
|
||||
wp_insert_term( 'test2', 'test_tax_cat' );
|
||||
wp_insert_term( 'test3', 'test_tax_cat' );
|
||||
|
||||
$p1 = $this->factory->post->create();
|
||||
$p2 = $this->factory->post->create();
|
||||
$p3 = $this->factory->post->create();
|
||||
$p1 = self::$factory->post->create();
|
||||
$p2 = self::$factory->post->create();
|
||||
$p3 = self::$factory->post->create();
|
||||
|
||||
wp_set_object_terms( $p1, 'test1', 'test_tax_cat' );
|
||||
wp_set_object_terms( $p2, array( 'test1', 'test2' ), 'test_tax_cat' );
|
||||
@@ -365,10 +365,10 @@ class Tests_Query extends WP_UnitTestCase {
|
||||
wp_insert_term( 'test2', 'test_tax_cat' );
|
||||
wp_insert_term( 'test3', 'test_tax_cat' );
|
||||
|
||||
$p1 = $this->factory->post->create();
|
||||
$p2 = $this->factory->post->create();
|
||||
$p3 = $this->factory->post->create();
|
||||
$p4 = $this->factory->post->create();
|
||||
$p1 = self::$factory->post->create();
|
||||
$p2 = self::$factory->post->create();
|
||||
$p3 = self::$factory->post->create();
|
||||
$p4 = self::$factory->post->create();
|
||||
|
||||
wp_set_object_terms( $p1, 'test1', 'test_tax_cat' );
|
||||
wp_set_object_terms( $p2, array( 'test1', 'test2' ), 'test_tax_cat' );
|
||||
@@ -394,10 +394,10 @@ class Tests_Query extends WP_UnitTestCase {
|
||||
wp_insert_term( 'test2', 'test_tax_cat' );
|
||||
wp_insert_term( 'test3', 'test_tax_cat' );
|
||||
|
||||
$p1 = $this->factory->post->create();
|
||||
$p2 = $this->factory->post->create();
|
||||
$p3 = $this->factory->post->create();
|
||||
$p4 = $this->factory->post->create();
|
||||
$p1 = self::$factory->post->create();
|
||||
$p2 = self::$factory->post->create();
|
||||
$p3 = self::$factory->post->create();
|
||||
$p4 = self::$factory->post->create();
|
||||
|
||||
wp_set_object_terms( $p1, 'test1', 'test_tax_cat' );
|
||||
wp_set_object_terms( $p2, array( 'test1', 'test2' ), 'test_tax_cat' );
|
||||
@@ -417,7 +417,7 @@ class Tests_Query extends WP_UnitTestCase {
|
||||
* @ticket 31355
|
||||
*/
|
||||
public function test_pages_dont_404_when_queried_post_id_is_modified() {
|
||||
$post_id = $this->factory->post->create( array( 'post_title' => 'A Test Page', 'post_type' => 'page' ) );
|
||||
$post_id = self::$factory->post->create( array( 'post_title' => 'A Test Page', 'post_type' => 'page' ) );
|
||||
|
||||
add_action( 'parse_query', array( $this, 'filter_parse_query_to_modify_queried_post_id' ) );
|
||||
|
||||
@@ -438,7 +438,7 @@ class Tests_Query extends WP_UnitTestCase {
|
||||
|
||||
register_post_type( 'guide', array( 'name' => 'Guide', 'public' => true, 'hierarchical' => true ) );
|
||||
$wp_rewrite->flush_rules();
|
||||
$post_id = $this->factory->post->create( array( 'post_title' => 'A Test Guide', 'post_type' => 'guide' ) );
|
||||
$post_id = self::$factory->post->create( array( 'post_title' => 'A Test Guide', 'post_type' => 'guide' ) );
|
||||
|
||||
add_action( 'parse_query', array( $this, 'filter_parse_query_to_modify_queried_post_id' ) );
|
||||
|
||||
|
||||
Reference in New Issue
Block a user