forked from a64f7bb4-7358-4778-9fbe-3b882c34cc1d/v1
174 lines
3.9 KiB
PHP
174 lines
3.9 KiB
PHP
<?php
|
|
|
|
namespace Consolidation\SiteProcess;
|
|
|
|
use PHPUnit\Framework\TestCase;
|
|
use Consolidation\SiteProcess\Util\ArgumentProcessor;
|
|
use Consolidation\SiteAlias\SiteAlias;
|
|
use Consolidation\SiteProcess\Util\Escape;
|
|
|
|
class EscapeTest extends TestCase
|
|
{
|
|
const DEFAULT_SITE_ALIAS = ['host' => 'example.com', ];
|
|
const LINUX_SITE_ALIAS = ['host' => 'example.com', 'os' => 'Linux'];
|
|
const WINDOWS_SITE_ALIAS = ['host' => 'example.com', 'os' => 'WIN'];
|
|
|
|
/**
|
|
* Data provider for testIsWindows.
|
|
*/
|
|
public function isWindowsTestValues()
|
|
{
|
|
return [
|
|
[
|
|
'Linux',
|
|
false,
|
|
static::DEFAULT_SITE_ALIAS,
|
|
],
|
|
|
|
[
|
|
'Linux',
|
|
false,
|
|
static::LINUX_SITE_ALIAS,
|
|
],
|
|
|
|
[
|
|
'WIN',
|
|
true,
|
|
static::WINDOWS_SITE_ALIAS,
|
|
],
|
|
];
|
|
}
|
|
|
|
/**
|
|
* Test the isWindows method.
|
|
*
|
|
* @dataProvider isWindowsTestValues
|
|
*/
|
|
public function testIsWindows(
|
|
$expected,
|
|
$expectToBeWindows,
|
|
$siteAliasData)
|
|
{
|
|
$siteAlias = new SiteAlias($siteAliasData, '@alias.dev');
|
|
$actual = $siteAlias->os();
|
|
$this->assertEquals($expected, $actual);
|
|
$actuallyIsWindows = Escape::isWindows($siteAlias->os());
|
|
$this->assertEquals($expectToBeWindows, $actuallyIsWindows);
|
|
}
|
|
|
|
/**
|
|
* Data provider for testEscapeForSite.
|
|
*/
|
|
public function escapeForSiteTestValues()
|
|
{
|
|
return [
|
|
[
|
|
'foo',
|
|
'foo',
|
|
static::DEFAULT_SITE_ALIAS,
|
|
],
|
|
|
|
[
|
|
'foo',
|
|
'foo',
|
|
static::LINUX_SITE_ALIAS,
|
|
],
|
|
|
|
[
|
|
'foo',
|
|
'foo',
|
|
static::WINDOWS_SITE_ALIAS,
|
|
],
|
|
|
|
[
|
|
"'foo bar'",
|
|
'foo bar',
|
|
static::DEFAULT_SITE_ALIAS,
|
|
],
|
|
|
|
[
|
|
"'foo bar'",
|
|
'foo bar',
|
|
static::LINUX_SITE_ALIAS,
|
|
],
|
|
|
|
[
|
|
'"foo bar"',
|
|
'foo bar',
|
|
static::WINDOWS_SITE_ALIAS,
|
|
],
|
|
|
|
[
|
|
"'don'\\''t forget'",
|
|
"don't forget",
|
|
static::DEFAULT_SITE_ALIAS,
|
|
],
|
|
|
|
[
|
|
"'don'\\''t forget'",
|
|
"don't forget",
|
|
static::LINUX_SITE_ALIAS,
|
|
],
|
|
|
|
[
|
|
'"don\'t forget"',
|
|
"don't forget",
|
|
static::WINDOWS_SITE_ALIAS,
|
|
],
|
|
|
|
[
|
|
"'I'\''ll try the \"easy\" fix.'",
|
|
"I'll try the \"easy\" fix.",
|
|
static::DEFAULT_SITE_ALIAS,
|
|
],
|
|
|
|
[
|
|
"'I'\''ll try the \"easy\" fix.'",
|
|
"I'll try the \"easy\" fix.",
|
|
static::LINUX_SITE_ALIAS,
|
|
],
|
|
|
|
[
|
|
'"I\'ll try the ""easy"" fix."',
|
|
"I'll try the \"easy\" fix.",
|
|
static::WINDOWS_SITE_ALIAS,
|
|
],
|
|
|
|
[
|
|
"'a b'",
|
|
"a\tb",
|
|
static::DEFAULT_SITE_ALIAS,
|
|
],
|
|
|
|
[
|
|
"'a b'",
|
|
"a\tb",
|
|
static::LINUX_SITE_ALIAS,
|
|
],
|
|
|
|
[
|
|
'"a b"',
|
|
"a\tb",
|
|
static::WINDOWS_SITE_ALIAS,
|
|
],
|
|
|
|
];
|
|
}
|
|
|
|
/**
|
|
* Test the forSite method.
|
|
*
|
|
* @dataProvider escapeForSiteTestValues
|
|
*/
|
|
public function testEscapeForSite(
|
|
$expected,
|
|
$arg,
|
|
$siteAliasData)
|
|
{
|
|
$siteAlias = new SiteAlias($siteAliasData, '@alias.dev');
|
|
|
|
$actual = Escape::forSite($siteAlias, $arg);
|
|
$this->assertEquals($expected, $actual);
|
|
}
|
|
}
|