1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
use search_path::SearchPath;
use std::path::PathBuf;
#[cfg(target_family = "windows")]
const SIMPLE_PATH: &str = "a;b;c";
#[cfg(not(target_family = "windows"))]
const SIMPLE_PATH: &str = "a:b:c";
#[test]
fn test_append() {
let mut search_path = SearchPath::new_or("UNLIKELY_THIS_VAR_EXISTS", SIMPLE_PATH);
assert!(!search_path.contains(&PathBuf::from("d")));
search_path.append(PathBuf::from("d"));
assert!(search_path.contains(&PathBuf::from("d")));
assert_eq!(search_path.iter().last(), Some(&PathBuf::from("d")));
}
#[test]
fn test_append_cwd() {
let mut search_path = SearchPath::new_or("UNLIKELY_THIS_VAR_EXISTS", SIMPLE_PATH);
assert!(!search_path.contains(&PathBuf::from(".")));
search_path.append_cwd();
assert!(search_path.contains(&PathBuf::from(".")));
assert_eq!(search_path.iter().last(), Some(&PathBuf::from(".")));
}
#[test]
fn test_prepend() {
let mut search_path = SearchPath::new_or("UNLIKELY_THIS_VAR_EXISTS", SIMPLE_PATH);
assert!(!search_path.contains(&PathBuf::from("d")));
search_path.prepend(PathBuf::from("d"));
assert!(search_path.contains(&PathBuf::from("d")));
assert_eq!(search_path.iter().next(), Some(&PathBuf::from("d")));
}
#[test]
fn test_prepend_cwd() {
let mut search_path = SearchPath::new_or("UNLIKELY_THIS_VAR_EXISTS", SIMPLE_PATH);
assert!(!search_path.contains(&PathBuf::from(".")));
search_path.prepend_cwd();
assert!(search_path.contains(&PathBuf::from(".")));
assert_eq!(search_path.iter().next(), Some(&PathBuf::from(".")));
}
#[test]
fn test_remove() {
let mut search_path = SearchPath::new_or("UNLIKELY_THIS_VAR_EXISTS", SIMPLE_PATH);
assert!(search_path.contains(&PathBuf::from("a")));
search_path.remove(&PathBuf::from("a"));
assert!(!search_path.contains(&PathBuf::from("a")));
}
#[cfg(target_family = "windows")]
const DUPLICATES_PATH: &str = "a;b;a;b;c;a;c";
#[cfg(not(target_family = "windows"))]
const DUPLICATES_PATH: &str = "a:b:a:b:c:a:c";
#[test]
fn test_dedup() {
let mut search_path = SearchPath::new_or("UNLIKELY_THIS_VAR_EXISTS", DUPLICATES_PATH);
search_path.dedup();
assert_eq!(search_path.len(), 3);
assert!(search_path.contains(&PathBuf::from("a")));
assert!(search_path.contains(&PathBuf::from("b")));
assert!(search_path.contains(&PathBuf::from("c")));
}
|