Files
wordpress-develop/tests/phpunit/tests/user/countUserPosts.php
Boone Gorges 067fa3702e In PHPUnit test classes, parent::tearDown() should be the last thing done in tearDown() methods.
`WP_UnitTestCase::tearDown()` restores the test environment to the default
conditions, including rolling back the MySQL transaction that the test takes
place in, resetting globals, and unhooking test-specific filters. As such, all
teardown routines for specific tests should happen before the parent class's
`tearDown()` method is called. Failure to do so can cause database locks on
certain configurations, among other problems.

See #31537.

git-svn-id: https://develop.svn.wordpress.org/trunk@31622 602fd350-edb4-49c9-b593-d223f7449a82
2015-03-05 13:14:15 +00:00

82 lines
2.0 KiB
PHP

<?php
/**
* @group user
* @group post
*/
class Tests_User_CountUserPosts extends WP_UnitTestCase {
static $user_id;
static $post_ids = array();
public static function setUpBeforeClass() {
$factory = new WP_UnitTest_Factory();
self::$user_id = $factory->user->create( array(
'role' => 'author',
'user_login' => 'count_user_posts_user',
'user_email' => 'count_user_posts_user@example.com',
) );
self::$post_ids = $factory->post->create_many( 4, array(
'post_author' => self::$user_id,
'post_type' => 'post',
) );
self::$post_ids = array_merge( self::$post_ids, $factory->post->create_many( 3, array(
'post_author' => self::$user_id,
'post_type' => 'wptests_pt',
) ) );
self::$post_ids = array_merge( self::$post_ids, $factory->post->create_many( 2, array(
'post_author' => 12345,
'post_type' => 'wptests_pt',
) ) );
self::$post_ids = array_merge( self::$post_ids, $factory->post->create_many( 1, array(
'post_author' => 12345,
'post_type' => 'wptests_pt',
) ) );
self::commit_transaction();
}
public static function tearDownAfterClass() {
if ( is_multisite() ) {
wpmu_delete_user( self::$user_id );
} else {
wp_delete_user( self::$user_id );
}
foreach ( self::$post_ids as $post_id ) {
wp_delete_post( $post_id, true );
}
self::commit_transaction();
}
public function setUp() {
parent::setUp();
register_post_type( 'wptests_pt' );
}
public function tearDown() {
_unregister_post_type( 'wptests_pt' );
parent::tearDown();
}
public function test_count_user_posts_post_type_should_default_to_post() {
$this->assertEquals( 4, count_user_posts( self::$user_id ) );
}
/**
* @ticket 21364
*/
public function test_count_user_posts_post_type_post() {
$this->assertEquals( 4, count_user_posts( self::$user_id, 'post' ) );
}
/**
* @ticket 21364
*/
public function test_count_user_posts_post_type_cpt() {
$this->assertEquals( 3, count_user_posts( self::$user_id, 'wptests_pt' ) );
}
}