1<?php
2
3/**
4 * @group GlobalFunctions
5 * @covers ::wfEscapeShellArg
6 */
7class WfEscapeShellArgTest extends MediaWikiUnitTestCase {
8	public function testSingleInput() {
9		if ( wfIsWindows() ) {
10			$expected = '"blah"';
11		} else {
12			$expected = "'blah'";
13		}
14
15		$actual = wfEscapeShellArg( 'blah' );
16
17		$this->assertEquals( $expected, $actual );
18	}
19
20	public function testMultipleArgs() {
21		if ( wfIsWindows() ) {
22			$expected = '"foo" "bar" "baz"';
23		} else {
24			$expected = "'foo' 'bar' 'baz'";
25		}
26
27		$actual = wfEscapeShellArg( 'foo', 'bar', 'baz' );
28
29		$this->assertEquals( $expected, $actual );
30	}
31
32	public function testMultipleArgsAsArray() {
33		if ( wfIsWindows() ) {
34			$expected = '"foo" "bar" "baz"';
35		} else {
36			$expected = "'foo' 'bar' 'baz'";
37		}
38
39		$actual = wfEscapeShellArg( [ 'foo', 'bar', 'baz' ] );
40
41		$this->assertEquals( $expected, $actual );
42	}
43}
44