aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/mitmproxy/proxy/protocol/test_http2.py69
-rw-r--r--test/mitmproxy/proxy/test_server.py20
-rw-r--r--test/mitmproxy/test_examples.py2
3 files changed, 20 insertions, 71 deletions
diff --git a/test/mitmproxy/proxy/protocol/test_http2.py b/test/mitmproxy/proxy/protocol/test_http2.py
index 19c2d2ef..871d02fe 100644
--- a/test/mitmproxy/proxy/protocol/test_http2.py
+++ b/test/mitmproxy/proxy/protocol/test_http2.py
@@ -272,75 +272,6 @@ class TestSimple(_Http2Test):
@requires_alpn
-class TestForbiddenHeaders(_Http2Test):
-
- @classmethod
- def handle_server_event(cls, event, h2_conn, rfile, wfile):
- if isinstance(event, h2.events.ConnectionTerminated):
- return False
- elif isinstance(event, h2.events.StreamEnded):
- import warnings
- with warnings.catch_warnings():
- # Ignore UnicodeWarning:
- # h2/utilities.py:64: UnicodeWarning: Unicode equal comparison
- # failed to convert both arguments to Unicode - interpreting
- # them as being unequal.
- # elif header[0] in (b'cookie', u'cookie') and len(header[1]) < 20:
-
- warnings.simplefilter("ignore")
-
- h2_conn.config.validate_outbound_headers = False
- h2_conn.send_headers(event.stream_id, [
- (':status', '200'),
- ('keep-alive', 'foobar'),
- ])
- h2_conn.send_data(event.stream_id, b'response body')
- h2_conn.end_stream(event.stream_id)
- wfile.write(h2_conn.data_to_send())
- wfile.flush()
- return True
-
- def test_forbidden_headers(self):
- client, h2_conn = self._setup_connection()
-
- self._send_request(
- client.wfile,
- h2_conn,
- headers=[
- (':authority', "127.0.0.1:{}".format(self.server.server.address[1])),
- (':method', 'GET'),
- (':scheme', 'https'),
- (':path', '/'),
- ])
-
- done = False
- while not done:
- try:
- raw = b''.join(http2.read_raw_frame(client.rfile))
- events = h2_conn.receive_data(raw)
- except exceptions.HttpException:
- print(traceback.format_exc())
- assert False
-
- client.wfile.write(h2_conn.data_to_send())
- client.wfile.flush()
-
- for event in events:
- if isinstance(event, h2.events.ResponseReceived):
- assert 'keep-alive' not in event.headers
- elif isinstance(event, h2.events.StreamEnded):
- done = True
-
- h2_conn.close_connection()
- client.wfile.write(h2_conn.data_to_send())
- client.wfile.flush()
-
- assert len(self.master.state.flows) == 1
- assert self.master.state.flows[0].response.status_code == 200
- assert self.master.state.flows[0].response.headers['keep-alive'] == 'foobar'
-
-
-@requires_alpn
class TestRequestWithPriority(_Http2Test):
@classmethod
diff --git a/test/mitmproxy/proxy/test_server.py b/test/mitmproxy/proxy/test_server.py
index 8b133085..56b09b9a 100644
--- a/test/mitmproxy/proxy/test_server.py
+++ b/test/mitmproxy/proxy/test_server.py
@@ -481,6 +481,26 @@ class TestHTTPSNoCommonName(tservers.HTTPProxyTest):
class TestReverse(tservers.ReverseProxyTest, CommonMixin, TcpMixin):
reverse = True
+ def test_host_header(self):
+ self.config.options.keep_host_header = True
+ p = self.pathoc()
+ with p.connect():
+ resp = p.request("get:/p/200:h'Host'='example.com'")
+ assert resp.status_code == 200
+
+ req = self.master.state.flows[0].request
+ assert req.host_header == "example.com"
+
+ def test_overridden_host_header(self):
+ self.config.options.keep_host_header = False # default value
+ p = self.pathoc()
+ with p.connect():
+ resp = p.request("get:/p/200:h'Host'='example.com'")
+ assert resp.status_code == 200
+
+ req = self.master.state.flows[0].request
+ assert req.host_header == "127.0.0.1"
+
class TestReverseSSL(tservers.ReverseProxyTest, CommonMixin, TcpMixin):
reverse = True
diff --git a/test/mitmproxy/test_examples.py b/test/mitmproxy/test_examples.py
index f3603fca..668d0d4a 100644
--- a/test/mitmproxy/test_examples.py
+++ b/test/mitmproxy/test_examples.py
@@ -114,13 +114,11 @@ class TestScripts(tservers.MasterTest):
# Rewrite by reverse proxy mode
f.request.scheme = "https"
- f.request.host = "mitmproxy.org"
f.request.port = 443
m.request(f)
assert f.request.scheme == "http"
- assert f.request.host == original_host
assert f.request.port == 80
assert f.request.headers["Host"] == original_host