#![feature(proc_macro_hygiene, decl_macro)] #[cfg(feature = "templates")] #[macro_use] extern crate rocket; #[cfg(feature = "templates")] extern crate rocket_contrib; #[cfg(feature = "templates")] mod templates_tests { use std::path::{Path, PathBuf}; use rocket::{Rocket, http::RawStr}; use rocket::config::{Config, Environment}; use rocket_contrib::templates::{Template, Metadata}; #[get("//")] fn template_check(md: Metadata, engine: &RawStr, name: &RawStr) -> Option<()> { match md.contains_template(&format!("{}/{}", engine, name)) { true => Some(()), false => None } } fn template_root() -> PathBuf { Path::new(env!("CARGO_MANIFEST_DIR")).join("tests").join("templates") } fn rocket() -> Rocket { let config = Config::build(Environment::Development) .extra("template_dir", template_root().to_str().expect("template directory")) .expect("valid configuration"); ::rocket::custom(config).attach(Template::fairing()) .mount("/", routes![template_check]) } #[cfg(feature = "tera_templates")] mod tera_tests { use super::*; use std::collections::HashMap; use rocket::http::Status; use rocket::local::Client; const UNESCAPED_EXPECTED: &'static str = "\nh_start\ntitle: _test_\nh_end\n\n\n