Make WordPress Core


Ignore:
Timestamp:
06/09/2021 07:41:47 PM (5 years ago)
Author:
SergeyBiryukov
Message:

Tests: Ignore EOL differences in some tests using multiline string assertions.

Unix vs. Windows EOL style mismatches can cause misleading failures in tests using the heredoc syntax (<<<) or multiline strings as the expected result.

Follow-up to [48466], [50995], [51079].

See #52625.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/includes/abstract-testcase.php

    r50913 r51135  
    661661         *
    662662         * @since 5.6.0
    663          *
    664          * @param string $expected The expected value.
    665          * @param string $actual   The actual value.
     663         * @since 5.8.0 Added support for nested arrays.
     664         *
     665         * @param string|array $expected The expected value.
     666         * @param string|array $actual   The actual value.
    666667         */
    667668        public function assertSameIgnoreEOL( $expected, $actual ) {
    668                 $this->assertSame( str_replace( "\r\n", "\n", $expected ), str_replace( "\r\n", "\n", $actual ) );
     669                $expected = map_deep(
     670                        $expected,
     671                        function ( $value ) {
     672                                return str_replace( "\r\n", "\n", $value );
     673                        }
     674                );
     675
     676                $actual = map_deep(
     677                        $actual,
     678                        function ( $value ) {
     679                                return str_replace( "\r\n", "\n", $value );
     680                        }
     681                );
     682
     683                $this->assertSame( $expected, $actual );
    669684        }
    670685
Note: See TracChangeset for help on using the changeset viewer.