diff options
Diffstat (limited to 'clap/tests/version.rs')
| -rw-r--r-- | clap/tests/version.rs | 58 | 
1 files changed, 58 insertions, 0 deletions
| diff --git a/clap/tests/version.rs b/clap/tests/version.rs new file mode 100644 index 0000000..8bbd474 --- /dev/null +++ b/clap/tests/version.rs @@ -0,0 +1,58 @@ +extern crate clap; +extern crate regex; + +use std::str; + +use clap::{App, Arg, ErrorKind}; + +include!("../clap-test.rs"); + +static VERSION: &'static str = "clap-test v1.4.8"; + +#[test] +fn version_short() { +    let m = App::new("test") +        .author("Kevin K.") +        .about("tests stuff") +        .version("1.3") +        .get_matches_from_safe(vec!["myprog", "-V"]); + +    assert!(m.is_err()); +    assert_eq!(m.unwrap_err().kind, ErrorKind::VersionDisplayed); +} + +#[test] +fn version_long() { +    let m = App::new("test") +        .author("Kevin K.") +        .about("tests stuff") +        .version("1.3") +        .get_matches_from_safe(vec!["myprog", "--version"]); + +    assert!(m.is_err()); +    assert_eq!(m.unwrap_err().kind, ErrorKind::VersionDisplayed); +} + +#[test] +fn complex_version_output() { +    let mut a = App::new("clap-test").version("v1.4.8"); +    let _ = a.get_matches_from_safe_borrow(vec![""]); + +        // Now we check the output of print_version() +        let mut ver = vec![]; +        a.write_version(&mut ver).unwrap(); +        assert_eq!(str::from_utf8(&ver).unwrap(), VERSION); +} + +#[test] +fn override_ver() { +    let m = App::new("test") +        .author("Kevin K.") +        .about("tests stuff") +        .version("1.3") +        .arg(Arg::from_usage("-v, --version 'some version'")) +        .get_matches_from_safe(vec!["test", "--version"]); + +    assert!(m.is_ok()); +    assert!(m.unwrap().is_present("version")); +} | 
