summaryrefslogtreecommitdiffstats
path: root/core/tests/resource/load_file.rs
diff options
context:
space:
mode:
Diffstat (limited to 'core/tests/resource/load_file.rs')
-rw-r--r--core/tests/resource/load_file.rs55
1 files changed, 55 insertions, 0 deletions
diff --git a/core/tests/resource/load_file.rs b/core/tests/resource/load_file.rs
new file mode 100644
index 0000000..a1b5407
--- /dev/null
+++ b/core/tests/resource/load_file.rs
@@ -0,0 +1,55 @@
+use std::path::Path;
+use std::env;
+
+use futures::Future;
+use soft_ascii_string::SoftAsciiString;
+use headers::header_components::{MediaType, Domain};
+use mail_core::{
+ EncData,
+ UseMediaType,
+ IRI,
+ Source,
+ context::Context,
+};
+use mail_core::context::CompositeContext;
+use mail_core::default_impl::{FsResourceLoader, simple_cpu_pool, HashedIdGen, simple_context};
+
+fn dumy_ctx(resource_loader: FsResourceLoader) -> simple_context::Context {
+ let domain = Domain::from_unchecked("hy.test".to_owned());
+ let unique_part = SoftAsciiString::from_unchecked("w09ad8f");
+ let id_gen = HashedIdGen::new(domain, unique_part).unwrap();
+ CompositeContext::new(resource_loader, simple_cpu_pool(), id_gen)
+}
+
+fn loaded_resource(path: &str, media_type: &str, name: Option<&str>) -> EncData {
+ let resource_loader: FsResourceLoader = FsResourceLoader::new(
+ env::current_dir().unwrap().join(Path::new("./test_resources/"))
+ );
+
+ let ctx = dumy_ctx(resource_loader);
+
+
+ let source = Source {
+ iri: IRI::from_parts("path", path).unwrap(),
+ use_media_type: UseMediaType::Default(MediaType::parse(media_type).unwrap()),
+ use_file_name: name.map(|s|s.to_owned()),
+ };
+
+ ctx.load_resource(&source).wait().unwrap()
+}
+
+
+#[test]
+fn get_name_from_path() {
+ let enc_data = loaded_resource("img.png", "image/png", None);
+ assert_eq!(enc_data.file_meta().file_name, Some("img.png".to_owned()));
+}
+
+#[test]
+fn use_name_is_used() {
+ let enc_data =
+ loaded_resource("img.png", "image/png", Some("That Image"));
+
+ assert_eq!(enc_data.file_meta().file_name, Some("That Image".to_owned()));
+}
+