From e3fb107dbbb00bb42acee593efde2ae1d5f59e87 Mon Sep 17 00:00:00 2001 From: Greg Anderson Date: Mon, 12 Feb 2018 14:05:44 -0800 Subject: [PATCH 1/4] Fixes #26136: Avoid emitting warning when hasParameterOption / getParameterOption is passed invalid parameters. --- src/Symfony/Component/Console/Input/ArgvInput.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/Console/Input/ArgvInput.php b/src/Symfony/Component/Console/Input/ArgvInput.php index da064598d0741..fdbc5c66a3e28 100644 --- a/src/Symfony/Component/Console/Input/ArgvInput.php +++ b/src/Symfony/Component/Console/Input/ArgvInput.php @@ -283,7 +283,7 @@ public function hasParameterOption($values) // For long options, test for '--option=' at beginning // For short options, test for '-o' at beginning $leading = 0 === strpos($value, '--') ? $value.'=' : $value; - if ($token === $value || 0 === strpos($token, $leading)) { + if ($token === $value || !empty($leading) && 0 === strpos($token, $leading)) { return true; } } @@ -311,7 +311,7 @@ public function getParameterOption($values, $default = false) // For long options, test for '--option=' at beginning // For short options, test for '-o' at beginning $leading = 0 === strpos($value, '--') ? $value.'=' : $value; - if (0 === strpos($token, $leading)) { + if (!empty($leading) && 0 === strpos($token, $leading)) { return substr($token, strlen($leading)); } } From 242e6fc2abae560957b53aa2b292491b539dff54 Mon Sep 17 00:00:00 2001 From: Greg Anderson Date: Tue, 13 Feb 2018 07:19:15 -0800 Subject: [PATCH 2/4] Use a !== yoda-conditional instead of 'empty' to match Symfony code style. --- src/Symfony/Component/Console/Input/ArgvInput.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/Console/Input/ArgvInput.php b/src/Symfony/Component/Console/Input/ArgvInput.php index fdbc5c66a3e28..62c658b4f9c6a 100644 --- a/src/Symfony/Component/Console/Input/ArgvInput.php +++ b/src/Symfony/Component/Console/Input/ArgvInput.php @@ -283,7 +283,7 @@ public function hasParameterOption($values) // For long options, test for '--option=' at beginning // For short options, test for '-o' at beginning $leading = 0 === strpos($value, '--') ? $value.'=' : $value; - if ($token === $value || !empty($leading) && 0 === strpos($token, $leading)) { + if ($token === $value || '' !== $leading && 0 === strpos($token, $leading)) { return true; } } @@ -311,7 +311,7 @@ public function getParameterOption($values, $default = false) // For long options, test for '--option=' at beginning // For short options, test for '-o' at beginning $leading = 0 === strpos($value, '--') ? $value.'=' : $value; - if (!empty($leading) && 0 === strpos($token, $leading)) { + if ('' !== $leading && 0 === strpos($token, $leading)) { return substr($token, strlen($leading)); } } From 47d0e93d85daee7db3050e787978441ced1bb802 Mon Sep 17 00:00:00 2001 From: Greg Anderson Date: Wed, 14 Feb 2018 11:24:01 -0800 Subject: [PATCH 3/4] Test to ensure that getParameterOption / hasParameterOption throws no warnings. --- .../Console/Tests/Input/ArgvInputTest.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/Symfony/Component/Console/Tests/Input/ArgvInputTest.php b/src/Symfony/Component/Console/Tests/Input/ArgvInputTest.php index 04f5ce3157c44..513f4f3a6a0a8 100644 --- a/src/Symfony/Component/Console/Tests/Input/ArgvInputTest.php +++ b/src/Symfony/Component/Console/Tests/Input/ArgvInputTest.php @@ -337,6 +337,21 @@ public function testHasParameterOptionEdgeCasesAndLimitations() $this->assertFalse($input->hasParameterOption('-fh'), '->hasParameterOption() returns true if the given short option is in the raw input'); } + public function testNoWarningOnInvalidParameterOption() + { + $input = new ArgvInput(array('cli.php', '-edev')); + + // Control. + $this->assertTrue($input->hasParameterOption(array('-e', ''))); + // No warning is thrown if https://github.com/symfony/symfony/pull/26156 is fixed + $this->assertFalse($input->hasParameterOption(array('-m', ''))); + + // Control. + $this->assertEquals('dev', $input->getParameterOption(array('-e', ''))); + // No warning is thrown if https://github.com/symfony/symfony/pull/26156 is fixed + $this->assertEquals('', $input->getParameterOption(array('-m', ''))); + } + public function testToString() { $input = new ArgvInput(array('cli.php', '-f', 'foo')); From 2b41dbb4d675b3883b63e7da53dafc391d6267a0 Mon Sep 17 00:00:00 2001 From: Greg Anderson Date: Thu, 15 Feb 2018 08:58:05 -0800 Subject: [PATCH 4/4] Fix type of expected value in getParameterOption test. --- src/Symfony/Component/Console/Tests/Input/ArgvInputTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Component/Console/Tests/Input/ArgvInputTest.php b/src/Symfony/Component/Console/Tests/Input/ArgvInputTest.php index 513f4f3a6a0a8..c2a277a93fa78 100644 --- a/src/Symfony/Component/Console/Tests/Input/ArgvInputTest.php +++ b/src/Symfony/Component/Console/Tests/Input/ArgvInputTest.php @@ -349,7 +349,7 @@ public function testNoWarningOnInvalidParameterOption() // Control. $this->assertEquals('dev', $input->getParameterOption(array('-e', ''))); // No warning is thrown if https://github.com/symfony/symfony/pull/26156 is fixed - $this->assertEquals('', $input->getParameterOption(array('-m', ''))); + $this->assertFalse($input->getParameterOption(array('-m', ''))); } public function testToString() pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy