From bb3bf225472714d7ae75acc87bb20c30f5a5ebd3 Mon Sep 17 00:00:00 2001 From: Sergey Biryukov Date: Mon, 19 Jul 2021 13:29:45 +0000 Subject: [PATCH] Tests: Use more appropriate assertions in various tests. This replaces instances of `assertFalse( stripos( ... ) )` with `assertStringNotContainsString()` or `assertStringNotContainsStringIgnoringCase()` to use native PHPUnit functionality. Going forward, these methods introduced in PHPUnit 7.5 should be used for similar assertions: * `assertStringContainsString()` * `assertStringContainsStringIgnoringCase()` * `assertStringNotContainsString()` * `assertStringNotContainsStringIgnoringCase()` As WordPress currently uses PHPUnit 5.7.x to run tests on PHP 5.6, polyfills for these methods are now added to the `WP_UnitTestCase` class for PHPUnit < 7.5. Follow-up to [51335], [51337], [51367], [51397], [51403], [51404], [51436], [51438], [51448], [51449], [51451], [51453], [51454]. See #53363. git-svn-id: https://develop.svn.wordpress.org/trunk@51461 602fd350-edb4-49c9-b593-d223f7449a82 --- tests/phpunit/includes/testcase.php | 32 +++++++++++++++++++ .../rest-api/rest-categories-controller.php | 6 ++-- .../rest-api/rest-comments-controller.php | 6 ++-- .../rest-pattern-directory-controller.php | 2 +- .../tests/rest-api/rest-posts-controller.php | 4 +-- .../rest-api/rest-revisions-controller.php | 2 +- .../tests/rest-api/rest-tags-controller.php | 6 ++-- .../tests/rest-api/rest-users-controller.php | 6 ++-- 8 files changed, 48 insertions(+), 16 deletions(-) diff --git a/tests/phpunit/includes/testcase.php b/tests/phpunit/includes/testcase.php index 5fea8aa67b..248d853132 100644 --- a/tests/phpunit/includes/testcase.php +++ b/tests/phpunit/includes/testcase.php @@ -389,6 +389,22 @@ class WP_UnitTestCase extends WP_UnitTestCase_Base { static::assertContains( $needle, $haystack, $message ); } + /** + * Asserts that a string haystack contains a needle (case-insensitive). + * + * This method has been backported from a more recent PHPUnit version, + * as tests running on PHP 5.6 use PHPUnit 5.7.x. + * + * @since 5.9.0 + * + * @param string $needle The string to search for. + * @param string $haystack The string to treat as the haystack. + * @param string $message Optional. Message to display when the assertion fails. + */ + public static function assertStringContainsStringIgnoringCase( $needle, $haystack, $message = '' ) { + static::assertContains( $needle, $haystack, $message, true ); + } + /** * Asserts that a string haystack does not contain a needle. * @@ -404,4 +420,20 @@ class WP_UnitTestCase extends WP_UnitTestCase_Base { public static function assertStringNotContainsString( $needle, $haystack, $message = '' ) { static::assertNotContains( $needle, $haystack, $message ); } + + /** + * Asserts that a string haystack does not contain a needle (case-insensitive). + * + * This method has been backported from a more recent PHPUnit version, + * as tests running on PHP 5.6 use PHPUnit 5.7.x. + * + * @since 5.9.0 + * + * @param string $needle The string to search for. + * @param string $haystack The string to treat as the haystack. + * @param string $message Optional. Message to display when the assertion fails. + */ + public static function assertStringNotContainsStringIgnoringCase( $needle, $haystack, $message = '' ) { + static::assertNotContains( $needle, $haystack, $message, true ); + } } diff --git a/tests/phpunit/tests/rest-api/rest-categories-controller.php b/tests/phpunit/tests/rest-api/rest-categories-controller.php index f8d49198b3..ddfcaf87f1 100644 --- a/tests/phpunit/tests/rest-api/rest-categories-controller.php +++ b/tests/phpunit/tests/rest-api/rest-categories-controller.php @@ -626,7 +626,7 @@ class WP_Test_REST_Categories_Controller extends WP_Test_REST_Controller_Testcas ), rest_url( 'wp/v2/categories' ) ); - $this->assertFalse( stripos( $headers['Link'], 'rel="prev"' ) ); + $this->assertStringNotContainsString( 'rel="prev"', $headers['Link'] ); $this->assertContains( '<' . $next_link . '>; rel="next"', $headers['Link'] ); // 3rd page. @@ -670,7 +670,7 @@ class WP_Test_REST_Categories_Controller extends WP_Test_REST_Controller_Testcas rest_url( 'wp/v2/categories' ) ); $this->assertContains( '<' . $prev_link . '>; rel="prev"', $headers['Link'] ); - $this->assertFalse( stripos( $headers['Link'], 'rel="next"' ) ); + $this->assertStringNotContainsString( 'rel="next"', $headers['Link'] ); // Out of bounds. $request = new WP_REST_Request( 'GET', '/wp/v2/categories' ); @@ -687,7 +687,7 @@ class WP_Test_REST_Categories_Controller extends WP_Test_REST_Controller_Testcas rest_url( 'wp/v2/categories' ) ); $this->assertContains( '<' . $prev_link . '>; rel="prev"', $headers['Link'] ); - $this->assertFalse( stripos( $headers['Link'], 'rel="next"' ) ); + $this->assertStringNotContainsString( 'rel="next"', $headers['Link'] ); } public function test_get_items_per_page_exceeds_number_of_items() { diff --git a/tests/phpunit/tests/rest-api/rest-comments-controller.php b/tests/phpunit/tests/rest-api/rest-comments-controller.php index 6bc3e24694..a1e8c03fb7 100644 --- a/tests/phpunit/tests/rest-api/rest-comments-controller.php +++ b/tests/phpunit/tests/rest-api/rest-comments-controller.php @@ -821,7 +821,7 @@ class WP_Test_REST_Comments_Controller extends WP_Test_REST_Controller_Testcase ), rest_url( '/wp/v2/comments' ) ); - $this->assertFalse( stripos( $headers['Link'], 'rel="prev"' ) ); + $this->assertStringNotContainsString( 'rel="prev"', $headers['Link'] ); $this->assertContains( '<' . $next_link . '>; rel="next"', $headers['Link'] ); // 3rd page. @@ -867,7 +867,7 @@ class WP_Test_REST_Comments_Controller extends WP_Test_REST_Controller_Testcase rest_url( '/wp/v2/comments' ) ); $this->assertContains( '<' . $prev_link . '>; rel="prev"', $headers['Link'] ); - $this->assertFalse( stripos( $headers['Link'], 'rel="next"' ) ); + $this->assertStringNotContainsString( 'rel="next"', $headers['Link'] ); // Out of bounds. $request = new WP_REST_Request( 'GET', '/wp/v2/comments' ); @@ -883,7 +883,7 @@ class WP_Test_REST_Comments_Controller extends WP_Test_REST_Controller_Testcase rest_url( '/wp/v2/comments' ) ); $this->assertContains( '<' . $prev_link . '>; rel="prev"', $headers['Link'] ); - $this->assertFalse( stripos( $headers['Link'], 'rel="next"' ) ); + $this->assertStringNotContainsString( 'rel="next"', $headers['Link'] ); } public function test_get_comments_invalid_date() { diff --git a/tests/phpunit/tests/rest-api/rest-pattern-directory-controller.php b/tests/phpunit/tests/rest-api/rest-pattern-directory-controller.php index a4a6f549b4..c21ba712f6 100644 --- a/tests/phpunit/tests/rest-api/rest-pattern-directory-controller.php +++ b/tests/phpunit/tests/rest-api/rest-pattern-directory-controller.php @@ -176,7 +176,7 @@ class WP_REST_Pattern_Directory_Controller_Test extends WP_Test_REST_Controller_ foreach ( $patterns as $pattern ) { $search_field_values = $pattern['title'] . ' ' . $pattern['description']; - $this->assertNotFalse( stripos( $search_field_values, $search_term ) ); + $this->assertStringContainsStringIgnoringCase( $search_term, $search_field_values ); } } diff --git a/tests/phpunit/tests/rest-api/rest-posts-controller.php b/tests/phpunit/tests/rest-api/rest-posts-controller.php index bb4960c258..b3a2f2869b 100644 --- a/tests/phpunit/tests/rest-api/rest-posts-controller.php +++ b/tests/phpunit/tests/rest-api/rest-posts-controller.php @@ -1531,7 +1531,7 @@ class WP_Test_REST_Posts_Controller extends WP_Test_REST_Post_Type_Controller_Te ), rest_url( '/wp/v2/posts' ) ); - $this->assertFalse( stripos( $headers['Link'], 'rel="prev"' ) ); + $this->assertStringNotContainsString( 'rel="prev"', $headers['Link'] ); $this->assertContains( '<' . $next_link . '>; rel="next"', $headers['Link'] ); // 3rd page. @@ -1573,7 +1573,7 @@ class WP_Test_REST_Posts_Controller extends WP_Test_REST_Post_Type_Controller_Te rest_url( '/wp/v2/posts' ) ); $this->assertContains( '<' . $prev_link . '>; rel="prev"', $headers['Link'] ); - $this->assertFalse( stripos( $headers['Link'], 'rel="next"' ) ); + $this->assertStringNotContainsString( 'rel="next"', $headers['Link'] ); // Out of bounds. $request = new WP_REST_Request( 'GET', '/wp/v2/posts' ); diff --git a/tests/phpunit/tests/rest-api/rest-revisions-controller.php b/tests/phpunit/tests/rest-api/rest-revisions-controller.php index d3cbc6c478..1121b883af 100644 --- a/tests/phpunit/tests/rest-api/rest-revisions-controller.php +++ b/tests/phpunit/tests/rest-api/rest-revisions-controller.php @@ -482,7 +482,7 @@ class WP_Test_REST_Revisions_Controller extends WP_Test_REST_Controller_Testcase ), rest_url( $rest_route ) ); - $this->assertFalse( stripos( $headers['Link'], 'rel="prev"' ) ); + $this->assertStringNotContainsString( 'rel="prev"', $headers['Link'] ); $this->assertContains( '<' . $next_link . '>; rel="next"', $headers['Link'] ); } diff --git a/tests/phpunit/tests/rest-api/rest-tags-controller.php b/tests/phpunit/tests/rest-api/rest-tags-controller.php index 28065e28d4..d117f7fa4b 100644 --- a/tests/phpunit/tests/rest-api/rest-tags-controller.php +++ b/tests/phpunit/tests/rest-api/rest-tags-controller.php @@ -590,7 +590,7 @@ class WP_Test_REST_Tags_Controller extends WP_Test_REST_Controller_Testcase { ), rest_url( 'wp/v2/tags' ) ); - $this->assertFalse( stripos( $headers['Link'], 'rel="prev"' ) ); + $this->assertStringNotContainsString( 'rel="prev"', $headers['Link'] ); $this->assertContains( '<' . $next_link . '>; rel="next"', $headers['Link'] ); // 3rd page. @@ -632,7 +632,7 @@ class WP_Test_REST_Tags_Controller extends WP_Test_REST_Controller_Testcase { rest_url( 'wp/v2/tags' ) ); $this->assertContains( '<' . $prev_link . '>; rel="prev"', $headers['Link'] ); - $this->assertFalse( stripos( $headers['Link'], 'rel="next"' ) ); + $this->assertStringNotContainsString( 'rel="next"', $headers['Link'] ); // Out of bounds. $request = new WP_REST_Request( 'GET', '/wp/v2/tags' ); @@ -648,7 +648,7 @@ class WP_Test_REST_Tags_Controller extends WP_Test_REST_Controller_Testcase { rest_url( 'wp/v2/tags' ) ); $this->assertContains( '<' . $prev_link . '>; rel="prev"', $headers['Link'] ); - $this->assertFalse( stripos( $headers['Link'], 'rel="next"' ) ); + $this->assertStringNotContainsString( 'rel="next"', $headers['Link'] ); } public function test_get_items_invalid_context() { diff --git a/tests/phpunit/tests/rest-api/rest-users-controller.php b/tests/phpunit/tests/rest-api/rest-users-controller.php index a3cbb49221..751465a5c1 100644 --- a/tests/phpunit/tests/rest-api/rest-users-controller.php +++ b/tests/phpunit/tests/rest-api/rest-users-controller.php @@ -321,7 +321,7 @@ class WP_Test_REST_Users_Controller extends WP_Test_REST_Controller_Testcase { ), rest_url( 'wp/v2/users' ) ); - $this->assertFalse( stripos( $headers['Link'], 'rel="prev"' ) ); + $this->assertStringNotContainsString( 'rel="prev"', $headers['Link'] ); $this->assertContains( '<' . $next_link . '>; rel="next"', $headers['Link'] ); // 3rd page. @@ -363,7 +363,7 @@ class WP_Test_REST_Users_Controller extends WP_Test_REST_Controller_Testcase { rest_url( 'wp/v2/users' ) ); $this->assertContains( '<' . $prev_link . '>; rel="prev"', $headers['Link'] ); - $this->assertFalse( stripos( $headers['Link'], 'rel="next"' ) ); + $this->assertStringNotContainsString( 'rel="next"', $headers['Link'] ); // Out of bounds. $request = new WP_REST_Request( 'GET', '/wp/v2/users' ); @@ -379,7 +379,7 @@ class WP_Test_REST_Users_Controller extends WP_Test_REST_Controller_Testcase { rest_url( 'wp/v2/users' ) ); $this->assertContains( '<' . $prev_link . '>; rel="prev"', $headers['Link'] ); - $this->assertFalse( stripos( $headers['Link'], 'rel="next"' ) ); + $this->assertStringNotContainsString( 'rel="next"', $headers['Link'] ); } public function test_get_items_per_page() {