mirror of https://github.com/Y2Z/monolith
add option to blacklist/whitelist domains
parent
54609b10e5
commit
89ce5029b9
@ -0,0 +1,154 @@
|
|||||||
|
// ██████╗ █████╗ ███████╗███████╗██╗███╗ ██╗ ██████╗
|
||||||
|
// ██╔══██╗██╔══██╗██╔════╝██╔════╝██║████╗ ██║██╔════╝
|
||||||
|
// ██████╔╝███████║███████╗███████╗██║██╔██╗ ██║██║ ███╗
|
||||||
|
// ██╔═══╝ ██╔══██║╚════██║╚════██║██║██║╚██╗██║██║ ██║
|
||||||
|
// ██║ ██║ ██║███████║███████║██║██║ ╚████║╚██████╔╝
|
||||||
|
// ╚═╝ ╚═╝ ╚═╝╚══════╝╚══════╝╚═╝╚═╝ ╚═══╝ ╚═════╝
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod passing {
|
||||||
|
use monolith::utils;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn sub_domain_is_within_dotted_sub_domain() {
|
||||||
|
assert!(utils::domain_is_within_domain(
|
||||||
|
"news.ycombinator.com",
|
||||||
|
".news.ycombinator.com"
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn domain_is_within_dotted_domain() {
|
||||||
|
assert!(utils::domain_is_within_domain(
|
||||||
|
"ycombinator.com",
|
||||||
|
".ycombinator.com"
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn sub_domain_is_within_dotted_domain() {
|
||||||
|
assert!(utils::domain_is_within_domain(
|
||||||
|
"news.ycombinator.com",
|
||||||
|
".ycombinator.com"
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn sub_domain_is_within_dotted_top_level_domain() {
|
||||||
|
assert!(utils::domain_is_within_domain(
|
||||||
|
"news.ycombinator.com",
|
||||||
|
".com"
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn domain_is_within_itself() {
|
||||||
|
assert!(utils::domain_is_within_domain(
|
||||||
|
"ycombinator.com",
|
||||||
|
"ycombinator.com"
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn domain_with_trailing_dot_is_within_itself() {
|
||||||
|
assert!(utils::domain_is_within_domain(
|
||||||
|
"ycombinator.com.",
|
||||||
|
"ycombinator.com"
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn domain_with_trailing_dot_is_within_single_dot() {
|
||||||
|
assert!(utils::domain_is_within_domain("ycombinator.com.", "."));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn domain_matches_single_dot() {
|
||||||
|
assert!(utils::domain_is_within_domain("ycombinator.com", "."));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn dotted_domain_must_be_within_dotted_domain() {
|
||||||
|
assert!(utils::domain_is_within_domain(
|
||||||
|
".ycombinator.com",
|
||||||
|
".ycombinator.com"
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn empty_is_within_dot() {
|
||||||
|
assert!(utils::domain_is_within_domain("", "."));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn both_dots() {
|
||||||
|
assert!(utils::domain_is_within_domain(".", "."));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ███████╗ █████╗ ██╗██╗ ██╗███╗ ██╗ ██████╗
|
||||||
|
// ██╔════╝██╔══██╗██║██║ ██║████╗ ██║██╔════╝
|
||||||
|
// █████╗ ███████║██║██║ ██║██╔██╗ ██║██║ ███╗
|
||||||
|
// ██╔══╝ ██╔══██║██║██║ ██║██║╚██╗██║██║ ██║
|
||||||
|
// ██║ ██║ ██║██║███████╗██║██║ ╚████║╚██████╔╝
|
||||||
|
// ╚═╝ ╚═╝ ╚═╝╚═╝╚══════╝╚═╝╚═╝ ╚═══╝ ╚═════╝
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod failing {
|
||||||
|
use monolith::utils;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn sub_domain_must_not_be_within_domain() {
|
||||||
|
assert!(!utils::domain_is_within_domain(
|
||||||
|
"news.ycombinator.com",
|
||||||
|
"ycombinator.com"
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn domain_must_not_be_within_top_level_domain() {
|
||||||
|
assert!(!utils::domain_is_within_domain("ycombinator.com", "com"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn different_domains_must_not_be_within_one_another() {
|
||||||
|
assert!(!utils::domain_is_within_domain(
|
||||||
|
"news.ycombinator.com",
|
||||||
|
"kernel.org"
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn sub_domain_is_not_within_wrong_top_level_domain() {
|
||||||
|
assert!(!utils::domain_is_within_domain(
|
||||||
|
"news.ycombinator.com",
|
||||||
|
"org"
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn dotted_domain_is_not_within_domain() {
|
||||||
|
assert!(!utils::domain_is_within_domain(
|
||||||
|
".ycombinator.com",
|
||||||
|
"ycombinator.com"
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn different_domain_is_not_within_dotted_domain() {
|
||||||
|
assert!(!utils::domain_is_within_domain(
|
||||||
|
"www.doodleoptimize.com",
|
||||||
|
".ycombinator.com"
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn no_domain_can_be_within_empty_domain() {
|
||||||
|
assert!(!utils::domain_is_within_domain("ycombinator.com", ""));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn both_can_not_be_empty() {
|
||||||
|
assert!(!utils::domain_is_within_domain("", ""));
|
||||||
|
}
|
||||||
|
}
|
@ -1,4 +1,5 @@
|
|||||||
mod detect_media_type;
|
mod detect_media_type;
|
||||||
|
mod domain_is_within_domain;
|
||||||
mod indent;
|
mod indent;
|
||||||
mod parse_content_type;
|
mod parse_content_type;
|
||||||
mod retrieve_asset;
|
mod retrieve_asset;
|
||||||
|
Loading…
Reference in New Issue