implemented mime mode

- required for picoserve
- moved testdata
This commit is contained in:
2025-07-30 00:53:05 +02:00
parent 685c0071f6
commit 659ab3f447
14 changed files with 183 additions and 10 deletions

View File

@@ -1,7 +1,7 @@
use dir_embed::Embed;
#[derive(Embed)]
#[dir = "./../testdata/"]
#[dir = "./../testdata/bytes/"]
#[mode = "bytes"]
pub struct Assets;
@@ -41,3 +41,9 @@ fn byte_sub_directories_content() {
let content_is = Assets::get("sub/file2.txt").unwrap();
assert_eq!(*content_is, *content_should);
}
#[test]
fn byte_read_bin() {
let file = Assets::get("bin").unwrap();
assert_eq!(file, [0xDE, 0xAD, 0xBE, 0xEF]);
}

61
tests/mime.rs Normal file
View File

@@ -0,0 +1,61 @@
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");
}

View File

@@ -1,7 +1,7 @@
use dir_embed::Embed;
#[derive(Embed)]
#[dir = "./../testdata/"]
#[dir = "./../testdata/str/"]
#[mode = "str"]
pub struct Assets;