///|
test "limits default parses normal input" {
match
parse_robots_with_limits("User-agent: *\nAllow: /\n", Limits::default()) {
Ok(_) => ()
Err(e) => fail(e.to_display())
}
}
///|
test "limits strict preset is smaller than permissive" {
assert_true(
Limits::strict().max_input_bytes() < Limits::permissive().max_input_bytes(),
)
}
///|
test "limits reject input bytes" {
let limits = Limits::custom(5, 100, 10, 10, 10, 10, 10)
expect_err_kind(
parse_robots_with_limits("User-agent: *\n", limits),
LimitExceeded,
)
}
///|
test "limits reject too many lines" {
let limits = Limits::custom(1000, 1, 10, 10, 10, 10, 100)
expect_err_kind(
parse_robots_with_limits("User-agent: *\nAllow: /\n", limits),
LimitExceeded,
)
}
///|
test "limits reject too many groups" {
let limits = Limits::custom(1000, 100, 1, 10, 10, 10, 100)
expect_err_kind(
parse_robots_with_limits(
"User-agent: a\nAllow: /\nUser-agent: b\nAllow: /\n", limits,
),
LimitExceeded,
)
}
///|
test "limits reject too many user agents" {
let limits = Limits::custom(1000, 100, 10, 1, 10, 10, 100)
expect_err_kind(
parse_robots_with_limits("User-agent: a\nUser-agent: b\nAllow: /\n", limits),
LimitExceeded,
)
}
///|
test "limits reject too many rules" {
let limits = Limits::custom(1000, 100, 10, 10, 1, 10, 100)
expect_err_kind(
parse_robots_with_limits("User-agent: *\nAllow: /a\nAllow: /b\n", limits),
LimitExceeded,
)
}
///|
test "limits reject long pattern" {
let limits = Limits::custom(1000, 100, 10, 10, 10, 2, 100)
expect_err_kind(
parse_robots_with_limits("User-agent: *\nAllow: /abc\n", limits),
LimitExceeded,
)
}
///|
test "limits reject long record" {
let limits = Limits::custom(1000, 100, 10, 10, 10, 100, 5)
expect_err_kind(
parse_robots_with_limits("User-agent: *\n", limits),
LimitExceeded,
)
}