From 595d2a2fa09ea8c16507266a0c4d435bb1c68983 Mon Sep 17 00:00:00 2001 From: Will Coster Date: Tue, 16 Feb 2016 18:35:42 -0800 Subject: Add a content view for query parameters The query content view uses format_dict to display a table of query parameters and is made the default content view for requests with query parameters and no request body. To facilitate this the query parameter dictionary of HTTPRequests is added to the metadata content view parameter under the "query" key. Additionally, the logic for handling "no content" messages is moved from contentviews.get_content_view to ViewAuto. This is necessary as it allows the query content view to be displayed when there is no request body. --- test/mitmproxy/test_contentview.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'test') diff --git a/test/mitmproxy/test_contentview.py b/test/mitmproxy/test_contentview.py index 7f1d735e..c00afa5f 100644 --- a/test/mitmproxy/test_contentview.py +++ b/test/mitmproxy/test_contentview.py @@ -1,5 +1,6 @@ from mitmproxy.exceptions import ContentViewException from netlib.http import Headers +from netlib.odict import ODict import netlib.utils from netlib import encoding @@ -45,6 +46,19 @@ class TestContentView: ) assert f[0].startswith("XML") + f = v( + "", + headers=Headers() + ) + assert f[0] == "No content" + + f = v( + "", + headers=Headers(), + query=ODict([("foo", "bar")]), + ) + assert f[0] == "Query" + def test_view_urlencoded(self): d = netlib.utils.urlencode([("one", "two"), ("three", "four")]) v = cv.ViewURLEncoded() @@ -158,6 +172,13 @@ Larry h = Headers(content_type="unparseable") assert not view(v, headers=h) + def test_view_query(self): + d = "" + v = cv.ViewQuery() + f = v(d, query=ODict([("foo", "bar")])) + assert f[0] == "Query" + assert [x for x in f[1]] == [[("header", "foo: "), ("text", "bar")]] + def test_get_content_view(self): r = cv.get_content_view( cv.get("Raw"), -- cgit v1.2.3 From 92597f82ea8e4747ce1836ecd5eb2479486e8647 Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Thu, 18 Feb 2016 09:19:05 +1300 Subject: Docs and examples to top level --- test/mitmproxy/test_examples.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'test') diff --git a/test/mitmproxy/test_examples.py b/test/mitmproxy/test_examples.py index 6920c8e9..54e6e753 100644 --- a/test/mitmproxy/test_examples.py +++ b/test/mitmproxy/test_examples.py @@ -5,7 +5,7 @@ from . import tservers def test_load_scripts(): - example_dir = utils.Data("mitmproxy").path("../examples") + example_dir = utils.Data("mitmproxy").path("../../examples") scripts = glob.glob("%s/*.py" % example_dir) tmaster = tservers.TestMaster(config.ProxyConfig()) -- cgit v1.2.3 From b6e5e50c24c735a38705408b164f0b239db509cf Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Thu, 18 Feb 2016 10:40:16 +1300 Subject: Make fuzzing run again --- test/mitmproxy/fuzzing/.env | 10 ++++------ test/mitmproxy/fuzzing/straight_stream_patterns | 1 - 2 files changed, 4 insertions(+), 7 deletions(-) (limited to 'test') diff --git a/test/mitmproxy/fuzzing/.env b/test/mitmproxy/fuzzing/.env index 82ae6a8d..8923b8ae 100644 --- a/test/mitmproxy/fuzzing/.env +++ b/test/mitmproxy/fuzzing/.env @@ -1,6 +1,4 @@ - -MITMDUMP=../../mitmdump -PATHOD=../../../pathod/pathod -PATHOC=../../../pathod/pathoc -FUZZ_SETTINGS=-remTt 1 -n 0 - +MITMDUMP=mitmdump +PATHOD=pathod +PATHOC=pathoc +FUZZ_SETTINGS="-remTt 1 -n 0" diff --git a/test/mitmproxy/fuzzing/straight_stream_patterns b/test/mitmproxy/fuzzing/straight_stream_patterns index 93a066e6..235f2cc3 100644 --- a/test/mitmproxy/fuzzing/straight_stream_patterns +++ b/test/mitmproxy/fuzzing/straight_stream_patterns @@ -9,7 +9,6 @@ get:'http://localhost:9999/p/':s'200:b"foo":ir,"\n"' get:'http://localhost:9999/p/':s'200:b"foo":ir,"a"' get:'http://localhost:9999/p/':s'200:b"foo":ir,"9"' get:'http://localhost:9999/p/':s'200:b"foo":ir,":"' -get:'http://localhost:9999/p/':s"200:b'foo':ir,'\"'" get:'http://localhost:9999/p/':s'200:b"foo":ir,"-"' get:'http://localhost:9999/p/':s'200:b"foo":dr' -- cgit v1.2.3