aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/data/no_common_name.pem20
-rw-r--r--test/test_server.py25
2 files changed, 44 insertions, 1 deletions
diff --git a/test/data/no_common_name.pem b/test/data/no_common_name.pem
new file mode 100644
index 00000000..fc271a0e
--- /dev/null
+++ b/test/data/no_common_name.pem
@@ -0,0 +1,20 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBOQIBAAJBAKVJ43C+8SjOvN9/pP/8HwzmHGQmRvdK/R6KlWdr7He6iiXDQNfH
+RAp+gqX0hBRT80eRjGhSmTTBLCWiXVny4UUCAwEAAQJAUQ8nZ0d85VJd9g2XUaLH
+Z4ACNGtBKk2wTKYSFyIqWZxsF5qhh7HGshJIAP6tYiX8ZW+mMSfme+zsJzWe8ChL
+gQIhAM8QpAgUHnNteZvkv0XqceX1GILEWifMt+hO9yTp4dY5AiEAzFnKr77CKCri
+/DPig4R/5q4KMpMx9EqJufHdGNmIA20CICMARxnufK86RCIr6oEg/hvG8Fu6YRr1
+Kekk3/XnavtRAiBVLVQ7vwKE5aNpRmMzOKZrS736aLpYvjz8IaFr+zgjXQIgdad5
+QZoTD49NTyMEgyZp70gTXcXQLrX2PgQKL4uNmoU=
+-----END RSA PRIVATE KEY-----
+-----BEGIN CERTIFICATE-----
+MIIBgTCCASugAwIBAgIJAKlcXsPLQAQuMA0GCSqGSIb3DQEBBQUAMA0xCzAJBgNV
+BAYTAkFVMB4XDTEzMTIxMjAxMzA1NVoXDTE0MDExMTAxMzA1NVowDTELMAkGA1UE
+BhMCQVUwXDANBgkqhkiG9w0BAQEFAANLADBIAkEApUnjcL7xKM6833+k//wfDOYc
+ZCZG90r9HoqVZ2vsd7qKJcNA18dECn6CpfSEFFPzR5GMaFKZNMEsJaJdWfLhRQID
+AQABo24wbDAdBgNVHQ4EFgQUJm8BXcVRsROy0PVt5stkB3eVnEgwPQYDVR0jBDYw
+NIAUJm8BXcVRsROy0PVt5stkB3eVnEihEaQPMA0xCzAJBgNVBAYTAkFVggkAqVxe
+w8tABC4wDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAANBAHHxcBEpWrIqtLVH
+m6Yn1hgqrAbfMj9IK6zY9C5Cbad/DfUj3AZMb5u758WJK0x9brmckgqdrQsuf9He
+Ef51/SU=
+-----END CERTIFICATE-----
diff --git a/test/test_server.py b/test/test_server.py
index d832ff18..2c94b9df 100644
--- a/test/test_server.py
+++ b/test/test_server.py
@@ -143,7 +143,18 @@ class TestHTTP(tservers.HTTPProxTest, CommonMixin, AppMixin):
req = p.request("get:'http://foo':h':foo'='bar'")
assert req.status_code == 400
-
+ def test_empty_chunked_content(self):
+ """
+ https://github.com/mitmproxy/mitmproxy/issues/186
+ """
+ connection = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ connection.connect(("127.0.0.1", self.proxy.port))
+ spec = '301:h"Transfer-Encoding"="chunked":r:b"0\\r\\n\\r\\n"'
+ connection.send("GET http://localhost:%d/p/%s HTTP/1.1\r\n"%(self.server.port, spec))
+ connection.send("\r\n");
+ resp = connection.recv(50000)
+ connection.close()
+ assert "content-length" in resp.lower()
class TestHTTPAuth(tservers.HTTPProxTest):
authenticator = http_auth.BasicProxyAuth(http_auth.PassManSingleUser("test", "test"), "realm")
@@ -197,6 +208,13 @@ class TestHTTPSCertfile(tservers.HTTPProxTest, CommonMixin):
def test_certfile(self):
assert self.pathod("304")
+class TestHTTPSNoCommonName(tservers.HTTPProxTest, CommonMixin):
+ """
+ Test what happens if we get a cert without common name back.
+ """
+ ssl = True
+ ssloptions=pathod.SSLOptions(certfile=tutils.test_data.path("data/no_common_name.pem"),
+ keyfile=tutils.test_data.path("data/no_common_name.pem"))
class TestReverse(tservers.ReverseProxTest, CommonMixin):
reverse = True
@@ -289,6 +307,11 @@ class TestProxy(tservers.HTTPProxTest):
assert second_request.tcp_setup_timestamp == None
assert second_request.ssl_setup_timestamp == None
+ def test_request_ip(self):
+ f = self.pathod("200:b@100")
+ assert f.status_code == 200
+ request = self.master.state.view[0].request
+ assert request.ip == "127.0.0.1"
class TestProxySSL(tservers.HTTPProxTest):
ssl=True