* Dariusz Rumiński * * This source file is subject to the MIT license that is bundled * with this source code in the file LICENSE. */ namespace PhpCsFixer\Tests\Fixer\Basic; use PhpCsFixer\ConfigurationException\InvalidForEnvFixerConfigurationException; use PhpCsFixer\Tests\Test\AbstractFixerTestCase; /** * @author Ivan Boprzenkov * * @internal * * @covers \PhpCsFixer\Fixer\Basic\NonPrintableCharacterFixer */ final class NonPrintableCharacterFixerTest extends AbstractFixerTestCase { /** * @param string $expected * @param null|string $input * * @dataProvider provideFixCases */ public function testFix($expected, $input = null) { $this->doTest($expected, $input); } /** * @param string $expected * @param null|string $input * * @dataProvider provideFixCases */ public function testFixWithoutEscapeSequences($expected, $input = null) { $this->fixer->configure([ 'use_escape_sequences_in_strings' => false, ]); $this->doTest($expected, $input); } public function provideFixCases() { return [ [ 'abc', 'a'.pack('H*', 'e2808b').'bc', ], ]; } /** * @param string $expected * @param null|string $input * * @dataProvider provideFixWithEscapeSequencesInStringsCases * @requires PHP 7.0 */ public function testFixWithEscapeSequencesInStrings($expected, $input = null) { $this->fixer->configure([ 'use_escape_sequences_in_strings' => true, ]); $this->doTest($expected, $input); } public function provideFixWithEscapeSequencesInStringsCases() { return [ [ 'expectException(InvalidForEnvFixerConfigurationException::class); $this->expectExceptionMessageRegExp('/^\[non_printable_character\] Invalid configuration for env: Escape sequences require PHP 7\.0\+\.$/'); $this->fixer->configure([ 'use_escape_sequences_in_strings' => true, ]); } }