41 lines
879 B
Rust
41 lines
879 B
Rust
#![feature(decl_macro)]
|
|
|
|
#[macro_use]
|
|
extern crate rocket;
|
|
|
|
const COOKIE_NAME: &str = "foobar";
|
|
const COOKIE_LEN: usize = 64;
|
|
|
|
fn client() -> rocket::local::Client {
|
|
rocket::local::Client::new(rocket()).unwrap()
|
|
}
|
|
|
|
fn rocket() -> rocket::Rocket {
|
|
rocket::ignite()
|
|
.attach(rocket_csrf::Fairing::new(
|
|
rocket_csrf::CsrfConfig::default()
|
|
.with_cookie_name(COOKIE_NAME)
|
|
.with_cookie_len(COOKIE_LEN)
|
|
.with_lifetime(time::Duration::days(3)),
|
|
))
|
|
.mount("/", routes![index])
|
|
}
|
|
|
|
#[get("/")]
|
|
fn index() {}
|
|
|
|
#[test]
|
|
fn add_csrf_token_to_cookies() {
|
|
base64::decode(
|
|
client()
|
|
.get("/")
|
|
.dispatch()
|
|
.cookies()
|
|
.iter()
|
|
.find(|cookie| cookie.name() == COOKIE_NAME)
|
|
.unwrap()
|
|
.value(),
|
|
)
|
|
.unwrap();
|
|
}
|