///|
test "serialize all byte spec forms" {
assert_str_eq(
serialize_range(unwrap_request("bytes=0-499,500-,-100")),
"bytes=0-499,500-,-100",
)
}
///|
test "canonicalize lowercases bytes unit" {
assert_str_eq(canonicalize_range("BYTES=0-9").unwrap(), "bytes=0-9")
}
///|
test "canonicalize removes OWS" {
assert_str_eq(
canonicalize_range(" bytes = 0-9 , 10- ").unwrap(),
"bytes=0-9,10-",
)
}
///|
test "canonicalize removes leading zeroes" {
assert_str_eq(
canonicalize_range("bytes=000-009,-001").unwrap(),
"bytes=0-9,-1",
)
}
///|
test "canonicalization does not merge adjacent ranges" {
assert_str_eq(canonicalize_range("bytes=0-4,5-9").unwrap(), "bytes=0-4,5-9")
}
///|
test "unknown unit roundtrips raw set" {
assert_str_eq(
serialize_range(unwrap_request("widgets=alpha beta")),
"widgets=alpha beta",
)
}
///|
test "canonicalize is idempotent" {
let x = canonicalize_range(" BYTES = 000-009 , -01 ").unwrap()
assert_str_eq(canonicalize_range(x).unwrap(), x)
}
///|
test "canonicalize preserves request order" {
assert_str_eq(
canonicalize_range("bytes=10-19,0-9").unwrap(),
"bytes=10-19,0-9",
)
}