aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Entzel <eric@ubermac.net>2013-02-11 13:22:25 +1100
committerEric Entzel <eric@ubermac.net>2013-02-11 13:22:25 +1100
commit6bcf29c0ed39904cd28cf9ab97fa75c5c0f4d32c (patch)
tree24d1f3e09e4fe9e333254cf03795c4af16821ba7
parent53792a5a28df80552fdbedee3b88f204d94ad9ce (diff)
downloadmitmproxy-6bcf29c0ed39904cd28cf9ab97fa75c5c0f4d32c.tar.gz
mitmproxy-6bcf29c0ed39904cd28cf9ab97fa75c5c0f4d32c.tar.bz2
mitmproxy-6bcf29c0ed39904cd28cf9ab97fa75c5c0f4d32c.zip
Keep blank URL parameters
TODO: This should probably be configurable
-rw-r--r--libmproxy/utils.py2
-rw-r--r--test/test_console_contentview.py4
-rw-r--r--test/test_flow.py2
3 files changed, 5 insertions, 3 deletions
diff --git a/libmproxy/utils.py b/libmproxy/utils.py
index 6e804887..b2258b15 100644
--- a/libmproxy/utils.py
+++ b/libmproxy/utils.py
@@ -67,7 +67,7 @@ def urldecode(s):
"""
Takes a urlencoded string and returns a list of (key, value) tuples.
"""
- return cgi.parse_qsl(s)
+ return cgi.parse_qsl(s, keep_blank_values=True)
def urlencode(s):
diff --git a/test/test_console_contentview.py b/test/test_console_contentview.py
index 8a5dabb8..77178842 100644
--- a/test/test_console_contentview.py
+++ b/test/test_console_contentview.py
@@ -58,7 +58,9 @@ class TestContentView:
d = utils.urlencode([("one", "two"), ("three", "four")])
v = cv.ViewURLEncoded()
assert v([], d, 100)
- assert not v([], "foo", 100)
+ d = utils.urlencode([("adsfa", "")])
+ v = cv.ViewURLEncoded()
+ assert v([], d, 100)
def test_view_html(self):
v = cv.ViewHTML()
diff --git a/test/test_flow.py b/test/test_flow.py
index da5b095e..0c713c03 100644
--- a/test/test_flow.py
+++ b/test/test_flow.py
@@ -807,7 +807,7 @@ class TestRequest:
r = flow.Request(None, (1, 1), "host", 22, "https", "GET", "/?adsfa", h, "content")
q = r.get_query()
- assert not q
+ assert q.lst == [("adsfa", "")]
r = flow.Request(None, (1, 1), "host", 22, "https", "GET", "/foo?x=y&a=b", h, "content")
assert r.get_query()