embed-dir/tests/mime.rs
Niklas Kapelle 659ab3f447
implemented mime mode
- required for picoserve
- moved testdata
2025-07-30 00:53:05 +02:00

62 lines
1.3 KiB
Rust

use dir_embed::Embed;
#[derive(Embed)]
#[dir = "./../testdata/bytes/"]
#[mode = "mime"]
pub struct Assets;
#[test]
fn mime_get() {
assert!(Assets::get("file1.txt").is_some());
}
#[test]
fn mime_get_missing() {
assert!(Assets::get("missing.txt").is_none());
}
#[test]
fn mime_read_content() {
let content_should = "file1".as_bytes();
let content_is = Assets::get("file1.txt").unwrap();
assert_eq!(*content_is.0, *content_should);
}
#[test]
fn mime_parse_string() {
let file: &[u8] = Assets::get("file1.txt").expect("Can't find file").0;
let string = str::from_utf8(file).expect("Failed to parse file");
assert_eq!(string, "file1");
}
#[test]
fn mime_sub_directories_get() {
assert!(Assets::get("sub/file2.txt").is_some());
}
#[test]
fn mime_sub_directories_content() {
let content_should = "file2".as_bytes();
let content_is = Assets::get("sub/file2.txt").unwrap();
assert_eq!(*content_is.0, *content_should);
}
#[test]
fn mime_type_html() {
let file = Assets::get("index.html").unwrap();
assert_eq!(file.1, "text/html");
}
#[test]
fn mime_type_plain() {
let file = Assets::get("file1.txt").unwrap();
assert_eq!(file.1, "text/plain");
}
#[test]
fn mime_default_type() {
let file = Assets::get("bin").unwrap();
assert_eq!(file.1, "application/octet-stream");
}