Blame SOURCES/0011-test-dbus-zone-verify-permanent-config-APIs.patch

1ae9b3
From 3564be1c8a28ac59e8a7135a1ab2a82d2e8a3c90 Mon Sep 17 00:00:00 2001
1ae9b3
From: Eric Garver <eric@garver.life>
1ae9b3
Date: Thu, 9 Apr 2020 12:49:02 -0400
1ae9b3
Subject: [PATCH 11/45] test(dbus): zone: verify permanent config APIs
1ae9b3
1ae9b3
(cherry picked from commit 64d5bf1b117bc29d09b4f30cbb1c87d8559eeac0)
1ae9b3
(cherry picked from commit a972e90b522ba11e0bd65b8d0cd1a55e1d18f9cd)
1ae9b3
---
1ae9b3
 src/tests/dbus/dbus.at                      |   1 +
1ae9b3
 src/tests/dbus/zone_permanent_functional.at | 359 ++++++++++++++++++++
1ae9b3
 2 files changed, 360 insertions(+)
1ae9b3
 create mode 100644 src/tests/dbus/zone_permanent_functional.at
1ae9b3
1ae9b3
diff --git a/src/tests/dbus/dbus.at b/src/tests/dbus/dbus.at
1ae9b3
index 377244460e7a..31c180dc3d3d 100644
1ae9b3
--- a/src/tests/dbus/dbus.at
1ae9b3
+++ b/src/tests/dbus/dbus.at
1ae9b3
@@ -3,3 +3,4 @@ m4_include([dbus/firewalld.conf.at])
1ae9b3
 m4_include([dbus/service.at])
1ae9b3
 m4_include([dbus/zone_permanent_signatures.at])
1ae9b3
 m4_include([dbus/zone_runtime_signatures.at])
1ae9b3
+m4_include([dbus/zone_permanent_functional.at])
1ae9b3
diff --git a/src/tests/dbus/zone_permanent_functional.at b/src/tests/dbus/zone_permanent_functional.at
1ae9b3
new file mode 100644
1ae9b3
index 000000000000..2261832e00a8
1ae9b3
--- /dev/null
1ae9b3
+++ b/src/tests/dbus/zone_permanent_functional.at
1ae9b3
@@ -0,0 +1,359 @@
1ae9b3
+FWD_START_TEST([dbus api - zone permanent functional])
1ae9b3
+AT_KEYWORDS(dbus zone gh586)
1ae9b3
+
1ae9b3
+dnl ####################
1ae9b3
+dnl Global APIs
1ae9b3
+dnl ####################
1ae9b3
+
1ae9b3
+DBUS_CHECK([config], [config.addZone],
1ae9b3
+    ["foobar" dnl name
1ae9b3
+     '("1.0", dnl version
1ae9b3
+       "foobar", dnl short
1ae9b3
+       "foobar zone", dnl description
1ae9b3
+       false, dnl bogus/unused
1ae9b3
+       "ACCEPT", dnl target
1ae9b3
+       @<:@"ssh", "mdns"@:>@, dnl services
1ae9b3
+       @<:@("1234", "tcp"), ("1234", "udp")@:>@, dnl ports
1ae9b3
+       @<:@"echo-request"@:>@, dnl ICMP Blocks
1ae9b3
+       true, dnl masquerade
1ae9b3
+       @<:@("1234", "tcp", "4321", ""), ("1234", "udp", "4321", "10.10.10.10")@:>@, dnl forward ports
1ae9b3
+       @<:@"dummy0", "dummy1"@:>@, dnl interfaces
1ae9b3
+       @<:@"10.10.10.0/24"@:>@, dnl sources
1ae9b3
+       @<:@"rule family=ipv4 source address=10.20.20.20 drop"@:>@, dnl rules_str
1ae9b3
+       @<:@"icmp"@:>@, dnl protocols
1ae9b3
+       @<:@("1234", "tcp"), ("1234", "udp")@:>@, dnl source ports
1ae9b3
+       false dnl ICMP block inversion
1ae9b3
+      )'dnl
1ae9b3
+    ], 0, [stdout])
1ae9b3
+DBUS_FOOBAR_ZONE_OBJ=[$(sed -e "s/.*config\/zone\/\([^']\+\)['].*/\1/" ./stdout)]
1ae9b3
+export DBUS_FOOBAR_ZONE_OBJ
1ae9b3
+
1ae9b3
+dnl Get Zones
1ae9b3
+dnl
1ae9b3
+DBUS_CHECK([config], [config.getZoneNames], [], 0, [dnl
1ae9b3
+    [(['block', 'dmz', 'drop', 'external', 'foobar', 'home', 'internal', 'public', 'trusted', 'work'],)]
1ae9b3
+])
1ae9b3
+DBUS_CHECK([config], [config.listZones], [], 0, [stdout])
1ae9b3
+NS_CHECK([sed -e ["s/['][,]/'\n/g"] ./stdout |dnl
1ae9b3
+          sed -e ["s/.*config\/zone\/\([^']\+\)['].*/\1/"] |dnl
1ae9b3
+          while read LINE; do { echo "${LINE}" | grep ["^[0-9]\+$"] ; } || exit 1; done], 0, [ignore])
1ae9b3
+DBUS_CHECK([config], [config.getZoneByName], ["public"], 0, [stdout])
1ae9b3
+NS_CHECK([sed -e ["s/.*config\/zone\/\([^']\+\)['].*/\1/"] ./stdout | grep ["^[0-9]\+$"]], 0, [ignore])
1ae9b3
+
1ae9b3
+dnl Interfaces
1ae9b3
+FWD_CHECK([-q --permanent --zone public --add-interface dummy2])
1ae9b3
+DBUS_CHECK([config], [config.getZoneOfInterface], ["dummy2"], 0, [dnl
1ae9b3
+    ('public',)
1ae9b3
+])
1ae9b3
+FWD_CHECK([-q --permanent --zone public --remove-interface dummy2])
1ae9b3
+
1ae9b3
+dnl Sources
1ae9b3
+FWD_CHECK([-q --permanent --zone public --add-source 10.20.20.0/24])
1ae9b3
+DBUS_CHECK([config], [config.getZoneOfSource], ["10.20.20.0/24"], 0, [dnl
1ae9b3
+    ('public',)
1ae9b3
+])
1ae9b3
+FWD_CHECK([-q --permanent --zone public --remove-source 10.20.20.0/24])
1ae9b3
+
1ae9b3
+dnl ####################
1ae9b3
+dnl Zone object APIs
1ae9b3
+dnl ####################
1ae9b3
+
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_FOOBAR_ZONE_OBJ}], [config.zone.getSettings], [], 0, [dnl
1ae9b3
+     (('1.0', dnl version
1ae9b3
+       'foobar', dnl short
1ae9b3
+       'foobar zone', dnl description
1ae9b3
+       false, dnl bogus/unused
1ae9b3
+       'ACCEPT', dnl target
1ae9b3
+       @<:@'ssh', 'mdns'@:>@, dnl services
1ae9b3
+       @<:@('1234', 'tcp'), ('1234', 'udp')@:>@, dnl ports
1ae9b3
+       @<:@'echo-request'@:>@, dnl ICMP Blocks
1ae9b3
+       true, dnl masquerade
1ae9b3
+       @<:@('1234', 'tcp', '4321', ''), ('1234', 'udp', '4321', '10.10.10.10')@:>@, dnl forward ports
1ae9b3
+       @<:@'dummy0', 'dummy1'@:>@, dnl interfaces
1ae9b3
+       @<:@'10.10.10.0/24'@:>@, dnl sources
1ae9b3
+       @<:@'rule family="ipv4" source address="10.20.20.20" drop'@:>@, dnl rules_str
1ae9b3
+       @<:@'icmp'@:>@, dnl protocols
1ae9b3
+       @<:@('1234', 'tcp'), ('1234', 'udp')@:>@, dnl source ports
1ae9b3
+       false),)
1ae9b3
+])
1ae9b3
+
1ae9b3
+dnl Verify update works
1ae9b3
+dnl
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_FOOBAR_ZONE_OBJ}], [config.zone.update], [dnl
1ae9b3
+     '("1.1", dnl version
1ae9b3
+       "foobar v2", dnl short
1ae9b3
+       "foobar zone updated", dnl description
1ae9b3
+       false, dnl bogus/unused
1ae9b3
+       "ACCEPT", dnl target
1ae9b3
+       @<:@"ssh", "mdns", "samba"@:>@, dnl services
1ae9b3
+       @<:@("1234", "tcp"), ("4444", "udp")@:>@, dnl ports
1ae9b3
+       @<:@"echo-request", "echo-reply"@:>@, dnl ICMP Blocks
1ae9b3
+       false, dnl masquerade
1ae9b3
+       @<:@("1234", "tcp", "4321", "")@:>@, dnl forward ports
1ae9b3
+       @<:@"dummy0", "dummy1", "dummy2"@:>@, dnl interfaces
1ae9b3
+       @<:@"10.10.10.0/24", "10.20.0.0/16"@:>@, dnl sources
1ae9b3
+       @<:@"rule family=ipv4 source address=10.20.20.20 reject"@:>@, dnl rules_str
1ae9b3
+       @<:@"icmp", "ipv6-icmp"@:>@, dnl protocols
1ae9b3
+       @<:@("1234", "tcp"), ("6666", "udp")@:>@, dnl source ports
1ae9b3
+       true dnl ICMP block inversion
1ae9b3
+      )'dnl
1ae9b3
+    ], 0, [ignore])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_FOOBAR_ZONE_OBJ}], [config.zone.getSettings], [], 0, [dnl
1ae9b3
+     (('1.1', dnl version
1ae9b3
+       'foobar v2', dnl short
1ae9b3
+       'foobar zone updated', dnl description
1ae9b3
+       false, dnl bogus/unused
1ae9b3
+       'ACCEPT', dnl target
1ae9b3
+       @<:@'ssh', 'mdns', 'samba'@:>@, dnl services
1ae9b3
+       @<:@('1234', 'tcp'), ('4444', 'udp')@:>@, dnl ports
1ae9b3
+       @<:@'echo-request', 'echo-reply'@:>@, dnl ICMP Blocks
1ae9b3
+       false, dnl masquerade
1ae9b3
+       @<:@('1234', 'tcp', '4321', '')@:>@, dnl forward ports
1ae9b3
+       @<:@'dummy0', 'dummy1', 'dummy2'@:>@, dnl interfaces
1ae9b3
+       @<:@'10.10.10.0/24', '10.20.0.0/16'@:>@, dnl sources
1ae9b3
+       @<:@'rule family="ipv4" source address="10.20.20.20" reject'@:>@, dnl rules_str
1ae9b3
+       @<:@'icmp', 'ipv6-icmp'@:>@, dnl protocols
1ae9b3
+       @<:@('1234', 'tcp'), ('6666', 'udp')@:>@, dnl source ports
1ae9b3
+       true),)
1ae9b3
+])
1ae9b3
+
1ae9b3
+dnl Rename
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_FOOBAR_ZONE_OBJ}], [config.zone.rename], ["foobar-renamed"], 0, [ignore])
1ae9b3
+DBUS_CHECK([config], [config.getZoneByName], ["foobar-renamed"], 0, [ignore])
1ae9b3
+
1ae9b3
+dnl Remove
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_FOOBAR_ZONE_OBJ}], [config.zone.remove], [], 0, [ignore])
1ae9b3
+DBUS_CHECK([config], [config.getZoneByName], ["foobar-renamed"], 1, [ignore], [ignore])
1ae9b3
+
1ae9b3
+dnl Get a reference to the public zone. We'll use for the rest of the tests.
1ae9b3
+DBUS_CHECK([config], [config.getZoneByName], ["public"], 0, [stdout])
1ae9b3
+DBUS_PUBLIC_ZONE_OBJ=[$(sed -e "s/.*config\/zone\/\([^']\+\)['].*/\1/" ./stdout)]
1ae9b3
+export DBUS_PUBLIC_ZONE_OBJ
1ae9b3
+
1ae9b3
+dnl loadDefaults
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.loadDefaults], [], 0, [ignore])
1ae9b3
+
1ae9b3
+dnl Version
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getVersion], [], 0, [dnl
1ae9b3
+    ('',)
1ae9b3
+])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.setVersion], ["1.1"], 0, [ignore])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getVersion], [], 0, [dnl
1ae9b3
+    ('1.1',)
1ae9b3
+])
1ae9b3
+
1ae9b3
+dnl Short
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getShort], [], 0, [dnl
1ae9b3
+    ('Public',)
1ae9b3
+])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.setShort], ["Public updated"], 0, [ignore])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getShort], [], 0, [dnl
1ae9b3
+    ('Public updated',)
1ae9b3
+])
1ae9b3
+
1ae9b3
+dnl Description
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getDescription], [], 0, [dnl
1ae9b3
+    ('For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.',)
1ae9b3
+])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.setDescription], ["A shorter description."], 0, [ignore])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getDescription], [], 0, [dnl
1ae9b3
+    ('A shorter description.',)
1ae9b3
+])
1ae9b3
+
1ae9b3
+dnl Target
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getTarget], [], 0, [dnl
1ae9b3
+    ('default',)
1ae9b3
+])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.setTarget], ["ACCEPT"], 0, [ignore])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getTarget], [], 0, [dnl
1ae9b3
+    ('ACCEPT',)
1ae9b3
+])
1ae9b3
+
1ae9b3
+dnl Interfaces
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.addInterface], ["dummy0"], 0, [ignore])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.queryInterface], ["dummy0"], 0, [dnl
1ae9b3
+    (true,)
1ae9b3
+])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.queryInterface], ["dummy1"], 0, [dnl
1ae9b3
+    (false,)
1ae9b3
+])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.setInterfaces], [['["dummy0", "dummy1"]']], 0, [ignore])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getInterfaces], [], 0, [dnl
1ae9b3
+    [(['dummy0', 'dummy1'],)]
1ae9b3
+])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.removeInterface], ["dummy0"], 0, [ignore])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getInterfaces], [], 0, [dnl
1ae9b3
+    [(['dummy1'],)]
1ae9b3
+])
1ae9b3
+
1ae9b3
+dnl Sources
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.addSource], ["10.10.10.0/24"], 0, [ignore])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.querySource], ["10.10.10.0/24"], 0, [dnl
1ae9b3
+    (true,)
1ae9b3
+])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.querySource], ["10.20.20.0/24"], 0, [dnl
1ae9b3
+    (false,)
1ae9b3
+])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.setSources], [['["10.10.10.0/24", "10.20.20.0/24"]']], 0, [ignore])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getSources], [], 0, [dnl
1ae9b3
+    [(['10.10.10.0/24', '10.20.20.0/24'],)]
1ae9b3
+])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.removeSource], ["10.10.10.0/24"], 0, [ignore])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getSources], [], 0, [dnl
1ae9b3
+    [(['10.20.20.0/24'],)]
1ae9b3
+])
1ae9b3
+
1ae9b3
+dnl Services
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.addService], ["samba"], 0, [ignore])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.queryService], ["samba"], 0, [dnl
1ae9b3
+    (true,)
1ae9b3
+])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.queryService], ["https"], 0, [dnl
1ae9b3
+    (false,)
1ae9b3
+])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.setServices], [['["samba", "https"]']], 0, [ignore])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getServices], [], 0, [dnl
1ae9b3
+    [(['samba', 'https'],)]
1ae9b3
+])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.removeService], ["samba"], 0, [ignore])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getServices], [], 0, [dnl
1ae9b3
+    [(['https'],)]
1ae9b3
+])
1ae9b3
+
1ae9b3
+dnl Ports
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.addPort], ["1234" "tcp"], 0, [ignore])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.queryPort], ["1234" "tcp"], 0, [dnl
1ae9b3
+    (true,)
1ae9b3
+])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.queryPort], ["4321" "udp"], 0, [dnl
1ae9b3
+    (false,)
1ae9b3
+])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.setPorts], [['[("1234", "tcp"), ("4321", "udp")]']], 0, [ignore])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getPorts], [], 0, [dnl
1ae9b3
+    [([('1234', 'tcp'), ('4321', 'udp')],)]
1ae9b3
+])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.removePort], ["1234" "tcp"], 0, [ignore])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getPorts], [], 0, [dnl
1ae9b3
+    [([('4321', 'udp')],)]
1ae9b3
+])
1ae9b3
+
1ae9b3
+dnl Source Ports
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.addSourcePort], ["1234" "tcp"], 0, [ignore])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.querySourcePort], ["1234" "tcp"], 0, [dnl
1ae9b3
+    (true,)
1ae9b3
+])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.querySourcePort], ["4321" "udp"], 0, [dnl
1ae9b3
+    (false,)
1ae9b3
+])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.setSourcePorts], [['[("1234", "tcp"), ("4321", "udp")]']], 0, [ignore])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getSourcePorts], [], 0, [dnl
1ae9b3
+    [([('1234', 'tcp'), ('4321', 'udp')],)]
1ae9b3
+])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.removeSourcePort], ["1234" "tcp"], 0, [ignore])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getSourcePorts], [], 0, [dnl
1ae9b3
+    [([('4321', 'udp')],)]
1ae9b3
+])
1ae9b3
+
1ae9b3
+dnl Forward Ports
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.addForwardPort], ["1234" "tcp" "1111" ""], 0, [ignore])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.queryForwardPort], ["1234" "tcp" "1111" ""], 0, [dnl
1ae9b3
+    (true,)
1ae9b3
+])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.queryForwardPort], ["4321" "udp" "4444" "10.10.10.10"], 0, [dnl
1ae9b3
+    (false,)
1ae9b3
+])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.setForwardPorts], [['[("1234", "tcp", "1111", ""), ("4321", "udp", "4444", "10.10.10.10")]']], 0, [ignore])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getForwardPorts], [], 0, [dnl
1ae9b3
+    [([('1234', 'tcp', '1111', ''), ('4321', 'udp', '4444', '10.10.10.10')],)]
1ae9b3
+])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.removeForwardPort], ["1234" "tcp" "1111" ""], 0, [ignore])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getForwardPorts], [], 0, [dnl
1ae9b3
+    [([('4321', 'udp', '4444', '10.10.10.10')],)]
1ae9b3
+])
1ae9b3
+
1ae9b3
+dnl Protocols
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.addProtocol], ["icmp"], 0, [ignore])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.queryProtocol], ["icmp"], 0, [dnl
1ae9b3
+    (true,)
1ae9b3
+])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.queryProtocol], ["igmp"], 0, [dnl
1ae9b3
+    (false,)
1ae9b3
+])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.setProtocols], [['["icmp", "igmp"]']], 0, [ignore])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getProtocols], [], 0, [dnl
1ae9b3
+    [(['icmp', 'igmp'],)]
1ae9b3
+])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.removeProtocol], ["icmp"], 0, [ignore])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getProtocols], [], 0, [dnl
1ae9b3
+    [(['igmp'],)]
1ae9b3
+])
1ae9b3
+
1ae9b3
+dnl Masquerade
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.queryMasquerade], [], 0, [dnl
1ae9b3
+    (false,)
1ae9b3
+])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.addMasquerade], [], 0, [ignore])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.queryMasquerade], [], 0, [dnl
1ae9b3
+    (true,)
1ae9b3
+])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.setMasquerade], [true], 0, [ignore])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getMasquerade], [], 0, [dnl
1ae9b3
+    [(true,)]
1ae9b3
+])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.removeMasquerade], [], 0, [ignore])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getMasquerade], [], 0, [dnl
1ae9b3
+    [(false,)]
1ae9b3
+])
1ae9b3
+
1ae9b3
+dnl ICMP Block
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.addIcmpBlock], ["echo-reply"], 0, [ignore])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.queryIcmpBlock], ["echo-reply"], 0, [dnl
1ae9b3
+    (true,)
1ae9b3
+])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.queryIcmpBlock], ["echo-request"], 0, [dnl
1ae9b3
+    (false,)
1ae9b3
+])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.setIcmpBlocks], [['["echo-reply", "echo-request"]']], 0, [ignore])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getIcmpBlocks], [], 0, [dnl
1ae9b3
+    [(['echo-reply', 'echo-request'],)]
1ae9b3
+])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.removeIcmpBlock], ["echo-reply"], 0, [ignore])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getIcmpBlocks], [], 0, [dnl
1ae9b3
+    [(['echo-request'],)]
1ae9b3
+])
1ae9b3
+
1ae9b3
+dnl ICMP Block Inversion
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.queryIcmpBlockInversion], [], 0, [dnl
1ae9b3
+    (false,)
1ae9b3
+])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.addIcmpBlockInversion], [], 0, [ignore])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.queryIcmpBlockInversion], [], 0, [dnl
1ae9b3
+    (true,)
1ae9b3
+])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.setIcmpBlockInversion], [true], 0, [ignore])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getIcmpBlockInversion], [], 0, [dnl
1ae9b3
+    [(true,)]
1ae9b3
+])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.removeIcmpBlockInversion], [], 0, [ignore])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getIcmpBlockInversion], [], 0, [dnl
1ae9b3
+    [(false,)]
1ae9b3
+])
1ae9b3
+
1ae9b3
+dnl Rich Rules
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.addRichRule], ["rule family=ipv4 source address=10.10.10.0/24 accept"], 0, [ignore])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.queryRichRule], ["rule family=ipv4 source address=10.10.10.0/24 accept"], 0, [dnl
1ae9b3
+    (true,)
1ae9b3
+])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.queryRichRule], ["rule family=ipv4 source address=10.20.20.0/24 drop"], 0, [dnl
1ae9b3
+    (false,)
1ae9b3
+])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.setRichRules], [['["rule family=ipv4 source address=10.10.10.0/24 accept", "rule family=ipv4 source address=10.20.20.0/24 drop"]']], 0, [ignore])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getRichRules], [], 0, [dnl
1ae9b3
+    [(['rule family="ipv4" source address="10.10.10.0/24" accept', 'rule family="ipv4" source address="10.20.20.0/24" drop'],)]
1ae9b3
+])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.removeRichRule], ["rule family=ipv4 source address=10.10.10.0/24 accept"], 0, [ignore])
1ae9b3
+DBUS_CHECK([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [config.zone.getRichRules], [], 0, [dnl
1ae9b3
+    [(['rule family="ipv4" source address="10.20.20.0/24" drop'],)]
1ae9b3
+])
1ae9b3
+
1ae9b3
+FWD_END_TEST([-e '/ERROR: INVALID_ZONE: foobar-renamed/d'])
1ae9b3
-- 
1ae9b3
2.27.0
1ae9b3