diff --git a/src/wp-includes/formatting.php b/src/wp-includes/formatting.php
index 8d41efffdc..b54352d1ae 100644
a
|
b
|
function normalize_whitespace( $str ) { |
5390 | 5390 | * @return string The processed string. |
5391 | 5391 | */ |
5392 | 5392 | function wp_strip_all_tags( $string, $remove_breaks = false ) { |
| 5393 | if ( ! is_string( $string ) ) { |
| 5394 | _doing_it_wrong( |
| 5395 | __FUNCTION__, |
| 5396 | sprintf( |
| 5397 | /* translators: %s: The `$string` argument. */ |
| 5398 | __( 'The %s argument must be a string' ), |
| 5399 | '$string' |
| 5400 | ), |
| 5401 | '6.1.0' |
| 5402 | ); |
| 5403 | |
| 5404 | return ''; |
| 5405 | } |
| 5406 | |
5393 | 5407 | $string = preg_replace( '@<(script|style)[^>]*?>.*?</\\1>@si', '', $string ); |
5394 | 5408 | $string = strip_tags( $string ); |
5395 | 5409 | |
diff --git a/tests/phpunit/tests/formatting/wpStripAllTags.php b/tests/phpunit/tests/formatting/wpStripAllTags.php
index 2ef332e62e..78518d1f63 100644
a
|
b
|
class Tests_Formatting_wpStripAllTags extends WP_UnitTestCase { |
31 | 31 | $text = "lorem<style>* { display: 'none' }<script>alert( document.cookie )</script></style>ipsum"; |
32 | 32 | $this->assertSame( 'loremipsum', wp_strip_all_tags( $text ) ); |
33 | 33 | } |
| 34 | |
| 35 | /** |
| 36 | * Tests that `wp_strip_all_tags()` throws a `_doing_it_wrong()` and returns |
| 37 | * an empty string when passed a non-string `$string` argument. |
| 38 | * |
| 39 | * @ticket 56434 |
| 40 | * |
| 41 | * @expectedIncorrectUsage wp_strip_all_tags |
| 42 | * |
| 43 | * @dataProvider data_wp_strip_all_tags_should_throw_doing_it_wrong_for_non_string |
| 44 | * |
| 45 | * @param mixed $non_string A non-string value. |
| 46 | */ |
| 47 | public function test_wp_strip_all_tags_should_return_empty_string_and_throw_doing_it_wrong_for_non_string_arg( $non_string ) { |
| 48 | $this->assertSame( '', wp_strip_all_tags( $non_string ) ); |
| 49 | } |
| 50 | |
| 51 | /** |
| 52 | * Data provider. |
| 53 | * |
| 54 | * @return array |
| 55 | */ |
| 56 | public function data_wp_strip_all_tags_should_throw_doing_it_wrong_for_non_string() { |
| 57 | return array( |
| 58 | '(int) 0' => array( 'non_string' => 0 ), |
| 59 | '(int) 1' => array( 'non_string' => 1 ), |
| 60 | '(bool) false' => array( 'non_string' => false ), |
| 61 | '(bool) true' => array( 'non_string' => true ), |
| 62 | 'an empty array' => array( 'non_string' => array() ), |
| 63 | 'a non-empty array' => array( 'non_string' => array( 'a string' ) ), |
| 64 | 'an object' => array( 'non_string' => new stdClass() ), |
| 65 | ); |
| 66 | } |
34 | 67 | } |
35 | 68 | |