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:
Scott Taylor
2015-10-16 21:04:12 +00:00
parent 84272ff8cd
commit e70ebea219
169 changed files with 2631 additions and 2616 deletions

View File

@@ -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' ) );