StringInputTest.php 3.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <?php
  2. /*
  3. * This file is part of the symfony package.
  4. * (c) Fabien Potencier <fabien.potencier@symfony-project.com>
  5. *
  6. * For the full copyright and license information, please view the LICENSE
  7. * file that was distributed with this source code.
  8. */
  9. require_once __DIR__.'/../../../../bootstrap.php';
  10. use Symfony\Components\Console\Input\StringInput;
  11. class TestInput extends StringInput
  12. {
  13. public function getTokens()
  14. {
  15. return $this->tokens;
  16. }
  17. }
  18. $t = new LimeTest(23);
  19. // ->tokenize()
  20. $t->diag('->tokenize()');
  21. $input = new TestInput('');
  22. $t->is($input->getTokens(), array(), '->tokenize() parses an empty string');
  23. $input = new TestInput('foo');
  24. $t->is($input->getTokens(), array('foo'), '->tokenize() parses arguments');
  25. $input = new TestInput(' foo bar ');
  26. $t->is($input->getTokens(), array('foo', 'bar'), '->tokenize() ignores whitespaces between arguments');
  27. $input = new TestInput('"quoted"');
  28. $t->is($input->getTokens(), array('quoted'), '->tokenize() parses quoted arguments');
  29. $input = new TestInput("'quoted'");
  30. $t->is($input->getTokens(), array('quoted'), '->tokenize() parses quoted arguments');
  31. $input = new TestInput('\"quoted\"');
  32. $t->is($input->getTokens(), array('"quoted"'), '->tokenize() parses escaped-quoted arguments');
  33. $input = new TestInput("\'quoted\'");
  34. $t->is($input->getTokens(), array('\'quoted\''), '->tokenize() parses escaped-quoted arguments');
  35. $input = new TestInput('-a');
  36. $t->is($input->getTokens(), array('-a'), '->tokenize() parses short options');
  37. $input = new TestInput('-azc');
  38. $t->is($input->getTokens(), array('-azc'), '->tokenize() parses aggregated short options');
  39. $input = new TestInput('-awithavalue');
  40. $t->is($input->getTokens(), array('-awithavalue'), '->tokenize() parses short options with a value');
  41. $input = new TestInput('-a"foo bar"');
  42. $t->is($input->getTokens(), array('-afoo bar'), '->tokenize() parses short options with a value');
  43. $input = new TestInput('-a"foo bar""foo bar"');
  44. $t->is($input->getTokens(), array('-afoo barfoo bar'), '->tokenize() parses short options with a value');
  45. $input = new TestInput('-a\'foo bar\'');
  46. $t->is($input->getTokens(), array('-afoo bar'), '->tokenize() parses short options with a value');
  47. $input = new TestInput('-a\'foo bar\'\'foo bar\'');
  48. $t->is($input->getTokens(), array('-afoo barfoo bar'), '->tokenize() parses short options with a value');
  49. $input = new TestInput('-a\'foo bar\'"foo bar"');
  50. $t->is($input->getTokens(), array('-afoo barfoo bar'), '->tokenize() parses short options with a value');
  51. $input = new TestInput('--long-option');
  52. $t->is($input->getTokens(), array('--long-option'), '->tokenize() parses long options');
  53. $input = new TestInput('--long-option=foo');
  54. $t->is($input->getTokens(), array('--long-option=foo'), '->tokenize() parses long options with a value');
  55. $input = new TestInput('--long-option="foo bar"');
  56. $t->is($input->getTokens(), array('--long-option=foo bar'), '->tokenize() parses long options with a value');
  57. $input = new TestInput('--long-option="foo bar""another"');
  58. $t->is($input->getTokens(), array('--long-option=foo baranother'), '->tokenize() parses long options with a value');
  59. $input = new TestInput('--long-option=\'foo bar\'');
  60. $t->is($input->getTokens(), array('--long-option=foo bar'), '->tokenize() parses long options with a value');
  61. $input = new TestInput("--long-option='foo bar''another'");
  62. $t->is($input->getTokens(), array("--long-option=foo baranother"), '->tokenize() parses long options with a value');
  63. $input = new TestInput("--long-option='foo bar'\"another\"");
  64. $t->is($input->getTokens(), array("--long-option=foo baranother"), '->tokenize() parses long options with a value');
  65. $input = new TestInput('foo -a -ffoo --long bar');
  66. $t->is($input->getTokens(), array('foo', '-a', '-ffoo', '--long', 'bar'), '->tokenize() parses when several arguments and options');