patchpanel: Move wwan masquerade from script

BUG=b:156200410
TEST=units

Change-Id: I7397b98c1cbed74eea0debaff1ad2c918e7be318
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform2/+/2214844
Tested-by: Garrick Evans <garrick@chromium.org>
Commit-Queue: Garrick Evans <garrick@chromium.org>
Reviewed-by: Hugo Benichi <hugobenichi@google.com>
diff --git a/patchpanel/datapath_test.cc b/patchpanel/datapath_test.cc
index 43ea032..1aebb4f 100644
--- a/patchpanel/datapath_test.cc
+++ b/patchpanel/datapath_test.cc
@@ -548,6 +548,26 @@
   datapath.RemoveForwardEstablishedRule();
 }
 
+TEST(DatapathTest, AddInterfaceSNAT) {
+  MockProcessRunner runner;
+  EXPECT_CALL(runner, iptables(StrEq("nat"),
+                               ElementsAre("-A", "POSTROUTING", "-o", "wwan+",
+                                           "-j", "MASQUERADE", "-w"),
+                               true));
+  Datapath datapath(&runner);
+  datapath.AddInterfaceSNAT("wwan+");
+}
+
+TEST(DatapathTest, RemoveInterfaceSNAT) {
+  MockProcessRunner runner;
+  EXPECT_CALL(runner, iptables(StrEq("nat"),
+                               ElementsAre("-D", "POSTROUTING", "-o", "wwan+",
+                                           "-j", "MASQUERADE", "-w"),
+                               true));
+  Datapath datapath(&runner);
+  datapath.RemoveInterfaceSNAT("wwan+");
+}
+
 TEST(DatapathTest, ArcVethHostName) {
   EXPECT_EQ("vetheth0", ArcVethHostName("eth0"));
   EXPECT_EQ("vethrmnet0", ArcVethHostName("rmnet0"));