mirror of https://github.com/Y2Z/monolith.git
88 lines
4.1 KiB
Rust
88 lines
4.1 KiB
Rust
// ██████╗ █████╗ ███████╗███████╗██╗███╗ ██╗ ██████╗
|
|
// ██╔══██╗██╔══██╗██╔════╝██╔════╝██║████╗ ██║██╔════╝
|
|
// ██████╔╝███████║███████╗███████╗██║██╔██╗ ██║██║ ███╗
|
|
// ██╔═══╝ ██╔══██║╚════██║╚════██║██║██║╚██╗██║██║ ██║
|
|
// ██║ ██║ ██║███████║███████║██║██║ ╚████║╚██████╔╝
|
|
// ╚═╝ ╚═╝ ╚═╝╚══════╝╚══════╝╚═╝╚═╝ ╚═══╝ ╚═════╝
|
|
|
|
#[cfg(test)]
|
|
mod passing {
|
|
use monolith::cookies;
|
|
|
|
#[test]
|
|
fn parse_file() {
|
|
let file_contents =
|
|
"# Netscape HTTP Cookie File\n127.0.0.1\tFALSE\t/\tFALSE\t0\tUSER_TOKEN\tin";
|
|
let result = cookies::parse_cookie_file_contents(&file_contents).unwrap();
|
|
assert_eq!(result.len(), 1);
|
|
assert_eq!(result[0].domain, "127.0.0.1");
|
|
assert_eq!(result[0].include_subdomains, false);
|
|
assert_eq!(result[0].path, "/");
|
|
assert_eq!(result[0].https_only, false);
|
|
assert_eq!(result[0].expires, 0);
|
|
assert_eq!(result[0].name, "USER_TOKEN");
|
|
assert_eq!(result[0].value, "in");
|
|
}
|
|
|
|
#[test]
|
|
fn parse_multiline_file() {
|
|
let file_contents = "# HTTP Cookie File\n127.0.0.1\tFALSE\t/\tFALSE\t0\tUSER_TOKEN\tin\n127.0.0.1\tTRUE\t/\tTRUE\t9\tUSER_TOKEN\tout\n\n";
|
|
let result = cookies::parse_cookie_file_contents(&file_contents).unwrap();
|
|
assert_eq!(result.len(), 2);
|
|
assert_eq!(result[0].domain, "127.0.0.1");
|
|
assert_eq!(result[0].include_subdomains, false);
|
|
assert_eq!(result[0].path, "/");
|
|
assert_eq!(result[0].https_only, false);
|
|
assert_eq!(result[0].expires, 0);
|
|
assert_eq!(result[0].name, "USER_TOKEN");
|
|
assert_eq!(result[0].value, "in");
|
|
assert_eq!(result[1].domain, "127.0.0.1");
|
|
assert_eq!(result[1].include_subdomains, true);
|
|
assert_eq!(result[1].path, "/");
|
|
assert_eq!(result[1].https_only, true);
|
|
assert_eq!(result[1].expires, 9);
|
|
assert_eq!(result[1].name, "USER_TOKEN");
|
|
assert_eq!(result[1].value, "out");
|
|
}
|
|
}
|
|
|
|
// ███████╗ █████╗ ██╗██╗ ██╗███╗ ██╗ ██████╗
|
|
// ██╔════╝██╔══██╗██║██║ ██║████╗ ██║██╔════╝
|
|
// █████╗ ███████║██║██║ ██║██╔██╗ ██║██║ ███╗
|
|
// ██╔══╝ ██╔══██║██║██║ ██║██║╚██╗██║██║ ██║
|
|
// ██║ ██║ ██║██║███████╗██║██║ ╚████║╚██████╔╝
|
|
// ╚═╝ ╚═╝ ╚═╝╚═╝╚══════╝╚═╝╚═╝ ╚═══╝ ╚═════╝
|
|
|
|
#[cfg(test)]
|
|
mod failing {
|
|
use monolith::cookies;
|
|
|
|
#[test]
|
|
fn empty() {
|
|
let file_contents = "";
|
|
let result = cookies::parse_cookie_file_contents(&file_contents).unwrap();
|
|
assert_eq!(result.len(), 0);
|
|
}
|
|
|
|
#[test]
|
|
fn no_header() {
|
|
let file_contents = "127.0.0.1 FALSE / FALSE 0 USER_TOKEN in";
|
|
match cookies::parse_cookie_file_contents(&file_contents) {
|
|
Ok(_result) => {
|
|
assert!(false);
|
|
}
|
|
Err(_e) => {
|
|
assert!(true);
|
|
}
|
|
}
|
|
}
|
|
|
|
#[test]
|
|
fn spaces_instead_of_tabs() {
|
|
let file_contents =
|
|
"# HTTP Cookie File\n127.0.0.1 FALSE / FALSE 0 USER_TOKEN in";
|
|
let result = cookies::parse_cookie_file_contents(&file_contents).unwrap();
|
|
assert_eq!(result.len(), 0);
|
|
}
|
|
}
|