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