This commit is contained in:
Mateusz Gruszczyński committed 2026-10-04 11:15:58 +02:00
1 parent 87e571c170
commit fa7abc9e53
308 files changed
+49746 -50237

No files matched your search

+1 -48
View File
@@ -122,51 +122,4 @@ pub fn apply(headers: &mut HeaderMap, rules: &[CompiledRule]) {
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn transformations_preserve_distinct_set_cookie_fields() {
let source = r#"{"request":[],"response":[{"op":"remove","name":"server"},{"op":"set","name":"x-test","value":"one"},{"op":"append","name":"x-test","value":"two"},{"op":"append","name":"set-cookie","value":"b=2"}]}"#;
let rules: HeaderRules = serde_json::from_str(source).unwrap();
let compiled = rules.compile().unwrap();
let mut headers = HeaderMap::new();
headers.insert("server", "upstream".parse().unwrap());
headers.append("set-cookie", "a=1".parse().unwrap());
apply(&mut headers, &compiled.response);
assert!(!headers.contains_key("server"));
assert_eq!(headers.get_all("x-test").iter().count(), 2);
assert_eq!(headers.get_all("set-cookie").iter().count(), 2);
}
#[test]
fn transport_identity_and_crlf_are_rejected() {
for name in [
"Host",
"Connection",
"Content-Length",
"x-forwarded-for",
"Upgrade",
"X-RustProxy-Backend",
"X-RustProxy-Backend-Time",
"X-Rust-Proxy-Backend-Time",
] {
let rules = HeaderRules {
request: vec![Rule {
op: Operation::Set,
name: name.into(),
value: Some("x".into()),
}],
response: vec![],
};
assert!(rules.compile().is_err(), "{name}");
}
let rules = HeaderRules {
request: vec![Rule {
op: Operation::Set,
name: "x-test".into(),
value: Some("hello\r\ninjected: yes".into()),
}],
response: vec![],
};
assert!(rules.compile().is_err());
}
}
include!("headers/tests.rs");