diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/data/no_common_name.pem | 20 | ||||
-rw-r--r-- | test/test_server.py | 25 |
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 |