@@ -47,7 +47,7 @@ public function testParseOptions($input, $options, $expectedOptions, $message)
4747 $ input = new ArgvInput ($ input );
4848 $ input ->bind (new InputDefinition ($ options ));
4949
50- $ this ->assertEquals ($ expectedOptions , $ input ->getOptions (), $ message );
50+ $ this ->assertSame ($ expectedOptions , $ input ->getOptions (), $ message );
5151 }
5252
5353 public function provideOptions ()
@@ -74,14 +74,32 @@ public function provideOptions()
7474 array (
7575 array ('cli.php ' , '--foo= ' ),
7676 array (new InputOption ('foo ' , 'f ' , InputOption::VALUE_OPTIONAL )),
77- array ('foo ' => null ),
78- '->parse() parses long options with optional value which is empty (with a = separator) as null ' ,
77+ array ('foo ' => '' ),
78+ '->parse() parses long options with optional value which is empty (with a = separator) as empty string ' ,
7979 ),
8080 array (
8181 array ('cli.php ' , '--foo= ' , 'bar ' ),
8282 array (new InputOption ('foo ' , 'f ' , InputOption::VALUE_OPTIONAL ), new InputArgument ('name ' , InputArgument::REQUIRED )),
83+ array ('foo ' => '' ),
84+ '->parse() parses long options with optional value without value specified or an empty string (with a = separator) followed by an argument as empty string ' ,
85+ ),
86+ array (
87+ array ('cli.php ' , 'bar ' , '--foo ' ),
88+ array (new InputOption ('foo ' , 'f ' , InputOption::VALUE_OPTIONAL ), new InputArgument ('name ' , InputArgument::REQUIRED )),
89+ array ('foo ' => null ),
90+ '->parse() parses long options with optional value which is empty (with a = separator) preceded by an argument ' ,
91+ ),
92+ array (
93+ array ('cli.php ' , '--foo ' , '' , 'bar ' ),
94+ array (new InputOption ('foo ' , 'f ' , InputOption::VALUE_OPTIONAL ), new InputArgument ('name ' , InputArgument::REQUIRED )),
95+ array ('foo ' => '' ),
96+ '->parse() parses long options with optional value which is empty as empty string even followed by an argument ' ,
97+ ),
98+ array (
99+ array ('cli.php ' , '--foo ' ),
100+ array (new InputOption ('foo ' , 'f ' , InputOption::VALUE_OPTIONAL )),
83101 array ('foo ' => null ),
84- '->parse() parses long options with optional value which is empty ( with a = separator) followed by an argument ' ,
102+ '->parse() parses long options with optional value specified with no separator and no value as null ' ,
85103 ),
86104 array (
87105 array ('cli.php ' , '-f ' ),
@@ -246,7 +264,7 @@ public function testParseArrayOption()
246264
247265 $ input = new ArgvInput (array ('cli.php ' , '--name=foo ' , '--name=bar ' , '--name= ' ));
248266 $ input ->bind (new InputDefinition (array (new InputOption ('name ' , null , InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY ))));
249- $ this ->assertSame (array ('name ' => array ('foo ' , 'bar ' , null )), $ input ->getOptions (), '->parse() parses empty array options as null ("--option=value" syntax) ' );
267+ $ this ->assertSame (array ('name ' => array ('foo ' , 'bar ' , '' )), $ input ->getOptions (), '->parse() parses empty array options as null ("--option=value" syntax) ' );
250268
251269 $ input = new ArgvInput (array ('cli.php ' , '--name ' , 'foo ' , '--name ' , 'bar ' , '--name ' , '--anotherOption ' ));
252270 $ input ->bind (new InputDefinition (array (
0 commit comments