1
1
extern crate clap;
2
2
3
- use clap:: { App , Arg } ;
3
+ use clap:: { App , Arg , ArgSettings } ;
4
4
5
5
#[ test]
6
6
fn flag_using_short ( ) {
@@ -9,7 +9,7 @@ fn flag_using_short() {
9
9
Arg :: from_usage ( "-f, --flag 'some flag'" ) ,
10
10
Arg :: from_usage ( "-c, --color 'some other flag'" )
11
11
] )
12
- . get_matches_from ( vec ! [ "myprog " , "-f" , "-c" ] ) ;
12
+ . get_matches_from ( vec ! [ "" , "-f" , "-c" ] ) ;
13
13
assert ! ( m. is_present( "flag" ) ) ;
14
14
assert ! ( m. is_present( "color" ) ) ;
15
15
}
@@ -21,7 +21,7 @@ fn flag_using_long() {
21
21
Arg :: from_usage ( "--flag 'some flag'" ) ,
22
22
Arg :: from_usage ( "--color 'some other flag'" )
23
23
] )
24
- . get_matches_from ( vec ! [ "myprog " , "--flag" , "--color" ] ) ;
24
+ . get_matches_from ( vec ! [ "" , "--flag" , "--color" ] ) ;
25
25
assert ! ( m. is_present( "flag" ) ) ;
26
26
assert ! ( m. is_present( "color" ) ) ;
27
27
}
@@ -33,7 +33,7 @@ fn flag_using_mixed() {
33
33
Arg :: from_usage ( "-f, --flag 'some flag'" ) ,
34
34
Arg :: from_usage ( "-c, --color 'some other flag'" )
35
35
] )
36
- . get_matches_from ( vec ! [ "myprog " , "-f" , "--color" ] ) ;
36
+ . get_matches_from ( vec ! [ "" , "-f" , "--color" ] ) ;
37
37
assert ! ( m. is_present( "flag" ) ) ;
38
38
assert ! ( m. is_present( "color" ) ) ;
39
39
@@ -42,7 +42,7 @@ fn flag_using_mixed() {
42
42
Arg :: from_usage ( "-f, --flag 'some flag'" ) ,
43
43
Arg :: from_usage ( "-c, --color 'some other flag'" )
44
44
] )
45
- . get_matches_from ( vec ! [ "myprog " , "--flag" , "-c" ] ) ;
45
+ . get_matches_from ( vec ! [ "" , "--flag" , "-c" ] ) ;
46
46
assert ! ( m. is_present( "flag" ) ) ;
47
47
assert ! ( m. is_present( "color" ) ) ;
48
48
}
@@ -55,22 +55,157 @@ fn multiple_flags_in_single() {
55
55
Arg :: from_usage ( "-c, --color 'some other flag'" ) ,
56
56
Arg :: from_usage ( "-d, --debug 'another other flag'" )
57
57
] )
58
- . get_matches_from ( vec ! [ "myprog " , "-fcd" ] ) ;
58
+ . get_matches_from ( vec ! [ "" , "-fcd" ] ) ;
59
59
assert ! ( m. is_present( "flag" ) ) ;
60
60
assert ! ( m. is_present( "color" ) ) ;
61
61
assert ! ( m. is_present( "debug" ) ) ;
62
62
}
63
63
64
64
#[ test]
65
- #[ should_panic]
66
65
fn short_flag_misspel ( ) {
67
- App :: new ( "short_flag" )
68
- . arg ( Arg :: from_usage ( "-f1, --flag 'some flag'" ) ) ;
66
+ let a = Arg :: from_usage ( "-f1, --flag 'some flag'" ) ;
67
+ assert_eq ! ( a. name, "flag" ) ;
68
+ assert_eq ! ( a. short. unwrap( ) , 'f' ) ;
69
+ assert_eq ! ( a. long. unwrap( ) , "flag" ) ;
70
+ assert_eq ! ( a. help. unwrap( ) , "some flag" ) ;
71
+ assert ! ( !a. is_set( ArgSettings :: Multiple ) ) ;
72
+ assert ! ( a. val_names. is_none( ) ) ;
73
+ assert ! ( a. num_vals. is_none( ) ) ;
69
74
}
70
75
71
76
#[ test]
72
- #[ should_panic]
73
77
fn short_flag_name_missing ( ) {
74
- App :: new ( "short_flag" )
75
- . arg ( Arg :: from_usage ( "-f 'some flag'" ) ) ;
78
+ let a = Arg :: from_usage ( "-f 'some flag'" ) ;
79
+ assert_eq ! ( a. name, "f" ) ;
80
+ assert_eq ! ( a. short. unwrap( ) , 'f' ) ;
81
+ assert ! ( a. long. is_none( ) ) ;
82
+ assert_eq ! ( a. help. unwrap( ) , "some flag" ) ;
83
+ assert ! ( !a. is_set( ArgSettings :: Multiple ) ) ;
84
+ assert ! ( a. val_names. is_none( ) ) ;
85
+ assert ! ( a. num_vals. is_none( ) ) ;
86
+
87
+ }
88
+
89
+ #[ test]
90
+ fn create_flag ( ) {
91
+ let _ = App :: new ( "test" )
92
+ . arg ( Arg :: with_name ( "test" )
93
+ . short ( "t" )
94
+ . long ( "test" )
95
+ . help ( "testing testing" ) )
96
+ . get_matches ( ) ;
97
+ }
98
+
99
+ #[ test]
100
+ fn create_flag_usage ( ) {
101
+ let a = Arg :: from_usage ( "[flag] -f 'some help info'" ) ;
102
+ assert_eq ! ( a. name, "flag" ) ;
103
+ assert_eq ! ( a. short. unwrap( ) , 'f' ) ;
104
+ assert ! ( a. long. is_none( ) ) ;
105
+ assert_eq ! ( a. help. unwrap( ) , "some help info" ) ;
106
+ assert ! ( !a. is_set( ArgSettings :: Multiple ) ) ;
107
+ assert ! ( a. val_names. is_none( ) ) ;
108
+ assert ! ( a. num_vals. is_none( ) ) ;
109
+
110
+ let b = Arg :: from_usage ( "[flag] --flag 'some help info'" ) ;
111
+ assert_eq ! ( b. name, "flag" ) ;
112
+ assert_eq ! ( b. long. unwrap( ) , "flag" ) ;
113
+ assert ! ( b. short. is_none( ) ) ;
114
+ assert_eq ! ( b. help. unwrap( ) , "some help info" ) ;
115
+ assert ! ( !b. is_set( ArgSettings :: Multiple ) ) ;
116
+ assert ! ( a. val_names. is_none( ) ) ;
117
+ assert ! ( a. num_vals. is_none( ) ) ;
118
+
119
+ let b = Arg :: from_usage ( "--flag 'some help info'" ) ;
120
+ assert_eq ! ( b. name, "flag" ) ;
121
+ assert_eq ! ( b. long. unwrap( ) , "flag" ) ;
122
+ assert ! ( b. short. is_none( ) ) ;
123
+ assert_eq ! ( b. help. unwrap( ) , "some help info" ) ;
124
+ assert ! ( !b. is_set( ArgSettings :: Multiple ) ) ;
125
+ assert ! ( b. val_names. is_none( ) ) ;
126
+ assert ! ( b. num_vals. is_none( ) ) ;
127
+
128
+ let c = Arg :: from_usage ( "[flag] -f --flag 'some help info'" ) ;
129
+ assert_eq ! ( c. name, "flag" ) ;
130
+ assert_eq ! ( c. short. unwrap( ) , 'f' ) ;
131
+ assert_eq ! ( c. long. unwrap( ) , "flag" ) ;
132
+ assert_eq ! ( c. help. unwrap( ) , "some help info" ) ;
133
+ assert ! ( !c. is_set( ArgSettings :: Multiple ) ) ;
134
+ assert ! ( c. val_names. is_none( ) ) ;
135
+ assert ! ( c. num_vals. is_none( ) ) ;
136
+
137
+ let d = Arg :: from_usage ( "[flag] -f... 'some help info'" ) ;
138
+ assert_eq ! ( d. name, "flag" ) ;
139
+ assert_eq ! ( d. short. unwrap( ) , 'f' ) ;
140
+ assert ! ( d. long. is_none( ) ) ;
141
+ assert_eq ! ( d. help. unwrap( ) , "some help info" ) ;
142
+ assert ! ( d. is_set( ArgSettings :: Multiple ) ) ;
143
+ assert ! ( d. val_names. is_none( ) ) ;
144
+ assert ! ( d. num_vals. is_none( ) ) ;
145
+
146
+ let e = Arg :: from_usage ( "[flag] -f --flag... 'some help info'" ) ;
147
+ assert_eq ! ( e. name, "flag" ) ;
148
+ assert_eq ! ( e. long. unwrap( ) , "flag" ) ;
149
+ assert_eq ! ( e. short. unwrap( ) , 'f' ) ;
150
+ assert_eq ! ( e. help. unwrap( ) , "some help info" ) ;
151
+ assert ! ( e. is_set( ArgSettings :: Multiple ) ) ;
152
+ assert ! ( e. val_names. is_none( ) ) ;
153
+ assert ! ( e. num_vals. is_none( ) ) ;
154
+
155
+ let e = Arg :: from_usage ( "-f --flag... 'some help info'" ) ;
156
+ assert_eq ! ( e. name, "flag" ) ;
157
+ assert_eq ! ( e. long. unwrap( ) , "flag" ) ;
158
+ assert_eq ! ( e. short. unwrap( ) , 'f' ) ;
159
+ assert_eq ! ( e. help. unwrap( ) , "some help info" ) ;
160
+ assert ! ( e. is_set( ArgSettings :: Multiple ) ) ;
161
+ assert ! ( e. val_names. is_none( ) ) ;
162
+ assert ! ( e. num_vals. is_none( ) ) ;
163
+
164
+ let e = Arg :: from_usage ( "--flags" ) ;
165
+ assert_eq ! ( e. name, "flags" ) ;
166
+ assert_eq ! ( e. long. unwrap( ) , "flags" ) ;
167
+ assert ! ( e. val_names. is_none( ) ) ;
168
+ assert ! ( e. num_vals. is_none( ) ) ;
169
+
170
+ let e = Arg :: from_usage ( "--flags..." ) ;
171
+ assert_eq ! ( e. name, "flags" ) ;
172
+ assert_eq ! ( e. long. unwrap( ) , "flags" ) ;
173
+ assert ! ( e. is_set( ArgSettings :: Multiple ) ) ;
174
+ assert ! ( e. val_names. is_none( ) ) ;
175
+ assert ! ( e. num_vals. is_none( ) ) ;
176
+
177
+ let e = Arg :: from_usage ( "[flags] -f" ) ;
178
+ assert_eq ! ( e. name, "flags" ) ;
179
+ assert_eq ! ( e. short. unwrap( ) , 'f' ) ;
180
+ assert ! ( e. val_names. is_none( ) ) ;
181
+ assert ! ( e. num_vals. is_none( ) ) ;
182
+
183
+ let e = Arg :: from_usage ( "[flags] -f..." ) ;
184
+ assert_eq ! ( e. name, "flags" ) ;
185
+ assert_eq ! ( e. short. unwrap( ) , 'f' ) ;
186
+ assert ! ( e. is_set( ArgSettings :: Multiple ) ) ;
187
+ assert ! ( e. val_names. is_none( ) ) ;
188
+ assert ! ( e. num_vals. is_none( ) ) ;
189
+
190
+ let a = Arg :: from_usage ( "-f 'some help info'" ) ;
191
+ assert_eq ! ( a. name, "f" ) ;
192
+ assert_eq ! ( a. short. unwrap( ) , 'f' ) ;
193
+ assert ! ( a. long. is_none( ) ) ;
194
+ assert_eq ! ( a. help. unwrap( ) , "some help info" ) ;
195
+ assert ! ( !a. is_set( ArgSettings :: Multiple ) ) ;
196
+ assert ! ( a. val_names. is_none( ) ) ;
197
+ assert ! ( a. num_vals. is_none( ) ) ;
198
+
199
+ let e = Arg :: from_usage ( "-f" ) ;
200
+ assert_eq ! ( e. name, "f" ) ;
201
+ assert_eq ! ( e. short. unwrap( ) , 'f' ) ;
202
+ assert ! ( e. val_names. is_none( ) ) ;
203
+ assert ! ( e. num_vals. is_none( ) ) ;
204
+
205
+ let e = Arg :: from_usage ( "-f..." ) ;
206
+ assert_eq ! ( e. name, "f" ) ;
207
+ assert_eq ! ( e. short. unwrap( ) , 'f' ) ;
208
+ assert ! ( e. is_set( ArgSettings :: Multiple ) ) ;
209
+ assert ! ( e. val_names. is_none( ) ) ;
210
+ assert ! ( e. num_vals. is_none( ) ) ;
76
211
}
0 commit comments