aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorMaximilian Hils <git@maximilianhils.com>2015-08-28 01:51:13 +0200
committerMaximilian Hils <git@maximilianhils.com>2015-08-28 01:51:13 +0200
commit1cc48345e13917aadc1e0fd93d6011139e78e3d9 (patch)
tree9758b20f95587104807fc74e545e35ec9a9cdef3 /test
parenta86491eeed13c7889356e5102312f52bd86c3c66 (diff)
downloadmitmproxy-1cc48345e13917aadc1e0fd93d6011139e78e3d9.tar.gz
mitmproxy-1cc48345e13917aadc1e0fd93d6011139e78e3d9.tar.bz2
mitmproxy-1cc48345e13917aadc1e0fd93d6011139e78e3d9.zip
clean up config/cmdline, fix bugs, remove cruft
Diffstat (limited to 'test')
-rw-r--r--test/test_cmdline.py14
-rw-r--r--test/test_flow.py8
-rw-r--r--test/test_proxy.py8
-rw-r--r--test/test_server.py53
-rw-r--r--test/tservers.py14
5 files changed, 20 insertions, 77 deletions
diff --git a/test/test_cmdline.py b/test/test_cmdline.py
index eafcbde4..ee2f7044 100644
--- a/test/test_cmdline.py
+++ b/test/test_cmdline.py
@@ -38,15 +38,15 @@ def test_parse_replace_hook():
def test_parse_server_spec():
tutils.raises("Invalid server specification", cmdline.parse_server_spec, "")
assert cmdline.parse_server_spec(
- "http://foo.com:88") == [False, False, "foo.com", 88]
+ "http://foo.com:88") == ("http", ("foo.com", 88))
assert cmdline.parse_server_spec(
- "http://foo.com") == [False, False, "foo.com", 80]
+ "http://foo.com") == ("http", ("foo.com", 80))
assert cmdline.parse_server_spec(
- "https://foo.com") == [True, True, "foo.com", 443]
+ "https://foo.com") == ("https", ("foo.com", 443))
assert cmdline.parse_server_spec_special(
- "https2http://foo.com") == [True, False, "foo.com", 80]
+ "https2http://foo.com") == ("https2http", ("foo.com", 80))
assert cmdline.parse_server_spec_special(
- "http2https://foo.com") == [False, True, "foo.com", 443]
+ "http2https://foo.com") == ("http2https", ("foo.com", 443))
tutils.raises(
"Invalid server specification",
cmdline.parse_server_spec,
@@ -55,6 +55,10 @@ def test_parse_server_spec():
"Invalid server specification",
cmdline.parse_server_spec,
"http://")
+ tutils.raises(
+ "Invalid server specification",
+ cmdline.parse_server_spec,
+ "https2http://foo.com")
def test_parse_setheaders():
diff --git a/test/test_flow.py b/test/test_flow.py
index 711688da..5c49deed 100644
--- a/test/test_flow.py
+++ b/test/test_flow.py
@@ -4,6 +4,7 @@ import os.path
from cStringIO import StringIO
import email.utils
import mock
+from libmproxy.cmdline import parse_server_spec
import netlib.utils
from netlib import odict
@@ -672,11 +673,8 @@ class TestSerialize:
s = flow.State()
conf = ProxyConfig(
mode="reverse",
- upstream_server=[
- True,
- True,
- "use-this-domain",
- 80])
+ upstream_server=("https", ("use-this-domain", 80))
+ )
fm = flow.FlowMaster(DummyServer(conf), s)
fm.load_flows(r)
assert s.flows[0].request.host == "use-this-domain"
diff --git a/test/test_proxy.py b/test/test_proxy.py
index 6ab19e02..9c01ab63 100644
--- a/test/test_proxy.py
+++ b/test/test_proxy.py
@@ -97,13 +97,7 @@ class TestProcessProxyOptions:
self.assert_err("expected one argument", "-U")
self.assert_err("Invalid server specification", "-U", "upstream")
- self.assert_noerr("--spoof")
- self.assert_noerr("--ssl-spoof")
-
- self.assert_noerr("--spoofed-port", "443")
- self.assert_err("expected one argument", "--spoofed-port")
-
- self.assert_err("mutually exclusive", "-R", "http://localhost", "-T")
+ self.assert_err("not allowed with", "-R", "http://localhost", "-T")
def test_client_certs(self):
with tutils.tmpdir() as cadir:
diff --git a/test/test_server.py b/test/test_server.py
index e9c40d1a..1216a349 100644
--- a/test/test_server.py
+++ b/test/test_server.py
@@ -464,60 +464,11 @@ class TestSocks5(tservers.SocksModeTest):
assert "SOCKS5 mode failure" in f.content
-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):
d = super(TestHttps2Http, cls).get_proxy_config()
- d["upstream_server"][0] = True
+ d["upstream_server"] = ("https2http", d["upstream_server"][1])
return d
def pathoc(self, ssl, sni=None):
@@ -541,7 +492,7 @@ class TestHttps2Http(tservers.ReverseProxTest):
def test_http(self):
p = self.pathoc(ssl=False)
- assert p.request("get:'/p/200'").status_code == 400
+ assert p.request("get:'/p/200'").status_code == 502
class TestTransparent(tservers.TransparentProxTest, CommonMixin, TcpMixin):
diff --git a/test/tservers.py b/test/tservers.py
index 3c73b262..43ebf2bb 100644
--- a/test/tservers.py
+++ b/test/tservers.py
@@ -1,6 +1,5 @@
import os.path
import threading
-import Queue
import shutil
import tempfile
import flask
@@ -130,7 +129,6 @@ class ProxTestBase(object):
no_upstream_cert = cls.no_upstream_cert,
cadir = cls.cadir,
authenticator = cls.authenticator,
- ssl_ports=([cls.server.port, cls.server2.port] if cls.ssl else []),
clientcerts = tutils.test_data.path("data/clientcert") if cls.clientcerts else None
)
@@ -235,12 +233,10 @@ class ReverseProxTest(ProxTestBase):
@classmethod
def get_proxy_config(cls):
d = ProxTestBase.get_proxy_config()
- d["upstream_server"] = [
- True if cls.ssl else False,
- True if cls.ssl else False,
- "127.0.0.1",
- cls.server.port
- ]
+ d["upstream_server"] = (
+ "https" if cls.ssl else "http",
+ ("127.0.0.1", cls.server.port)
+ )
d["mode"] = "reverse"
return d
@@ -360,7 +356,7 @@ class ChainProxTest(ProxTestBase):
if cls.chain: # First proxy is in normal mode.
d.update(
mode="upstream",
- upstream_server=(False, False, "127.0.0.1", cls.chain[0].port)
+ upstream_server=("http", ("127.0.0.1", cls.chain[0].port))
)
return d