v0.33.8
This commit is contained in:
1 parent
6b937aaf85
commit
87c8393d86
79 files changed
+6727
-297
No files matched your search
@@ -24,6 +24,38 @@ mod tests {
|
||||
assert!(settings.enabled());
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn narrowed_request_headers_preserve_encoding_and_skip_decisions() {
|
||||
for accept in ["gzip", "br;q=0.8, gzip;q=0.5", "zstd", "identity", "*;q=0"] {
|
||||
for method in [Method::GET, Method::HEAD, Method::POST] {
|
||||
for skip in [None, Some("range"), Some("cache-control")] {
|
||||
let mut headers = HeaderMap::new();
|
||||
headers.append("accept-encoding", accept.parse().unwrap());
|
||||
headers.append("accept-encoding", "deflate;q=0".parse().unwrap());
|
||||
headers.append("cache-control", "max-age=0".parse().unwrap());
|
||||
if let Some(name) = skip {
|
||||
headers.append(name, if name == "range" { "bytes=0-3" } else { "no-transform" }.parse().unwrap());
|
||||
}
|
||||
headers.insert("cookie", "session=private".parse().unwrap());
|
||||
headers.insert("authorization", "Bearer test".parse().unwrap());
|
||||
headers.insert("x-large-custom", "x".repeat(4096).parse().unwrap());
|
||||
let selected = request_headers(&headers);
|
||||
for name in ["accept-encoding", "range", "cache-control"] {
|
||||
assert_eq!(headers.get_all(name).iter().collect::<Vec<_>>(), selected.get_all(name).iter().collect::<Vec<_>>());
|
||||
}
|
||||
assert!(!selected.contains_key("cookie"));
|
||||
assert!(!selected.contains_key("authorization"));
|
||||
let full = encode(response(), &headers, &method, &Settings::default()).await;
|
||||
let narrow = encode(response(), &selected, &method, &Settings::default()).await;
|
||||
assert_eq!(full.status(), narrow.status());
|
||||
assert_eq!(full.headers(), narrow.headers());
|
||||
assert_eq!(full.into_body().collect().await.unwrap().to_bytes(), narrow.into_body().collect().await.unwrap().to_bytes());
|
||||
}
|
||||
}
|
||||
}
|
||||
assert!(request_headers(&HeaderMap::new()).is_empty());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn scoped_codec_overrides_keep_global_codecs_authoritative() {
|
||||
let global = Settings::default();
|
||||
|
||||
Reference in new issue
Block a user