aboutsummaryrefslogtreecommitdiffstats
path: root/test/mitmproxy/builtins/test_replace.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/mitmproxy/builtins/test_replace.py')
-rw-r--r--test/mitmproxy/builtins/test_replace.py52
1 files changed, 52 insertions, 0 deletions
diff --git a/test/mitmproxy/builtins/test_replace.py b/test/mitmproxy/builtins/test_replace.py
new file mode 100644
index 00000000..f8010bec
--- /dev/null
+++ b/test/mitmproxy/builtins/test_replace.py
@@ -0,0 +1,52 @@
+from .. import tutils, mastertest
+from mitmproxy.builtins import replace
+from mitmproxy.flow import master
+from mitmproxy.flow import state
+from mitmproxy.flow import options
+
+
+class TestReplace(mastertest.MasterTest):
+ def test_configure(self):
+ r = replace.Replace()
+ r.configure(options.Options(
+ replacements=[("one", "two", "three")]
+ ))
+ tutils.raises(
+ "invalid filter pattern",
+ r.configure,
+ options.Options(
+ replacements=[("~b", "two", "three")]
+ )
+ )
+ tutils.raises(
+ "invalid regular expression",
+ r.configure,
+ options.Options(
+ replacements=[("foo", "+", "three")]
+ )
+ )
+
+ def test_simple(self):
+ s = state.State()
+ m = master.FlowMaster(
+ options.Options(
+ replacements = [
+ ("~q", "foo", "bar"),
+ ("~s", "foo", "bar"),
+ ]
+ ),
+ None,
+ s
+ )
+ sa = replace.Replace()
+ m.addons.add(sa)
+
+ f = tutils.tflow()
+ f.request.content = b"foo"
+ self.invoke(m, "request", f)
+ assert f.request.content == b"bar"
+
+ f = tutils.tflow(resp=True)
+ f.response.content = b"foo"
+ self.invoke(m, "response", f)
+ assert f.response.content == b"bar"