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
This commit is contained in:
Sergey Biryukov 2021-07-19 13:29:45 +00:00
parent fd872e56fd
commit bb3bf22547
8 changed files with 48 additions and 16 deletions

View File

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

View File

@ -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() {

View File

@ -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() {

View File

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

View File

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

View File

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

View File

@ -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() {

View File

@ -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() {