$input = new TestInput('-azc'); $t->is($input->getTokens(), array('-azc'), '->tokenize() parses aggregated short options'); $input = new TestInput('-awithavalue'); $t->is($input->getTokens(), array('-awithavalue'), '->tokenize() parses short options with a value'); $input = new TestInput('-a"foo bar"'); $t->is($input->getTokens(), array('-afoo bar'), '->tokenize() parses short options with a value'); $input = new TestInput('-a"foo bar""foo bar"'); $t->is($input->getTokens(), array('-afoo barfoo bar'), '->tokenize() parses short options with a value'); $input = new TestInput('-a\'foo bar\''); $t->is($input->getTokens(), array('-afoo bar'), '->tokenize() parses short options with a value'); $input = new TestInput('-a\'foo bar\'\'foo bar\''); $t->is($input->getTokens(), array('-afoo barfoo bar'), '->tokenize() parses short options with a value'); $input = new TestInput('-a\'foo bar\'"foo bar"'); $t->is($input->getTokens(), array('-afoo barfoo bar'), '->tokenize() parses short options with a value'); $input = new TestInput('--long-option'); $t->is($input->getTokens(), array('--long-option'), '->tokenize() parses long options'); $input = new TestInput('--long-option=foo'); $t->is($input->getTokens(), array('--long-option=foo'), '->tokenize() parses long options with a value'); $input = new TestInput('--long-option="foo bar"'); $t->is($input->getTokens(), array('--long-option=foo bar'), '->tokenize() parses long options with a value'); $input = new TestInput('--long-option="foo bar""another"'); $t->is($input->getTokens(), array('--long-option=foo baranother'), '->tokenize() parses long options with a value'); $input = new TestInput('--long-option=\'foo bar\''); $t->is($input->getTokens(), array('--long-option=foo bar'), '->tokenize() parses long options with a value'); $input = new TestInput("--long-option='foo bar''another'"); $t->is($input->getTokens(), array("--long-option=foo baranother"), '->tokenize() parses long options with a value'); $input = new TestInput("--long-option='foo bar'\"another\""); $t->is($input->getTokens(), array("--long-option=foo baranother"), '->tokenize() parses long options with a value'); $input = new TestInput('foo -a -ffoo --long bar'); $t->is($input->getTokens(), array('foo', '-a', '-ffoo', '--long', 'bar'), '->tokenize() parses when several arguments and options');
use Symfony\Components\CLI\Input\Definition; use Symfony\Components\CLI\Input\Argument; use Symfony\Components\CLI\Input\Option; class TestInput extends ArgvInput { public function getTokens() { return $this->tokens; } } $t = new LimeTest(26); // __construct() $t->diag('__construct()'); $_SERVER['argv'] = array('cli.php', 'foo'); $input = new TestInput(); $t->is($input->getTokens(), array('foo'), '__construct() automatically get its input from the argv server variable'); // ->parse() $t->diag('->parse()'); $input = new TestInput(array('cli.php', 'foo')); $input->bind(new Definition(array(new Argument('name')))); $t->is($input->getArguments(), array('name' => 'foo'), '->parse() parses required arguments'); $input->bind(new Definition(array(new Argument('name')))); $t->is($input->getArguments(), array('name' => 'foo'), '->parse() is stateless'); $input = new TestInput(array('cli.php', '--foo')); $input->bind(new Definition(array(new Option('foo')))); $t->is($input->getOptions(), array('foo' => true), '->parse() parses long options without parameter'); $input = new TestInput(array('cli.php', '--foo=bar')); $input->bind(new Definition(array(new Option('foo', 'f', Option::PARAMETER_REQUIRED)))); $t->is($input->getOptions(), array('foo' => 'bar'), '->parse() parses long options with a required parameter (with a = separator)'); $input = new TestInput(array('cli.php', '--foo', 'bar')); $input->bind(new Definition(array(new Option('foo', 'f', Option::PARAMETER_REQUIRED))));