diff options
| author | mame82 <mame8282@googlemail.com> | 2017-02-16 15:03:27 +0100 |
|---|---|---|
| committer | Maximilian Hils <git@maximilianhils.com> | 2017-02-16 15:03:27 +0100 |
| commit | ffdbccd5719d9d5a51cbeb61b3516390d9384f78 (patch) | |
| tree | 73f1e328c99384a0a9444803853087a8d6901f17 /test | |
| parent | 337b1c9399e525a23dc188ef5df1667f109b108e (diff) | |
| download | mitmproxy-ffdbccd5719d9d5a51cbeb61b3516390d9384f78.tar.gz mitmproxy-ffdbccd5719d9d5a51cbeb61b3516390d9384f78.tar.bz2 mitmproxy-ffdbccd5719d9d5a51cbeb61b3516390d9384f78.zip | |
Use existing urlencoding conventions when re-encoding edited form #1946 (#2022)
Diffstat (limited to 'test')
| -rw-r--r-- | test/mitmproxy/net/http/test_url.py | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/test/mitmproxy/net/http/test_url.py b/test/mitmproxy/net/http/test_url.py index 11ab1b81..2064aab8 100644 --- a/test/mitmproxy/net/http/test_url.py +++ b/test/mitmproxy/net/http/test_url.py @@ -85,6 +85,26 @@ surrogates_quoted = ( ) +def test_empty_key_trailing_equal_sign(): + """ + Some HTTP clients don't send trailing equal signs for parameters without assigned value, e.g. they send + foo=bar&baz&qux=quux + instead of + foo=bar&baz=&qux=quux + The respective behavior of encode() should be driven by a reference string given in similar_to parameter + """ + reference_without_equal = "key1=val1&key2&key3=val3" + reference_with_equal = "key1=val1&key2=&key3=val3" + + post_data_empty_key_middle = [('one', 'two'), ('emptykey', ''), ('three', 'four')] + post_data_empty_key_end = [('one', 'two'), ('three', 'four'), ('emptykey', '')] + + assert url.encode(post_data_empty_key_middle, similar_to = reference_with_equal) == "one=two&emptykey=&three=four" + assert url.encode(post_data_empty_key_end, similar_to = reference_with_equal) == "one=two&three=four&emptykey=" + assert url.encode(post_data_empty_key_middle, similar_to = reference_without_equal) == "one=two&emptykey&three=four" + assert url.encode(post_data_empty_key_end, similar_to = reference_without_equal) == "one=two&three=four&emptykey" + + def test_encode(): assert url.encode([('foo', 'bar')]) assert url.encode([('foo', surrogates)]) |
