55
66use regex::Regex;
77
8- // use crate::params::parse_params;
98use crate::side_diff;
109use crate::utils;
1110use std::env::ArgsOs;
@@ -227,17 +226,21 @@ mod tests {
227226 assert_eq!(
228227 Ok(Params {
229228 executable: os("sdiff"),
230- from: os("foo "),
231- to: os("bar "),
229+ from: os("- "),
230+ to: os("- "),
232231 ..Default::default()
233232 }),
234- parse_params(
235- [os("sdiff"), os("foo"), os("bar")]
236- .iter()
237- .cloned()
238- .peekable()
239- )
233+ parse_params([os("sdiff"), os("-"), os("-")].iter().cloned().peekable())
240234 );
235+
236+ assert!(parse_params(
237+ [os("sdiff"), os("foo"), os("bar"), os("-"), os("-")]
238+ .iter()
239+ .cloned()
240+ .peekable()
241+ )
242+ .is_err());
243+
241244 for option in ["-t", "--expand-tabs"] {
242245 assert_eq!(
243246 Ok(Params {
@@ -255,6 +258,39 @@ mod tests {
255258 )
256259 );
257260 }
261+
262+ assert_eq!(
263+ Ok(Params {
264+ executable: os("sdiff"),
265+ from: os("foo"),
266+ to: os("bar"),
267+ width: 10,
268+ ..Default::default()
269+ }),
270+ parse_params(
271+ [os("sdiff"), os("--width=10"), os("foo"), os("bar")]
272+ .iter()
273+ .cloned()
274+ .peekable()
275+ )
276+ );
277+
278+ assert!(parse_params(
279+ [os("sdiff"), os("--width=0"), os("foo"), os("bar")]
280+ .iter()
281+ .cloned()
282+ .peekable()
283+ )
284+ .is_err());
285+
286+ assert!(parse_params(
287+ [os("sdiff"), os("--width=.1"), os("foo"), os("bar")]
288+ .iter()
289+ .cloned()
290+ .peekable()
291+ )
292+ .is_err());
293+
258294 assert_eq!(
259295 Ok(Params {
260296 executable: os("sdiff"),
@@ -269,6 +305,7 @@ mod tests {
269305 .peekable()
270306 )
271307 );
308+
272309 assert_eq!(
273310 Ok(Params {
274311 executable: os("sdiff"),
@@ -284,6 +321,15 @@ mod tests {
284321 .peekable()
285322 )
286323 );
324+
325+ assert!(parse_params(
326+ [os("sdiff"), os("--tabsize=0"), os("foo"), os("bar")]
327+ .iter()
328+ .cloned()
329+ .peekable()
330+ )
331+ .is_err());
332+
287333 assert_eq!(
288334 Ok(Params {
289335 executable: os("sdiff"),
@@ -299,41 +345,49 @@ mod tests {
299345 .peekable()
300346 )
301347 );
348+
349+ assert!(parse_params([os("sdiff")].iter().cloned().peekable()).is_err());
350+
302351 assert!(parse_params(
303352 [os("sdiff"), os("--tabsize"), os("foo"), os("bar")]
304353 .iter()
305354 .cloned()
306355 .peekable()
307356 )
308357 .is_err());
358+
309359 assert!(parse_params(
310360 [os("sdiff"), os("--tabsize="), os("foo"), os("bar")]
311361 .iter()
312362 .cloned()
313363 .peekable()
314364 )
315365 .is_err());
366+
316367 assert!(parse_params(
317368 [os("sdiff"), os("--tabsize=r2"), os("foo"), os("bar")]
318369 .iter()
319370 .cloned()
320371 .peekable()
321372 )
322373 .is_err());
374+
323375 assert!(parse_params(
324376 [os("sdiff"), os("--tabsize=-1"), os("foo"), os("bar")]
325377 .iter()
326378 .cloned()
327379 .peekable()
328380 )
329381 .is_err());
382+
330383 assert!(parse_params(
331384 [os("sdiff"), os("--tabsize=r2"), os("foo"), os("bar")]
332385 .iter()
333386 .cloned()
334387 .peekable()
335388 )
336389 .is_err());
390+
337391 assert!(parse_params(
338392 [
339393 os("sdiff"),
0 commit comments