From 32ea77ff9cc8153fc1d434831b9b765285bb81ec Mon Sep 17 00:00:00 2001 From: Tiago Garcia Date: Tue, 4 Jun 2013 23:48:28 +0200 Subject: [PATCH] Throw exception if value is passed to VALUE_NONE input, long syntax --- src/Symfony/Component/Console/Input/ArgvInput.php | 6 +++++- src/Symfony/Component/Console/Tests/Input/ArgvInputTest.php | 5 +++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/Console/Input/ArgvInput.php b/src/Symfony/Component/Console/Input/ArgvInput.php index 6a4d1d506f7a9..e19f629550bca 100644 --- a/src/Symfony/Component/Console/Input/ArgvInput.php +++ b/src/Symfony/Component/Console/Input/ArgvInput.php @@ -134,7 +134,7 @@ private function parseShortOptionSet($name) break; } else { - $this->addLongOption($option->getName(), true); + $this->addLongOption($option->getName(), null); } } } @@ -220,6 +220,10 @@ private function addLongOption($name, $value) $value = null; } + if (null !== $value && !$option->acceptValue()) { + throw new \RuntimeException(sprintf('The "--%s" option does not accept a value.', $name, $value)); + } + if (null === $value && $option->acceptValue() && count($this->parsed)) { // if option accepts an optional or mandatory argument // let's see if there is one provided diff --git a/src/Symfony/Component/Console/Tests/Input/ArgvInputTest.php b/src/Symfony/Component/Console/Tests/Input/ArgvInputTest.php index 8e07c4c5584ce..c6ad757e23d84 100644 --- a/src/Symfony/Component/Console/Tests/Input/ArgvInputTest.php +++ b/src/Symfony/Component/Console/Tests/Input/ArgvInputTest.php @@ -175,6 +175,11 @@ public function provideInvalidInput() new InputDefinition(array(new InputOption('foo', 'f', InputOption::VALUE_NONE))), 'The "-o" option does not exist.' ), + array( + array('cli.php', '--foo=bar'), + new InputDefinition(array(new InputOption('foo', 'f', InputOption::VALUE_NONE))), + 'The "--foo" option does not accept a value.' + ), array( array('cli.php', 'foo', 'bar'), new InputDefinition(),