use crate::SPath;
#[test]
fn test_spath_is_likely_text_ext_false() {
#[rustfmt::skip]
let cases: &[&str] = &[
"png", "jpg", "jpeg", "gif", "webp", "mp3", "mp4", "ttf", "woff",
"exe", "so", "dll",
"db", "db3", "sqlite", "sqlite3",
"pdf", "docx","doc"
];
for ext in cases {
let filename = format!("file.{}", ext);
let spath = SPath::new(&filename);
let result = spath.is_likely_text();
if result {
let mimes = mime_guess::from_path(spath);
panic!("is_likely_text({filename:?}) expected false but got {result:?}. mime guess: {mimes:?}",)
}
}
}
#[test]
fn test_spath_is_likely_text_ext_true() {
#[rustfmt::skip]
let cases: &[&str] = &[
"md", "markdown", "csv", "toml", "yaml", "yml", "json", "jsonc", "jsonl", "ndjson", "ldjson",
"xml", "html", "htm", "css", "scss", "sass", "less", "js", "mjs", "cjs", "ts", "tsx", "jsx",
"rs", "py", "rb", "go", "java", "c", "cpp", "h", "hpp", "sh", "bash", "zsh", "fish", "php",
"lua", "ini", "cfg", "conf", "sql", "graphql", "gql", "svg", "log", "env", "txt", "dart", "tsv",
"tex", "scala", "vue", "svelte", "hbs", "astro", "cs", "kt", "kotlin", "aip",
];
for ext in cases {
let filename = format!("file.{}", ext);
let spath = SPath::new(&filename);
let result = spath.is_likely_text();
assert!(
result,
"is_likely_text({:?}) expected true but got {:?}",
filename, result
);
}
}
#[test]
fn test_spath_is_likely_text_filename_true() {
let cases: &[&str] = &["Dockerfile", "Makefile", "LICENSE", ".gitignore", ".env"];
for filename in cases {
let spath = SPath::new(*filename);
let result = spath.is_likely_text();
assert!(
result,
"is_likely_text({:?}) expected true but got {:?}",
filename, result
);
}
}