#[cfg(test)]
macro_rules! assert_simple_behaviour {
($clear:expr, $secure:expr) => ({
assert_eq!($clear.iter().count(),
0);
$secure.add(Cookie::new(
"name",
"val"));
assert_eq!($clear.iter().count(),
1);
assert_eq!($secure.get(
"name").unwrap().value(),
"val");
assert_ne!($clear.get(
"name").unwrap().value(),
"val");
$secure.add(Cookie::new(
"another",
"two"));
assert_eq!($clear.iter().count(),
2);
$clear.remove(Cookie::named(
"another"));
assert_eq!($clear.iter().count(),
1);
$secure.remove(Cookie::named(
"name"));
assert_eq!($clear.iter().count(),
0);
})
}
#[cfg(test)]
macro_rules! assert_secure_behaviour {
($clear:expr, $secure:expr) => ({
$secure.add(Cookie::new(
"secure",
"secure"));
assert!($clear.get(
"secure").unwrap().value() !=
"secure");
assert!($secure.get(
"secure").unwrap().value() ==
"secure");
let mut cookie = $clear.get(
"secure").unwrap().clone();
let new_val = format!(
"{}l", cookie.value());
cookie.set_value(new_val);
$clear.add(cookie);
assert!($secure.get(
"secure").is_none());
let mut cookie = $clear.get(
"secure").unwrap().clone();
cookie.set_value(
"foobar");
$clear.add(cookie);
assert!($secure.get(
"secure").is_none());
})
}
// This is courtesty of `static_assertions`. That library is Copyright (c) 2017
// Nikolai Vazquez. See https://github.com/nvzqz/static-assertions-rs for more.
macro_rules! const_assert {
($x:expr $(,)?) => {
#[allow(unknown_lints, clippy::eq_op)]
const _: [();
0 - !{
const ASSERT: bool = $x; ASSERT }
as usize] = [];
};
}