///|
test "Accept-Ranges parses bytes" {
assert_true(parse_accept_ranges("bytes").unwrap().supports_bytes())
}
///|
test "Accept-Ranges byte comparison is case insensitive" {
assert_true(parse_accept_ranges("BYTES").unwrap().supports("Bytes"))
}
///|
test "Accept-Ranges parses none" {
assert_false(parse_accept_ranges("none").unwrap().supports_bytes())
}
///|
test "Accept-Ranges parses multiple units" {
let a = parse_accept_ranges("bytes, exampleunit").unwrap()
assert_true(a.supports_bytes())
assert_true(a.supports("EXAMPLEUNIT"))
}
///|
test "Accept-Ranges serializes canonical units" {
assert_str_eq(
serialize_accept_ranges(parse_accept_ranges("BYTES, ExampleUnit").unwrap()),
"bytes, exampleunit",
)
}
///|
test "Accept-Ranges rejects none mixed with units" {
assert_true(parse_accept_ranges("none, bytes") is Err(_))
}
///|
test "Accept-Ranges rejects empty member" {
assert_true(parse_accept_ranges("bytes,,items") is Err(_))
}
///|
test "Accept-Ranges rejects invalid token" {
assert_true(parse_accept_ranges("bad unit") is Err(_))
}
///|
test "Accept-Ranges rejects empty input" {
assert_true(parse_accept_ranges("") is Err(RangeError(_, EmptyInput, _, _)))
}