2010-03-18 07:48:03 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
/*
|
2010-04-25 16:06:54 +01:00
|
|
|
* This file is part of the Symfony package.
|
2011-01-15 13:29:43 +00:00
|
|
|
*
|
2010-03-18 07:48:03 +00:00
|
|
|
* (c) Fabien Potencier <fabien.potencier@symfony-project.com>
|
|
|
|
*
|
|
|
|
* For the full copyright and license information, please view the LICENSE
|
|
|
|
* file that was distributed with this source code.
|
|
|
|
*/
|
|
|
|
|
2010-08-20 22:09:55 +01:00
|
|
|
namespace Symfony\Tests\Component\Console\Input;
|
2010-03-18 07:48:03 +00:00
|
|
|
|
2010-08-20 22:09:55 +01:00
|
|
|
use Symfony\Component\Console\Input\StringInput;
|
2010-03-18 07:48:03 +00:00
|
|
|
|
|
|
|
class StringInputTest extends \PHPUnit_Framework_TestCase
|
|
|
|
{
|
2010-05-06 12:25:53 +01:00
|
|
|
public function testTokenize()
|
|
|
|
{
|
|
|
|
$input = new TestInput1('');
|
|
|
|
$this->assertEquals(array(), $input->getTokens(), '->tokenize() parses an empty string');
|
2010-03-18 07:48:03 +00:00
|
|
|
|
2010-05-06 12:25:53 +01:00
|
|
|
$input = new TestInput1('foo');
|
|
|
|
$this->assertEquals(array('foo'), $input->getTokens(), '->tokenize() parses arguments');
|
2010-03-18 07:48:03 +00:00
|
|
|
|
2010-05-06 12:25:53 +01:00
|
|
|
$input = new TestInput1(' foo bar ');
|
|
|
|
$this->assertEquals(array('foo', 'bar'), $input->getTokens(), '->tokenize() ignores whitespaces between arguments');
|
2010-03-18 07:48:03 +00:00
|
|
|
|
2010-05-06 12:25:53 +01:00
|
|
|
$input = new TestInput1('"quoted"');
|
|
|
|
$this->assertEquals(array('quoted'), $input->getTokens(), '->tokenize() parses quoted arguments');
|
2010-03-18 07:48:03 +00:00
|
|
|
|
2010-05-06 12:25:53 +01:00
|
|
|
$input = new TestInput1("'quoted'");
|
|
|
|
$this->assertEquals(array('quoted'), $input->getTokens(), '->tokenize() parses quoted arguments');
|
2010-03-18 07:48:03 +00:00
|
|
|
|
2010-05-06 12:25:53 +01:00
|
|
|
$input = new TestInput1('\"quoted\"');
|
|
|
|
$this->assertEquals(array('"quoted"'), $input->getTokens(), '->tokenize() parses escaped-quoted arguments');
|
2010-03-18 07:48:03 +00:00
|
|
|
|
2010-05-06 12:25:53 +01:00
|
|
|
$input = new TestInput1("\'quoted\'");
|
|
|
|
$this->assertEquals(array('\'quoted\''), $input->getTokens(), '->tokenize() parses escaped-quoted arguments');
|
2010-03-18 07:48:03 +00:00
|
|
|
|
2010-05-06 12:25:53 +01:00
|
|
|
$input = new TestInput1('-a');
|
|
|
|
$this->assertEquals(array('-a'), $input->getTokens(), '->tokenize() parses short options');
|
2010-03-18 07:48:03 +00:00
|
|
|
|
2010-05-06 12:25:53 +01:00
|
|
|
$input = new TestInput1('-azc');
|
|
|
|
$this->assertEquals(array('-azc'), $input->getTokens(), '->tokenize() parses aggregated short options');
|
2010-03-18 07:48:03 +00:00
|
|
|
|
2010-05-06 12:25:53 +01:00
|
|
|
$input = new TestInput1('-awithavalue');
|
|
|
|
$this->assertEquals(array('-awithavalue'), $input->getTokens(), '->tokenize() parses short options with a value');
|
2010-03-18 07:48:03 +00:00
|
|
|
|
2010-05-06 12:25:53 +01:00
|
|
|
$input = new TestInput1('-a"foo bar"');
|
|
|
|
$this->assertEquals(array('-afoo bar'), $input->getTokens(), '->tokenize() parses short options with a value');
|
2010-03-18 07:48:03 +00:00
|
|
|
|
2010-05-06 12:25:53 +01:00
|
|
|
$input = new TestInput1('-a"foo bar""foo bar"');
|
|
|
|
$this->assertEquals(array('-afoo barfoo bar'), $input->getTokens(), '->tokenize() parses short options with a value');
|
2010-03-18 07:48:03 +00:00
|
|
|
|
2010-05-06 12:25:53 +01:00
|
|
|
$input = new TestInput1('-a\'foo bar\'');
|
|
|
|
$this->assertEquals(array('-afoo bar'), $input->getTokens(), '->tokenize() parses short options with a value');
|
2010-03-18 07:48:03 +00:00
|
|
|
|
2010-05-06 12:25:53 +01:00
|
|
|
$input = new TestInput1('-a\'foo bar\'\'foo bar\'');
|
|
|
|
$this->assertEquals(array('-afoo barfoo bar'), $input->getTokens(), '->tokenize() parses short options with a value');
|
2010-03-18 07:48:03 +00:00
|
|
|
|
2010-05-06 12:25:53 +01:00
|
|
|
$input = new TestInput1('-a\'foo bar\'"foo bar"');
|
|
|
|
$this->assertEquals(array('-afoo barfoo bar'), $input->getTokens(), '->tokenize() parses short options with a value');
|
2010-03-18 07:48:03 +00:00
|
|
|
|
2010-05-06 12:25:53 +01:00
|
|
|
$input = new TestInput1('--long-option');
|
|
|
|
$this->assertEquals(array('--long-option'), $input->getTokens(), '->tokenize() parses long options');
|
2010-03-18 07:48:03 +00:00
|
|
|
|
2010-05-06 12:25:53 +01:00
|
|
|
$input = new TestInput1('--long-option=foo');
|
|
|
|
$this->assertEquals(array('--long-option=foo'), $input->getTokens(), '->tokenize() parses long options with a value');
|
2010-03-18 07:48:03 +00:00
|
|
|
|
2010-05-06 12:25:53 +01:00
|
|
|
$input = new TestInput1('--long-option="foo bar"');
|
|
|
|
$this->assertEquals(array('--long-option=foo bar'), $input->getTokens(), '->tokenize() parses long options with a value');
|
2010-03-18 07:48:03 +00:00
|
|
|
|
2010-05-06 12:25:53 +01:00
|
|
|
$input = new TestInput1('--long-option="foo bar""another"');
|
|
|
|
$this->assertEquals(array('--long-option=foo baranother'), $input->getTokens(), '->tokenize() parses long options with a value');
|
2010-03-18 07:48:03 +00:00
|
|
|
|
2010-05-06 12:25:53 +01:00
|
|
|
$input = new TestInput1('--long-option=\'foo bar\'');
|
|
|
|
$this->assertEquals(array('--long-option=foo bar'), $input->getTokens(), '->tokenize() parses long options with a value');
|
2010-03-18 07:48:03 +00:00
|
|
|
|
2010-05-06 12:25:53 +01:00
|
|
|
$input = new TestInput1("--long-option='foo bar''another'");
|
|
|
|
$this->assertEquals(array("--long-option=foo baranother"), $input->getTokens(), '->tokenize() parses long options with a value');
|
2010-03-18 07:48:03 +00:00
|
|
|
|
2010-05-06 12:25:53 +01:00
|
|
|
$input = new TestInput1("--long-option='foo bar'\"another\"");
|
|
|
|
$this->assertEquals(array("--long-option=foo baranother"), $input->getTokens(), '->tokenize() parses long options with a value');
|
2010-03-18 07:48:03 +00:00
|
|
|
|
2010-05-06 12:25:53 +01:00
|
|
|
$input = new TestInput1('foo -a -ffoo --long bar');
|
|
|
|
$this->assertEquals(array('foo', '-a', '-ffoo', '--long', 'bar'), $input->getTokens(), '->tokenize() parses when several arguments and options');
|
|
|
|
}
|
2010-03-18 07:48:03 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
class TestInput1 extends StringInput
|
|
|
|
{
|
2010-05-06 12:25:53 +01:00
|
|
|
public function getTokens()
|
|
|
|
{
|
|
|
|
return $this->tokens;
|
|
|
|
}
|
2010-03-18 07:48:03 +00:00
|
|
|
}
|