@@ -22,7 +22,7 @@ fn multiple_values_of_option_long() {
22
22
23
23
assert ! ( m. is_present( "option" ) ) ;
24
24
assert_eq ! ( m. occurrences_of( "option" ) , 3 ) ;
25
- assert_eq ! ( m. values_of( "option" ) . unwrap( ) . collect:: <Vec <_>>( ) , vec! [ "val1" , "val2" , "val3" ] ) ;
25
+ assert_eq ! ( m. values_of( "option" ) . unwrap( ) . collect:: <Vec <_>>( ) , [ "val1" , "val2" , "val3" ] ) ;
26
26
}
27
27
28
28
#[ test]
@@ -45,7 +45,7 @@ fn multiple_values_of_option_short() {
45
45
46
46
assert ! ( m. is_present( "option" ) ) ;
47
47
assert_eq ! ( m. occurrences_of( "option" ) , 3 ) ;
48
- assert_eq ! ( m. values_of( "option" ) . unwrap( ) . collect:: <Vec <_>>( ) , vec! [ "val1" , "val2" , "val3" ] ) ;
48
+ assert_eq ! ( m. values_of( "option" ) . unwrap( ) . collect:: <Vec <_>>( ) , [ "val1" , "val2" , "val3" ] ) ;
49
49
}
50
50
51
51
#[ test]
@@ -70,7 +70,7 @@ fn multiple_values_of_option_mixed() {
70
70
71
71
assert ! ( m. is_present( "option" ) ) ;
72
72
assert_eq ! ( m. occurrences_of( "option" ) , 4 ) ;
73
- assert_eq ! ( m. values_of( "option" ) . unwrap( ) . collect:: <Vec <_>>( ) , vec! [ "val1" , "val2" , "val3" , "val4" ] ) ;
73
+ assert_eq ! ( m. values_of( "option" ) . unwrap( ) . collect:: <Vec <_>>( ) , [ "val1" , "val2" , "val3" , "val4" ] ) ;
74
74
}
75
75
76
76
#[ test]
@@ -94,7 +94,7 @@ fn multiple_values_of_option_exact_exact() {
94
94
95
95
assert ! ( m. is_present( "option" ) ) ;
96
96
assert_eq ! ( m. occurrences_of( "option" ) , 3 ) ;
97
- assert_eq ! ( m. values_of( "option" ) . unwrap( ) . collect:: <Vec <_>>( ) , vec! [ "val1" , "val2" , "val3" ] ) ;
97
+ assert_eq ! ( m. values_of( "option" ) . unwrap( ) . collect:: <Vec <_>>( ) , [ "val1" , "val2" , "val3" ] ) ;
98
98
}
99
99
100
100
#[ test]
@@ -158,7 +158,7 @@ fn multiple_values_of_option_min_exact() {
158
158
159
159
assert ! ( m. is_present( "option" ) ) ;
160
160
assert_eq ! ( m. occurrences_of( "option" ) , 3 ) ;
161
- assert_eq ! ( m. values_of( "option" ) . unwrap( ) . collect:: <Vec <_>>( ) , vec! [ "val1" , "val2" , "val3" ] ) ;
161
+ assert_eq ! ( m. values_of( "option" ) . unwrap( ) . collect:: <Vec <_>>( ) , [ "val1" , "val2" , "val3" ] ) ;
162
162
}
163
163
164
164
#[ test]
@@ -202,7 +202,7 @@ fn multiple_values_of_option_min_more() {
202
202
203
203
assert ! ( m. is_present( "option" ) ) ;
204
204
assert_eq ! ( m. occurrences_of( "option" ) , 4 ) ;
205
- assert_eq ! ( m. values_of( "option" ) . unwrap( ) . collect:: <Vec <_>>( ) , vec! [ "val1" , "val2" , "val3" , "val4" ] ) ;
205
+ assert_eq ! ( m. values_of( "option" ) . unwrap( ) . collect:: <Vec <_>>( ) , [ "val1" , "val2" , "val3" , "val4" ] ) ;
206
206
}
207
207
208
208
#[ test]
@@ -226,7 +226,7 @@ fn multiple_values_of_option_max_exact() {
226
226
227
227
assert ! ( m. is_present( "option" ) ) ;
228
228
assert_eq ! ( m. occurrences_of( "option" ) , 3 ) ;
229
- assert_eq ! ( m. values_of( "option" ) . unwrap( ) . collect:: <Vec <_>>( ) , vec! [ "val1" , "val2" , "val3" ] ) ;
229
+ assert_eq ! ( m. values_of( "option" ) . unwrap( ) . collect:: <Vec <_>>( ) , [ "val1" , "val2" , "val3" ] ) ;
230
230
}
231
231
232
232
#[ test]
@@ -249,7 +249,7 @@ fn multiple_values_of_option_max_less() {
249
249
250
250
assert ! ( m. is_present( "option" ) ) ;
251
251
assert_eq ! ( m. occurrences_of( "option" ) , 2 ) ;
252
- assert_eq ! ( m. values_of( "option" ) . unwrap( ) . collect:: <Vec <_>>( ) , vec! [ "val1" , "val2" ] ) ;
252
+ assert_eq ! ( m. values_of( "option" ) . unwrap( ) . collect:: <Vec <_>>( ) , [ "val1" , "val2" ] ) ;
253
253
}
254
254
255
255
#[ test]
@@ -286,7 +286,7 @@ fn multiple_values_of_positional() {
286
286
287
287
assert ! ( m. is_present( "pos" ) ) ;
288
288
assert_eq ! ( m. occurrences_of( "pos" ) , 3 ) ;
289
- assert_eq ! ( m. values_of( "pos" ) . unwrap( ) . collect:: <Vec <_>>( ) , vec! [ "val1" , "val2" , "val3" ] ) ;
289
+ assert_eq ! ( m. values_of( "pos" ) . unwrap( ) . collect:: <Vec <_>>( ) , [ "val1" , "val2" , "val3" ] ) ;
290
290
}
291
291
292
292
#[ test]
@@ -302,7 +302,7 @@ fn multiple_values_of_positional_exact_exact() {
302
302
303
303
assert ! ( m. is_present( "pos" ) ) ;
304
304
assert_eq ! ( m. occurrences_of( "pos" ) , 3 ) ;
305
- assert_eq ! ( m. values_of( "pos" ) . unwrap( ) . collect:: <Vec <_>>( ) , vec! [ "val1" , "val2" , "val3" ] ) ;
305
+ assert_eq ! ( m. values_of( "pos" ) . unwrap( ) . collect:: <Vec <_>>( ) , [ "val1" , "val2" , "val3" ] ) ;
306
306
}
307
307
308
308
#[ test]
@@ -342,7 +342,7 @@ fn multiple_values_of_positional_min_exact() {
342
342
343
343
assert ! ( m. is_present( "pos" ) ) ;
344
344
assert_eq ! ( m. occurrences_of( "pos" ) , 3 ) ;
345
- assert_eq ! ( m. values_of( "pos" ) . unwrap( ) . collect:: <Vec <_>>( ) , vec! [ "val1" , "val2" , "val3" ] ) ;
345
+ assert_eq ! ( m. values_of( "pos" ) . unwrap( ) . collect:: <Vec <_>>( ) , [ "val1" , "val2" , "val3" ] ) ;
346
346
}
347
347
348
348
#[ test]
@@ -370,7 +370,7 @@ fn multiple_values_of_positional_min_more() {
370
370
371
371
assert ! ( m. is_present( "pos" ) ) ;
372
372
assert_eq ! ( m. occurrences_of( "pos" ) , 4 ) ;
373
- assert_eq ! ( m. values_of( "pos" ) . unwrap( ) . collect:: <Vec <_>>( ) , vec! [ "val1" , "val2" , "val3" , "val4" ] ) ;
373
+ assert_eq ! ( m. values_of( "pos" ) . unwrap( ) . collect:: <Vec <_>>( ) , [ "val1" , "val2" , "val3" , "val4" ] ) ;
374
374
}
375
375
376
376
#[ test]
@@ -386,7 +386,7 @@ fn multiple_values_of_positional_max_exact() {
386
386
387
387
assert ! ( m. is_present( "pos" ) ) ;
388
388
assert_eq ! ( m. occurrences_of( "pos" ) , 3 ) ;
389
- assert_eq ! ( m. values_of( "pos" ) . unwrap( ) . collect:: <Vec <_>>( ) , vec! [ "val1" , "val2" , "val3" ] ) ;
389
+ assert_eq ! ( m. values_of( "pos" ) . unwrap( ) . collect:: <Vec <_>>( ) , [ "val1" , "val2" , "val3" ] ) ;
390
390
}
391
391
392
392
#[ test]
@@ -402,7 +402,7 @@ fn multiple_values_of_positional_max_less() {
402
402
403
403
assert ! ( m. is_present( "pos" ) ) ;
404
404
assert_eq ! ( m. occurrences_of( "pos" ) , 2 ) ;
405
- assert_eq ! ( m. values_of( "pos" ) . unwrap( ) . collect:: <Vec <_>>( ) , vec! [ "val1" , "val2" ] ) ;
405
+ assert_eq ! ( m. values_of( "pos" ) . unwrap( ) . collect:: <Vec <_>>( ) , [ "val1" , "val2" ] ) ;
406
406
}
407
407
408
408
#[ test]
@@ -416,3 +416,129 @@ fn multiple_values_of_positional_max_more() {
416
416
assert ! ( m. is_err( ) ) ;
417
417
assert_eq ! ( m. unwrap_err( ) . kind, ErrorKind :: TooManyValues ) ;
418
418
}
419
+
420
+ #[ test]
421
+ fn multiple_values_sep_long_equals ( ) {
422
+ let m = App :: new ( "multiple_values" )
423
+ . arg ( Arg :: with_name ( "option" )
424
+ . long ( "option" )
425
+ . help ( "multiple options" )
426
+ . takes_value ( true )
427
+ . multiple ( true ) )
428
+ . get_matches_from_safe ( vec ! [
429
+ "" ,
430
+ "--option=val1,val2,val3" ,
431
+ ] ) ;
432
+
433
+ assert ! ( m. is_ok( ) ) ;
434
+ let m = m. unwrap ( ) ;
435
+
436
+ assert ! ( m. is_present( "option" ) ) ;
437
+ assert_eq ! ( m. occurrences_of( "option" ) , 1 ) ;
438
+ assert_eq ! ( m. values_of( "option" ) . unwrap( ) . collect:: <Vec <_>>( ) , [ "val1" , "val2" , "val3" ] ) ;
439
+ }
440
+
441
+ #[ test]
442
+ fn multiple_values_sep_long_space ( ) {
443
+ let m = App :: new ( "multiple_values" )
444
+ . arg ( Arg :: with_name ( "option" )
445
+ . long ( "option" )
446
+ . help ( "multiple options" )
447
+ . takes_value ( true )
448
+ . multiple ( true ) )
449
+ . get_matches_from_safe ( vec ! [
450
+ "" ,
451
+ "--option" ,
452
+ "val1,val2,val3" ,
453
+ ] ) ;
454
+
455
+ assert ! ( m. is_ok( ) ) ;
456
+ let m = m. unwrap ( ) ;
457
+
458
+ assert ! ( m. is_present( "option" ) ) ;
459
+ assert_eq ! ( m. occurrences_of( "option" ) , 1 ) ;
460
+ assert_eq ! ( m. values_of( "option" ) . unwrap( ) . collect:: <Vec <_>>( ) , [ "val1" , "val2" , "val3" ] ) ;
461
+ }
462
+
463
+ #[ test]
464
+ fn multiple_values_sep_short_equals ( ) {
465
+ let m = App :: new ( "multiple_values" )
466
+ . arg ( Arg :: with_name ( "option" )
467
+ . short ( "o" )
468
+ . help ( "multiple options" )
469
+ . takes_value ( true )
470
+ . multiple ( true ) )
471
+ . get_matches_from_safe ( vec ! [
472
+ "" ,
473
+ "-o=val1,val2,val3" ,
474
+ ] ) ;
475
+
476
+ assert ! ( m. is_ok( ) ) ;
477
+ let m = m. unwrap ( ) ;
478
+
479
+ assert ! ( m. is_present( "option" ) ) ;
480
+ assert_eq ! ( m. occurrences_of( "option" ) , 1 ) ;
481
+ assert_eq ! ( m. values_of( "option" ) . unwrap( ) . collect:: <Vec <_>>( ) , [ "val1" , "val2" , "val3" ] ) ;
482
+ }
483
+
484
+ #[ test]
485
+ fn multiple_values_sep_short_space ( ) {
486
+ let m = App :: new ( "multiple_values" )
487
+ . arg ( Arg :: with_name ( "option" )
488
+ . short ( "o" )
489
+ . help ( "multiple options" )
490
+ . takes_value ( true )
491
+ . multiple ( true ) )
492
+ . get_matches_from_safe ( vec ! [
493
+ "" ,
494
+ "-o" ,
495
+ "val1,val2,val3" ,
496
+ ] ) ;
497
+
498
+ assert ! ( m. is_ok( ) ) ;
499
+ let m = m. unwrap ( ) ;
500
+
501
+ assert ! ( m. is_present( "option" ) ) ;
502
+ assert_eq ! ( m. occurrences_of( "option" ) , 1 ) ;
503
+ assert_eq ! ( m. values_of( "option" ) . unwrap( ) . collect:: <Vec <_>>( ) , [ "val1" , "val2" , "val3" ] ) ;
504
+ }
505
+
506
+ #[ test]
507
+ fn multiple_values_sep_short_no_space ( ) {
508
+ let m = App :: new ( "multiple_values" )
509
+ . arg ( Arg :: with_name ( "option" )
510
+ . short ( "o" )
511
+ . help ( "multiple options" )
512
+ . takes_value ( true )
513
+ . multiple ( true ) )
514
+ . get_matches_from_safe ( vec ! [
515
+ "" ,
516
+ "-oval1,val2,val3" ,
517
+ ] ) ;
518
+
519
+ assert ! ( m. is_ok( ) ) ;
520
+ let m = m. unwrap ( ) ;
521
+
522
+ assert ! ( m. is_present( "option" ) ) ;
523
+ assert_eq ! ( m. occurrences_of( "option" ) , 1 ) ;
524
+ assert_eq ! ( m. values_of( "option" ) . unwrap( ) . collect:: <Vec <_>>( ) , [ "val1" , "val2" , "val3" ] ) ;
525
+ }
526
+
527
+ #[ test]
528
+ fn multiple_values_sep_positional ( ) {
529
+ let m = App :: new ( "multiple_values" )
530
+ . arg ( Arg :: with_name ( "option" )
531
+ . help ( "multiple options" )
532
+ . multiple ( true ) )
533
+ . get_matches_from_safe ( vec ! [
534
+ "" ,
535
+ "val1,val2,val3" ,
536
+ ] ) ;
537
+
538
+ assert ! ( m. is_ok( ) ) ;
539
+ let m = m. unwrap ( ) ;
540
+
541
+ assert ! ( m. is_present( "option" ) ) ;
542
+ assert_eq ! ( m. occurrences_of( "option" ) , 1 ) ;
543
+ assert_eq ! ( m. values_of( "option" ) . unwrap( ) . collect:: <Vec <_>>( ) , [ "val1" , "val2" , "val3" ] ) ;
544
+ }
0 commit comments