More use of tags - drop add_header action -> allow + headers+tags
This commit is contained in:
@@ -202,4 +202,95 @@ class RuleTest < ActiveSupport::TestCase
|
||||
assert_equal 8, format[:priority]
|
||||
assert_equal true, format[:enabled]
|
||||
end
|
||||
|
||||
# Tag functionality tests
|
||||
test "should store and retrieve tags in metadata" do
|
||||
network_range = NetworkRange.create!(cidr: "10.0.0.0/8")
|
||||
rule = Rule.create!(
|
||||
waf_rule_type: "network",
|
||||
waf_action: "allow",
|
||||
network_range: network_range,
|
||||
metadata: { tags: ["bot:googlebot", "trusted"] },
|
||||
user: users(:one)
|
||||
)
|
||||
|
||||
assert_equal ["bot:googlebot", "trusted"], rule.tags
|
||||
end
|
||||
|
||||
test "should add tag to rule" do
|
||||
network_range = NetworkRange.create!(cidr: "10.0.0.0/8")
|
||||
rule = Rule.create!(
|
||||
waf_rule_type: "network",
|
||||
waf_action: "allow",
|
||||
network_range: network_range,
|
||||
user: users(:one)
|
||||
)
|
||||
|
||||
rule.add_tag("bot:googlebot")
|
||||
rule.save!
|
||||
|
||||
assert_includes rule.tags, "bot:googlebot"
|
||||
end
|
||||
|
||||
test "should remove tag from rule" do
|
||||
network_range = NetworkRange.create!(cidr: "10.0.0.0/8")
|
||||
rule = Rule.create!(
|
||||
waf_rule_type: "network",
|
||||
waf_action: "allow",
|
||||
network_range: network_range,
|
||||
metadata: { tags: ["bot:googlebot", "trusted"] },
|
||||
user: users(:one)
|
||||
)
|
||||
|
||||
rule.remove_tag("trusted")
|
||||
rule.save!
|
||||
|
||||
assert_not_includes rule.tags, "trusted"
|
||||
assert_includes rule.tags, "bot:googlebot"
|
||||
end
|
||||
|
||||
test "should check if rule has tag" do
|
||||
network_range = NetworkRange.create!(cidr: "10.0.0.0/8")
|
||||
rule = Rule.create!(
|
||||
waf_rule_type: "network",
|
||||
waf_action: "allow",
|
||||
network_range: network_range,
|
||||
metadata: { tags: ["bot:googlebot"] },
|
||||
user: users(:one)
|
||||
)
|
||||
|
||||
assert rule.has_tag?("bot:googlebot")
|
||||
assert_not rule.has_tag?("bot:bingbot")
|
||||
end
|
||||
|
||||
test "should store headers in metadata" do
|
||||
network_range = NetworkRange.create!(cidr: "10.0.0.0/8")
|
||||
rule = Rule.create!(
|
||||
waf_rule_type: "network",
|
||||
waf_action: "allow",
|
||||
network_range: network_range,
|
||||
metadata: {
|
||||
tags: ["bot:googlebot"],
|
||||
headers: { "X-Bot-Agent" => "googlebot" }
|
||||
},
|
||||
user: users(:one)
|
||||
)
|
||||
|
||||
assert_equal({ "X-Bot-Agent" => "googlebot" }, rule.headers)
|
||||
end
|
||||
|
||||
test "should set tags via assignment" do
|
||||
network_range = NetworkRange.create!(cidr: "10.0.0.0/8")
|
||||
rule = Rule.create!(
|
||||
waf_rule_type: "network",
|
||||
waf_action: "allow",
|
||||
network_range: network_range,
|
||||
user: users(:one)
|
||||
)
|
||||
|
||||
rule.tags = ["bot:bingbot", "network:microsoft"]
|
||||
rule.save!
|
||||
|
||||
assert_equal ["bot:bingbot", "network:microsoft"], rule.tags
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user