aboutsummaryrefslogtreecommitdiffstats
path: root/test/test_server.py
diff options
context:
space:
mode:
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):