1
0
mirror of https://github.com/thib8956/nginx-proxy synced 2025-02-24 09:48:14 +00:00
nginx-proxy/test/test_http3/test_http3_vhost.py
Nicolas Duchon c4cb1c3797
test: tests for HTTP/3
Co-authored-by: Nicolas Duchon <nicolas.duchon@gmail.com>
Co-authored-by: Niek <100143256+SchoNie@users.noreply.github.com>
2023-12-08 00:48:08 +01:00

50 lines
2.9 KiB
Python

import pytest
import re
#Python Requests is not able to do native http3 requests.
#We only check for directives which should enable http3.
def test_http3_vhost_enabled_ALTSVC_header(docker_compose, nginxproxy):
r = nginxproxy.get("http://http3-vhost-enabled.nginx-proxy.tld/headers")
assert r.status_code == 200
assert "Host: http3-vhost-enabled.nginx-proxy.tld" in r.text
assert "alt-svc" in r.headers
assert r.headers["alt-svc"] == 'h3=":443"; ma=86400;'
def test_http3_vhost_enabled_config(docker_compose, nginxproxy):
conf = nginxproxy.get_conf().decode('ASCII')
r = nginxproxy.get("http://http3-vhost-enabled.nginx-proxy.tld")
assert r.status_code == 200
assert re.search(r"listen 443 quic reuseport\;", conf)
assert re.search(r"(?s)http3-vhost-enabled\.nginx-proxy\.tld;.*listen 443 quic", conf)
assert re.search(r"(?s)http3-vhost-enabled\.nginx-proxy\.tld;.*http3 on\;", conf)
assert re.search(r"(?s)http3-vhost-enabled\.nginx-proxy\.tld;.*add_header alt-svc \'h3=\":443\"; ma=86400;\'", conf)
def test_http3_vhost_disabled_ALTSVC_header(docker_compose, nginxproxy):
r = nginxproxy.get("http://http3-vhost-disabled.nginx-proxy.tld/headers")
assert r.status_code == 200
assert "Host: http3-vhost-disabled.nginx-proxy.tld" in r.text
assert not "alt-svc" in r.headers
def test_http3_vhost_disabled_config(docker_compose, nginxproxy):
conf = nginxproxy.get_conf().decode('ASCII')
r = nginxproxy.get("http://http3-vhost-disabled.nginx-proxy.tld")
assert r.status_code == 200
assert not re.search(r"(?s)http3-vhost-disabled\.nginx-proxy\.tld.*listen 443 quic.*\# http3-vhost-enabled\.nginx-proxy\.tld", conf)
assert not re.search(r"(?s)http3-vhost-disabled\.nginx-proxy\.tld.*http3 on.*\# http3-vhost-enabled\.nginx-proxy\.tld", conf)
assert not re.search(r"(?s)http3-vhost-disabled\.nginx-proxy\.tld;.*add_header alt-svc \'h3=\":443\"; ma=86400;\'.*\# http3-vhost-enabled\.nginx-proxy\.tld", conf)
def test_http3_vhost_disabledbydefault_ALTSVC_header(docker_compose, nginxproxy):
r = nginxproxy.get("http://http3-vhost-default-disabled.nginx-proxy.tld/headers")
assert r.status_code == 200
assert "Host: http3-vhost-default-disabled.nginx-proxy.tld" in r.text
assert not "alt-svc" in r.headers
def test_http3_vhost_disabledbydefault_config(docker_compose, nginxproxy):
conf = nginxproxy.get_conf().decode('ASCII')
r = nginxproxy.get("http://http3-vhost-default-disabled.nginx-proxy.tld")
assert r.status_code == 200
assert not re.search(r"(?s)http3-vhost-default-disabled\.nginx-proxy\.tld.*listen 443 quic.*\# http3-vhost-disabled\.nginx-proxy\.tld", conf)
assert not re.search(r"(?s)http3-vhost-default-disabled\.nginx-proxy\.tld.*http3 on.*\# http3-vhost-disabled\.nginx-proxy\.tld", conf)
assert not re.search(r"(?s)http3-vhost-default-disabled\.nginx-proxy\.tld;.*add_header alt-svc \'h3=\":443\"; ma=86400;\'.*\# http3-vhost-disabled\.nginx-proxy\.tld", conf)