aboutsummaryrefslogtreecommitdiffstats
path: root/test/test_cmdline.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_cmdline.py')
-rw-r--r--test/test_cmdline.py61
1 files changed, 61 insertions, 0 deletions
diff --git a/test/test_cmdline.py b/test/test_cmdline.py
index dc93640f..03f230a6 100644
--- a/test/test_cmdline.py
+++ b/test/test_cmdline.py
@@ -4,6 +4,37 @@ from libmproxy import cmdline
class uAll(libpry.AutoTree):
+ def test_parse_replace_hook(self):
+ x = cmdline.parse_replace_hook("/foo/bar/voing")
+ assert x == ("foo", "bar", "voing")
+
+ x = cmdline.parse_replace_hook("/foo/bar/vo/ing/")
+ assert x == ("foo", "bar", "vo/ing/")
+
+ x = cmdline.parse_replace_hook("/bar/voing")
+ assert x == (".*", "bar", "voing")
+
+ libpry.raises(
+ cmdline.ParseReplaceException,
+ cmdline.parse_replace_hook,
+ "/foo"
+ )
+ libpry.raises(
+ "replacement regex",
+ cmdline.parse_replace_hook,
+ "patt/[/rep"
+ )
+ libpry.raises(
+ "filter pattern",
+ cmdline.parse_replace_hook,
+ "/~/foo/rep"
+ )
+ libpry.raises(
+ "empty replacement regex",
+ cmdline.parse_replace_hook,
+ "//"
+ )
+
def test_common(self):
parser = optparse.OptionParser()
cmdline.common_options(parser)
@@ -25,6 +56,36 @@ class uAll(libpry.AutoTree):
assert v["stickycookie"] == "foo"
assert v["stickyauth"] == "foo"
+ opts.replace = ["/foo/bar/voing"]
+ v = cmdline.get_common_options(opts)
+ assert v["replacements"] == [("foo", "bar", "voing")]
+
+ opts.replace = ["//"]
+ libpry.raises(
+ "empty replacement regex",
+ cmdline.get_common_options,
+ opts
+ )
+
+ opts.replace = []
+ opts.replace_file = [("/foo/bar/nonexistent")]
+ libpry.raises(
+ "could not read replace file",
+ cmdline.get_common_options,
+ opts
+ )
+
+ opts.replace_file = [("/~/bar/nonexistent")]
+ libpry.raises(
+ "filter pattern",
+ cmdline.get_common_options,
+ opts
+ )
+
+ opts.replace_file = [("/foo/bar/./data/replace")]
+ v = cmdline.get_common_options(opts)["replacements"]
+ assert len(v) == 1
+ assert v[0][2].strip() == "replacecontents"