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.