use std::path::PathBuf;
use crate::{PathBufExt, PathExt};
#[test]
fn clean_path() {
let path = PathBuf::from("\\\\?\\C:\\Users\\morgan.yu\\hello.txt");
assert!(path.is_clean());
assert!(path.has_clean_file_name());
}
#[test]
fn dirty_path() {
let path = PathBuf::from("C:\\Users\\turbo::<fish>\\collect::<Vec<_>>().txt");
assert!(path.is_dirty());
assert!(path.has_dirty_file_name());
}
#[test]
fn dirty_path_clean_filename() {
let path = PathBuf::from("D:\\Games\\TITANFALL|2\\hl2.exe");
assert!(path.is_dirty());
assert!(path.has_clean_file_name());
}
#[test]
fn sanitise_filename() {
let mut path = PathBuf::from("D:\\Examples\\*tada!*.txt");
assert!(path.has_dirty_file_name());
assert_eq!(path.sanitise_filename("_"), Some(true));
assert!(path.has_clean_file_name());
assert!(path.is_clean());
assert!(path.file_name().is_some_and(|file_name| file_name.to_str() == Some("_tada!_.txt")));
}