* @copyright 2024 PHPCSStandards and contributors
* @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence
*/
namespace PHP_CodeSniffer\Tests\Core\Util\Common;
use PHP_CodeSniffer\Util\Common;
use PHPUnit\Framework\TestCase;
/**
* Tests for the \PHP_CodeSniffer\Util\Common::escapeshellcmd() method.
*
* @covers \PHP_CodeSniffer\Util\Common::escapeshellcmd
* @group Windows
*/
final class EscapeshellcmdTest extends TestCase
{
/**
* Test escaping shell commands.
*
* @param string $command The command provided.
* @param string $expected Expected function output.
* @param string $expectedWin Optional. Expected function output on Windows.
* Only needs to be passed if the output on Windows would be different.
*
* @dataProvider dataEscapeshellcmd
*
* @return void
*/
public function testEscapeshellcmd($command, $expected, $expectedWin=null)
{
if (stripos(PHP_OS, 'WIN') === 0 && empty($expectedWin) === false) {
$expected = $expectedWin;
}
$this->assertSame($expected, Common::escapeshellcmd($command));
}//end testEscapeshellcmd()
/**
* Data provider.
*
* Note: we're only testing the PHPCS functionality, not the PHP native `escapeshellcmd()`
* function (as that's not our responsibility).
*
* @see testEscapeshellcmd()
*
* @return array