1<?php
2
3/*
4 * This file is part of the Symfony package.
5 *
6 * (c) Fabien Potencier <fabien@symfony.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11
12namespace Symfony\Component\Process\Tests;
13
14use PHPUnit\Framework\TestCase;
15use Symfony\Component\Process\ProcessUtils;
16
17/**
18 * @group legacy
19 */
20class ProcessUtilsTest extends TestCase
21{
22    /**
23     * @dataProvider dataArguments
24     */
25    public function testEscapeArgument($result, $argument)
26    {
27        $this->assertSame($result, ProcessUtils::escapeArgument($argument));
28    }
29
30    public function dataArguments()
31    {
32        if ('\\' === \DIRECTORY_SEPARATOR) {
33            return [
34                ['"\"php\" \"-v\""', '"php" "-v"'],
35                ['"foo bar"', 'foo bar'],
36                ['^%"path"^%', '%path%'],
37                ['"<|>\\" \\"\'f"', '<|>" "\'f'],
38                ['""', ''],
39                ['"with\trailingbs\\\\"', 'with\trailingbs\\'],
40            ];
41        }
42
43        return [
44            ["'\"php\" \"-v\"'", '"php" "-v"'],
45            ["'foo bar'", 'foo bar'],
46            ["'%path%'", '%path%'],
47            ["'<|>\" \"'\\''f'", '<|>" "\'f'],
48            ["''", ''],
49            ["'with\\trailingbs\\'", 'with\trailingbs\\'],
50            ["'withNonAsciiAccentLikeéÉèÈàÀöä'", 'withNonAsciiAccentLikeéÉèÈàÀöä'],
51        ];
52    }
53}
54