aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorWill Coster <willcoster@google.com>2016-02-16 18:35:42 -0800
committerWill Coster <willcoster@google.com>2016-02-16 18:50:10 -0800
commit595d2a2fa09ea8c16507266a0c4d435bb1c68983 (patch)
tree5f2f294f7575bfe5747a900efb266a668606b9ca /test
parent887ecf88967fe6caf8f8d5443e49b6bfcfbfcd0d (diff)
downloadmitmproxy-595d2a2fa09ea8c16507266a0c4d435bb1c68983.tar.gz
mitmproxy-595d2a2fa09ea8c16507266a0c4d435bb1c68983.tar.bz2
mitmproxy-595d2a2fa09ea8c16507266a0c4d435bb1c68983.zip
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.
Diffstat (limited to 'test')
-rw-r--r--test/mitmproxy/test_contentview.py21
1 files changed, 21 insertions, 0 deletions
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"),