aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorMaximilian Hils <git@maximilianhils.com>2015-02-27 09:17:41 +0100
committerMaximilian Hils <git@maximilianhils.com>2015-02-27 09:17:41 +0100
commit81a274eb51ea7552667a872f0b6db1aeca9315b3 (patch)
treeb66d1c5c1b5bec39f3ae677bca61f4c68bb623cf /test
parentc9240812d9239591915b521524e8a1dbbef05b0f (diff)
downloadmitmproxy-81a274eb51ea7552667a872f0b6db1aeca9315b3.tar.gz
mitmproxy-81a274eb51ea7552667a872f0b6db1aeca9315b3.tar.bz2
mitmproxy-81a274eb51ea7552667a872f0b6db1aeca9315b3.zip
fix #479
Diffstat (limited to 'test')
-rw-r--r--test/test_server.py31
-rw-r--r--test/tservers.py4
2 files changed, 33 insertions, 2 deletions
diff --git a/test/test_server.py b/test/test_server.py
index a611d30f..e387293f 100644
--- a/test/test_server.py
+++ b/test/test_server.py
@@ -1,5 +1,6 @@
import socket, time
from libmproxy.proxy.config import HostMatcher
+import libpathod
from netlib import tcp, http_auth, http
from libpathod import pathoc, pathod
from netlib.certutils import SSLCert
@@ -332,6 +333,36 @@ class TestReverse(tservers.ReverseProxTest, CommonMixin, TcpMixin):
reverse = True
+class TestHttps2Http(tservers.ReverseProxTest):
+ @classmethod
+ def get_proxy_config(cls):
+ d = super(TestHttps2Http, cls).get_proxy_config()
+ d["upstream_server"][0] = True
+ return d
+
+ def pathoc(self, ssl, sni=None):
+ """
+ Returns a connected Pathoc instance.
+ """
+ p = libpathod.pathoc.Pathoc(("localhost", self.proxy.port), ssl=ssl, sni=sni)
+ p.connect()
+ return p
+
+ def test_all(self):
+ p = self.pathoc(ssl=True)
+ assert p.request("get:'/p/200'").status_code == 200
+
+ def test_sni(self):
+ p = self.pathoc(ssl=True, sni="example.com")
+ assert p.request("get:'/p/200'").status_code == 200
+ assert all("Error in handle_sni" not in msg for msg in self.proxy.log)
+
+ def test_http(self):
+ p = self.pathoc(ssl=False)
+ assert p.request("get:'/p/200'").status_code == 400
+
+
+
class TestTransparent(tservers.TransparentProxTest, CommonMixin, TcpMixin):
ssl = False
diff --git a/test/tservers.py b/test/tservers.py
index 37929d1a..30c8b52e 100644
--- a/test/tservers.py
+++ b/test/tservers.py
@@ -218,12 +218,12 @@ class ReverseProxTest(ProxTestBase):
@classmethod
def get_proxy_config(cls):
d = ProxTestBase.get_proxy_config()
- d["upstream_server"] = (
+ d["upstream_server"] = [
True if cls.ssl else False,
True if cls.ssl else False,
"127.0.0.1",
cls.server.port
- )
+ ]
d["mode"] = "reverse"
return d