StringInputTest.php 4.5 KB

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