Query: Make sure the found_posts property of WP_Query is always an integer, to match the documented type.

This makes the property consistent with similar properties of other classes:
* `WP_Comment_Query::$found_comments`
* `WP_Network_Query::$found_networks`
* `WP_Site_Query::$found_sites`
* `WP_User_Query::$total_users`

Props birgire, PressLabs.
Fixes #42469.

git-svn-id: https://develop.svn.wordpress.org/trunk@48328 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Sergey Biryukov
2020-07-05 21:32:26 +00:00
parent 09921a5283
commit 530eedb538
2 changed files with 43 additions and 4 deletions

View File

@@ -652,12 +652,14 @@ class Tests_Post_Query extends WP_UnitTestCase {
}
add_filter( 'split_the_query', '__return_true' );
$q = new WP_Query(
array(
'post_type' => 'wptests_pt',
'posts_per_page' => 1,
)
);
remove_filter( 'split_the_query', '__return_true' );
$this->assertEquals( 2, $q->found_posts );
@@ -677,12 +679,14 @@ class Tests_Post_Query extends WP_UnitTestCase {
// ! $split_the_query
add_filter( 'split_the_query', '__return_false' );
$q = new WP_Query(
array(
'post_type' => 'wptests_pt',
'posts_per_page' => 1,
)
);
remove_filter( 'split_the_query', '__return_false' );
$this->assertEquals( 2, $q->found_posts );
@@ -721,4 +725,37 @@ class Tests_Post_Query extends WP_UnitTestCase {
$this->assertEquals( $expected, $q->found_posts );
}
/**
* @ticket 42469
*/
public function test_found_posts_should_be_integer_not_string() {
$this->post_id = self::factory()->post->create();
$q = new WP_Query(
array(
'posts_per_page' => 1,
)
);
$this->assertInternalType( 'int', $q->found_posts );
}
/**
* @ticket 42469
*/
public function test_found_posts_should_be_integer_even_if_found_posts_filter_returns_string_value() {
$this->post_id = self::factory()->post->create();
add_filter( 'found_posts', '__return_empty_string' );
$q = new WP_Query(
array(
'posts_per_page' => 1,
)
);
remove_filter( 'found_posts', '__return_empty_string' );
$this->assertInternalType( 'int', $q->found_posts );
}
}