#![feature(proc_macro_hygiene)] #[cfg(feature = "templates")] #[macro_use] extern crate rocket; #[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 } } #[get("/is_reloading")] fn is_reloading(md: Metadata<'_>) -> Option<()> { if md.reloading() { Some(()) } else { 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, is_reloading]) } #[cfg(feature = "tera_templates")] mod tera_tests { use super::*; use std::collections::HashMap; use rocket::http::Status; use rocket::local::asynchronous::Client; const UNESCAPED_EXPECTED: &'static str = "\nh_start\ntitle: _test_\nh_end\n\n\n