| 123456789101112131415161718192021222324252627282930313233343536 |
- package firewall
- import (
- "strings"
- "testing"
- )
- func TestBuildNATRuleLines_InterfaceList(t *testing.T) {
- rule := NATRule{
- ID: "nat-test-1",
- Order: 1,
- Chain: "srcnat",
- Action: "masquerade",
- OutInterface: "wan0",
- Disabled: false,
- }
- resolved := resolveRoles([]byte(`{"interfaces":{"wan0":{"role":"WAN"},"lan0":{"role":"LAN"}}}`), "WAN")
- if len(resolved) != 1 || resolved[0] != "wan0" {
- t.Fatal(resolved)
- }
- lines := buildNATRuleLines(rule)
- if len(lines) == 0 {
- t.Fatalf("expected non-empty lines for WAN interface list, got 0")
- }
- for _, l := range lines {
- if !strings.Contains(l, "-j MASQUERADE") {
- t.Errorf("line missing -j MASQUERADE: %s", l)
- }
- if !strings.Contains(l, "-o ") {
- t.Errorf("expected -o flag in expanded NAT rule, got: %s", l)
- }
- }
- }
|