aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorThomas Kriechbaumer <Kriechi@users.noreply.github.com>2017-03-22 12:02:18 +0100
committerGitHub <noreply@github.com>2017-03-22 12:02:18 +0100
commit907825714bf434efdee3ea99707aa509bb0f0c58 (patch)
tree5652ffbfe0ec94f853ebbe12d1f40e0470142423 /test
parentab2fcbef8dceb5abc97f7e73638629ded606daa6 (diff)
downloadmitmproxy-907825714bf434efdee3ea99707aa509bb0f0c58.tar.gz
mitmproxy-907825714bf434efdee3ea99707aa509bb0f0c58.tar.bz2
mitmproxy-907825714bf434efdee3ea99707aa509bb0f0c58.zip
move examples tests (#2199)
Diffstat (limited to 'test')
-rw-r--r--test/examples/__init__.py0
-rw-r--r--test/examples/test_examples.py (renamed from test/mitmproxy/test_examples.py)86
-rw-r--r--test/examples/test_har_dump.py114
-rw-r--r--[-rwxr-xr-x]test/examples/test_xss_scanner.py (renamed from test/mitmproxy/examples/test_xss_scanner.py)0
4 files changed, 115 insertions, 85 deletions
diff --git a/test/examples/__init__.py b/test/examples/__init__.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/examples/__init__.py
diff --git a/test/mitmproxy/test_examples.py b/test/examples/test_examples.py
index 030f2c4e..46fdcd36 100644
--- a/test/mitmproxy/test_examples.py
+++ b/test/examples/test_examples.py
@@ -1,5 +1,3 @@
-import json
-import shlex
import pytest
from mitmproxy import options
@@ -11,9 +9,8 @@ from mitmproxy.addons import script
from mitmproxy.test import tflow
from mitmproxy.test import tutils
from mitmproxy.net.http import Headers
-from mitmproxy.net.http import cookies
-from . import tservers
+from ..mitmproxy import tservers
example_dir = tutils.test_data.push("../examples")
@@ -121,84 +118,3 @@ class TestScripts(tservers.MasterTest):
assert f.request.port == 80
assert f.request.headers["Host"] == original_host
-
-
-class TestHARDump:
-
- def flow(self, resp_content=b'message'):
- times = dict(
- timestamp_start=746203272,
- timestamp_end=746203272,
- )
-
- # Create a dummy flow for testing
- return tflow.tflow(
- req=tutils.treq(method=b'GET', **times),
- resp=tutils.tresp(content=resp_content, **times)
- )
-
- def test_no_file_arg(self):
- with pytest.raises(ScriptError):
- tscript("complex/har_dump.py")
-
- def test_simple(self, tmpdir):
- path = str(tmpdir.join("somefile"))
-
- m, sc = tscript("complex/har_dump.py", shlex.quote(path))
- m.addons.trigger("response", self.flow())
- m.addons.remove(sc)
-
- with open(path, "r") as inp:
- har = json.load(inp)
- assert len(har["log"]["entries"]) == 1
-
- def test_base64(self, tmpdir):
- path = str(tmpdir.join("somefile"))
-
- m, sc = tscript("complex/har_dump.py", shlex.quote(path))
- m.addons.trigger(
- "response", self.flow(resp_content=b"foo" + b"\xFF" * 10)
- )
- m.addons.remove(sc)
-
- with open(path, "r") as inp:
- har = json.load(inp)
- assert har["log"]["entries"][0]["response"]["content"]["encoding"] == "base64"
-
- def test_format_cookies(self):
- m, sc = tscript("complex/har_dump.py", "-")
- format_cookies = sc.ns.format_cookies
-
- CA = cookies.CookieAttrs
-
- f = format_cookies([("n", "v", CA([("k", "v")]))])[0]
- assert f['name'] == "n"
- assert f['value'] == "v"
- assert not f['httpOnly']
- assert not f['secure']
-
- f = format_cookies([("n", "v", CA([("httponly", None), ("secure", None)]))])[0]
- assert f['httpOnly']
- assert f['secure']
-
- f = format_cookies([("n", "v", CA([("expires", "Mon, 24-Aug-2037 00:00:00 GMT")]))])[0]
- assert f['expires']
-
- def test_binary(self, tmpdir):
-
- f = self.flow()
- f.request.method = "POST"
- f.request.headers["content-type"] = "application/x-www-form-urlencoded"
- f.request.content = b"foo=bar&baz=s%c3%bc%c3%9f"
- f.response.headers["random-junk"] = bytes(range(256))
- f.response.content = bytes(range(256))
-
- path = str(tmpdir.join("somefile"))
-
- m, sc = tscript("complex/har_dump.py", shlex.quote(path))
- m.addons.trigger("response", f)
- m.addons.remove(sc)
-
- with open(path, "r") as inp:
- har = json.load(inp)
- assert len(har["log"]["entries"]) == 1
diff --git a/test/examples/test_har_dump.py b/test/examples/test_har_dump.py
new file mode 100644
index 00000000..e5cfd2e1
--- /dev/null
+++ b/test/examples/test_har_dump.py
@@ -0,0 +1,114 @@
+import json
+import shlex
+import pytest
+
+from mitmproxy import options
+from mitmproxy import proxy
+from mitmproxy import master
+from mitmproxy.addons import script
+
+from mitmproxy.test import tflow
+from mitmproxy.test import tutils
+from mitmproxy.net.http import cookies
+
+example_dir = tutils.test_data.push("../examples")
+
+
+class ScriptError(Exception):
+ pass
+
+
+class RaiseMaster(master.Master):
+ def add_log(self, e, level):
+ if level in ("warn", "error"):
+ raise ScriptError(e)
+
+
+def tscript(cmd, args=""):
+ o = options.Options()
+ cmd = example_dir.path(cmd) + " " + args
+ m = RaiseMaster(o, proxy.DummyServer())
+ sc = script.Script(cmd)
+ m.addons.add(sc)
+ return m, sc
+
+
+class TestHARDump:
+
+ def flow(self, resp_content=b'message'):
+ times = dict(
+ timestamp_start=746203272,
+ timestamp_end=746203272,
+ )
+
+ # Create a dummy flow for testing
+ return tflow.tflow(
+ req=tutils.treq(method=b'GET', **times),
+ resp=tutils.tresp(content=resp_content, **times)
+ )
+
+ def test_no_file_arg(self):
+ with pytest.raises(ScriptError):
+ tscript("complex/har_dump.py")
+
+ def test_simple(self, tmpdir):
+ path = str(tmpdir.join("somefile"))
+
+ m, sc = tscript("complex/har_dump.py", shlex.quote(path))
+ m.addons.trigger("response", self.flow())
+ m.addons.remove(sc)
+
+ with open(path, "r") as inp:
+ har = json.load(inp)
+ assert len(har["log"]["entries"]) == 1
+
+ def test_base64(self, tmpdir):
+ path = str(tmpdir.join("somefile"))
+
+ m, sc = tscript("complex/har_dump.py", shlex.quote(path))
+ m.addons.trigger(
+ "response", self.flow(resp_content=b"foo" + b"\xFF" * 10)
+ )
+ m.addons.remove(sc)
+
+ with open(path, "r") as inp:
+ har = json.load(inp)
+ assert har["log"]["entries"][0]["response"]["content"]["encoding"] == "base64"
+
+ def test_format_cookies(self):
+ m, sc = tscript("complex/har_dump.py", "-")
+ format_cookies = sc.ns.format_cookies
+
+ CA = cookies.CookieAttrs
+
+ f = format_cookies([("n", "v", CA([("k", "v")]))])[0]
+ assert f['name'] == "n"
+ assert f['value'] == "v"
+ assert not f['httpOnly']
+ assert not f['secure']
+
+ f = format_cookies([("n", "v", CA([("httponly", None), ("secure", None)]))])[0]
+ assert f['httpOnly']
+ assert f['secure']
+
+ f = format_cookies([("n", "v", CA([("expires", "Mon, 24-Aug-2037 00:00:00 GMT")]))])[0]
+ assert f['expires']
+
+ def test_binary(self, tmpdir):
+
+ f = self.flow()
+ f.request.method = "POST"
+ f.request.headers["content-type"] = "application/x-www-form-urlencoded"
+ f.request.content = b"foo=bar&baz=s%c3%bc%c3%9f"
+ f.response.headers["random-junk"] = bytes(range(256))
+ f.response.content = bytes(range(256))
+
+ path = str(tmpdir.join("somefile"))
+
+ m, sc = tscript("complex/har_dump.py", shlex.quote(path))
+ m.addons.trigger("response", f)
+ m.addons.remove(sc)
+
+ with open(path, "r") as inp:
+ har = json.load(inp)
+ assert len(har["log"]["entries"]) == 1
diff --git a/test/mitmproxy/examples/test_xss_scanner.py b/test/examples/test_xss_scanner.py
index 14ee6902..14ee6902 100755..100644
--- a/test/mitmproxy/examples/test_xss_scanner.py
+++ b/test/examples/test_xss_scanner.py