@@ -47,7 +47,7 @@ public function testParseOptions($input, $options, $expectedOptions, $message)
47
47
$ input = new ArgvInput ($ input );
48
48
$ input ->bind (new InputDefinition ($ options ));
49
49
50
- $ this ->assertEquals ($ expectedOptions , $ input ->getOptions (), $ message );
50
+ $ this ->assertSame ($ expectedOptions , $ input ->getOptions (), $ message );
51
51
}
52
52
53
53
public function provideOptions ()
@@ -74,20 +74,32 @@ public function provideOptions()
74
74
array (
75
75
array ('cli.php ' , '--foo= ' ),
76
76
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 without value specified (with a = separator) as empty string ' ,
79
79
),
80
80
array (
81
81
array ('cli.php ' , '--foo= ' , 'bar ' ),
82
82
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 )),
83
89
array ('foo ' => null ),
84
- '->parse() parses long options with optional value which is empty (with a = separator) followed by an argument ' ,
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 ' ,
85
97
),
86
98
array (
87
99
array ('cli.php ' , '--foo ' ),
88
100
array (new InputOption ('foo ' , 'f ' , InputOption::VALUE_OPTIONAL )),
89
101
array ('foo ' => null ),
90
- '->parse() parses long options with optional value which is empty as null ' ,
102
+ '->parse() parses long options with optional value specified with no separator and no value as null ' ,
91
103
),
92
104
array (
93
105
array ('cli.php ' , '-f ' ),
@@ -252,7 +264,7 @@ public function testParseArrayOption()
252
264
253
265
$ input = new ArgvInput (array ('cli.php ' , '--name=foo ' , '--name=bar ' , '--name= ' ));
254
266
$ input ->bind (new InputDefinition (array (new InputOption ('name ' , null , InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY ))));
255
- $ 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) ' );
256
268
257
269
$ input = new ArgvInput (array ('cli.php ' , '--name ' , 'foo ' , '--name ' , 'bar ' , '--name ' , '--anotherOption ' ));
258
270
$ input ->bind (new InputDefinition (array (
0 commit comments