diff --git a/src/extract.rs b/src/extract.rs index 07fe944..a5be89e 100644 --- a/src/extract.rs +++ b/src/extract.rs @@ -9,7 +9,7 @@ use std::path::Path; use std::{collections::HashSet, convert::TryFrom}; use url::Url; -#[derive(Clone, Debug)] +#[derive(Clone, Debug, PartialEq, Eq)] pub enum FileType { Html, Markdown, @@ -28,7 +28,7 @@ impl> From

for FileType { let path = p.as_ref(); match path.extension() { Some(ext) => match ext { - _ if ext == "md" => FileType::Markdown, + _ if (ext == "md" || ext == "markdown") => FileType::Markdown, _ if (ext == "htm" || ext == "html") => FileType::Html, _ => FileType::Plaintext, }, @@ -202,6 +202,25 @@ mod test { content } + #[test] + fn test_file_type() { + assert_eq!(FileType::from(Path::new("test.md")), FileType::Markdown); + assert_eq!( + FileType::from(Path::new("test.markdown")), + FileType::Markdown + ); + assert_eq!(FileType::from(Path::new("test.html")), FileType::Html); + assert_eq!(FileType::from(Path::new("test.txt")), FileType::Plaintext); + assert_eq!( + FileType::from(Path::new("test.something")), + FileType::Plaintext + ); + assert_eq!( + FileType::from(Path::new("/absolute/path/to/test.something")), + FileType::Plaintext + ); + } + #[test] fn test_extract_markdown_links() { let input = "This is [a test](https://endler.dev). This is a relative link test [Relative Link Test](relative_link)";