aboutsummaryrefslogtreecommitdiffstats
path: root/test/test_server.py
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2015-06-23 09:40:25 +1200
committerAldo Cortesi <aldo@nullcube.com>2015-06-23 09:40:25 +1200
commite2069d52a81a2aef99dcd2da4fbc61e926b024a0 (patch)
tree92986b2fda60ae8a24932d892da8469932d654a8 /test/test_server.py
parent159543dd2b2f0f38ba4f86109d58b7a2e53d6566 (diff)
parentfbb23b5c9fae6e402d84ddae3c3b8c218def366c (diff)
downloadmitmproxy-e2069d52a81a2aef99dcd2da4fbc61e926b024a0.tar.gz
mitmproxy-e2069d52a81a2aef99dcd2da4fbc61e926b024a0.tar.bz2
mitmproxy-e2069d52a81a2aef99dcd2da4fbc61e926b024a0.zip
Merge pull request #638 from iroiro123/http-transparent
HTTP Transparent Proxy
Diffstat (limited to 'test/test_server.py')
-rw-r--r--test/test_server.py49
1 files changed, 49 insertions, 0 deletions
diff --git a/test/test_server.py b/test/test_server.py
index 2ab48422..07b8a5f2 100644
--- a/test/test_server.py
+++ b/test/test_server.py
@@ -368,6 +368,55 @@ class TestReverse(tservers.ReverseProxTest, CommonMixin, TcpMixin):
reverse = True
+class TestSpoof(tservers.SpoofModeTest):
+ def test_http(self):
+ alist = (
+ ("localhost", self.server.port),
+ ("127.0.0.1", self.server.port)
+ )
+ for a in alist:
+ self.server.clear_log()
+ p = self.pathoc()
+ f = p.request("get:/p/304:h'Host'='%s:%s'" % a)
+ assert self.server.last_log()
+ assert f.status_code == 304
+ l = self.master.state.view[-1]
+ assert l.server_conn.address
+ assert l.server_conn.address.host == a[0]
+ assert l.server_conn.address.port == a[1]
+
+ def test_http_without_host(self):
+ p = self.pathoc()
+ f = p.request("get:/p/304:r")
+ assert f.status_code == 400
+
+
+class TestSSLSpoof(tservers.SSLSpoofModeTest):
+ def test_https(self):
+ alist = (
+ ("localhost", self.server.port),
+ ("127.0.0.1", self.server.port)
+ )
+ for a in alist:
+ self.server.clear_log()
+ self.config.mode.sslport = a[1]
+ p = self.pathoc(sni=a[0])
+ f = p.request("get:/p/304")
+ assert self.server.last_log()
+ assert f.status_code == 304
+ l = self.master.state.view[-1]
+ assert l.server_conn.address
+ assert l.server_conn.address.host == a[0]
+ assert l.server_conn.address.port == a[1]
+
+ def test_https_without_sni(self):
+ a = ("localhost", self.server.port)
+ self.config.mode.sslport = a[1]
+ p = self.pathoc(sni=None)
+ f = p.request("get:/p/304")
+ assert f.status_code == 400
+
+
class TestHttps2Http(tservers.ReverseProxTest):
@classmethod
def get_proxy_config(cls):