#![feature(proc_macro_non_items, proc_macro_gen, decl_macro)] #[macro_use] extern crate rocket; 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::{Template, TemplateMetadata}; #[get("//")] fn template_check(md: TemplateMetadata, 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