#![feature(plugin, decl_macro)] #![plugin(rocket_codegen)] extern crate rocket; extern crate rocket_contrib; #[cfg(feature = "templates")] mod templates_tests { use rocket::{http::RawStr, response::content::Plain, Rocket}; use rocket::config::{Config, Environment}; use rocket_contrib::{Template, TemplateMetadata}; use std::env; use std::path::PathBuf; #[get("//")] fn contains_template(template_metadata: TemplateMetadata, engine: &RawStr, name: &RawStr) -> Plain { Plain(template_metadata.contains_template(&format!("{}/{}", engine, name)).to_string()) } fn template_root() -> PathBuf { let cwd = env::current_dir().expect("current working directory"); cwd.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![contains_template]) } #[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