mirror of
https://github.com/fluxerapp/fluxer
synced 2026-10-07 19:22:14 +09:00
fix: tighten edge cases across services (#3158)
This commit is contained in:
@@ -310,7 +310,7 @@ mod tests {
|
||||
fn fixture_secrets(fixture: &Value) -> Vec<Vec<u8>> {
|
||||
fixture["secrets_base64"]
|
||||
.as_array()
|
||||
.expect("the fixture carries a secret list")
|
||||
.expect("the fixture has a secret list")
|
||||
.iter()
|
||||
.map(|entry| {
|
||||
BASE64_STANDARD
|
||||
@@ -323,20 +323,20 @@ mod tests {
|
||||
fn cases<'a>(fixture: &'a Value, name: &str) -> &'a [Value] {
|
||||
fixture[name]
|
||||
.as_array()
|
||||
.expect("the fixture carries the case list")
|
||||
.expect("the fixture has the case list")
|
||||
.as_slice()
|
||||
}
|
||||
|
||||
fn text<'a>(case: &'a Value, field: &str) -> &'a str {
|
||||
case[field]
|
||||
.as_str()
|
||||
.unwrap_or_else(|| panic!("case carries {field}"))
|
||||
.unwrap_or_else(|| panic!("case has {field}"))
|
||||
}
|
||||
|
||||
fn number(case: &Value, field: &str) -> u64 {
|
||||
case[field]
|
||||
.as_u64()
|
||||
.unwrap_or_else(|| panic!("case carries {field}"))
|
||||
.unwrap_or_else(|| panic!("case has {field}"))
|
||||
}
|
||||
|
||||
fn secret_bytes() -> Vec<u8> {
|
||||
@@ -443,7 +443,7 @@ mod tests {
|
||||
data_packages += 1;
|
||||
(UrlKind::DataPackage, 0, with_data_package_signature)
|
||||
}
|
||||
other => panic!("{name} carries an unknown uc {other}"),
|
||||
other => panic!("{name} has an unknown uc {other}"),
|
||||
};
|
||||
assert_eq!(
|
||||
text(case, "signature_input"),
|
||||
@@ -548,7 +548,7 @@ mod tests {
|
||||
let signed = with_signature("https://media.test/x.gif", KEY, ANCHOR, now, &secret);
|
||||
let query = signed
|
||||
.split_once('?')
|
||||
.expect("a signed url carries a query")
|
||||
.expect("a signed url has a query")
|
||||
.1;
|
||||
let (issued, expires) = issue_window(ANCHOR, now);
|
||||
assert!(issued <= now && now < expires);
|
||||
@@ -576,7 +576,7 @@ mod tests {
|
||||
with_data_package_signature("https://media.test/x.gif", KEY, ANCHOR, now, &secret);
|
||||
let query = signed
|
||||
.split_once('?')
|
||||
.expect("a signed url carries a query")
|
||||
.expect("a signed url has a query")
|
||||
.1;
|
||||
let (issued, expires) = issue_window(ANCHOR, now);
|
||||
assert!(query.starts_with(&format!("ex=0&is={issued:08x}&hm=")));
|
||||
@@ -688,7 +688,7 @@ mod tests {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn a_signature_never_carries_across_keys_or_windows() {
|
||||
fn a_signature_never_validates_across_keys_or_windows() {
|
||||
let secret = secret_bytes();
|
||||
let now = ANCHOR;
|
||||
let (issued, expires) = issue_window(ANCHOR, now);
|
||||
|
||||
@@ -609,14 +609,14 @@ mod tests {
|
||||
let vectors = vectors.as_array().expect("vectors are an array");
|
||||
assert!(!vectors.is_empty());
|
||||
for vector in vectors {
|
||||
let url = vector["url"].as_str().expect("vector carries a url");
|
||||
let url = vector["url"].as_str().expect("vector has a url");
|
||||
let base_domain = vector["base_domain"]
|
||||
.as_str()
|
||||
.expect("vector carries a base domain");
|
||||
.expect("vector has a base domain");
|
||||
let public_port = vector["public_port"].as_u64().map(|port| port as u16);
|
||||
let expected = vector["normalized"]
|
||||
.as_str()
|
||||
.expect("vector carries a normalized url");
|
||||
.expect("vector has a normalized url");
|
||||
assert_eq!(
|
||||
expected,
|
||||
normalize_public_endpoint(url, base_domain, public_port),
|
||||
|
||||
@@ -267,8 +267,8 @@ mod tests {
|
||||
let vectors = vectors.as_array().expect("vectors are an array");
|
||||
assert!(!vectors.is_empty());
|
||||
for vector in vectors {
|
||||
let original = vector["url"].as_str().expect("vector carries a url");
|
||||
let expected = vector["path"].as_str().expect("vector carries a path");
|
||||
let original = vector["url"].as_str().expect("vector has a url");
|
||||
let expected = vector["path"].as_str().expect("vector has a path");
|
||||
let normalized = url::Url::parse(original).expect("vector url parses");
|
||||
assert_eq!(
|
||||
expected,
|
||||
|
||||
Reference in New Issue
Block a user