test_enabled.py 1.4 KB

1234567891011121314151617181920212223242526
  1. import re
  2. import pytest
  3. @pytest.mark.parametrize('url,header,input,want', [
  4. ('http://web.nginx-proxy.tld/headers', 'X-Forwarded-Proto', None, 'http'),
  5. ('http://web.nginx-proxy.tld/headers', 'X-Forwarded-Proto', 'f00', 'f00'),
  6. ('https://web.nginx-proxy.tld/headers', 'X-Forwarded-Proto', None, 'https'),
  7. ('https://web.nginx-proxy.tld/headers', 'X-Forwarded-Proto', 'f00', 'f00'),
  8. ('http://web.nginx-proxy.tld/headers', 'X-Forwarded-Host', None, 'web.nginx-proxy.tld'),
  9. ('http://web.nginx-proxy.tld/headers', 'X-Forwarded-Host', 'example.com', 'example.com'),
  10. ('https://web.nginx-proxy.tld/headers', 'X-Forwarded-Host', None, 'web.nginx-proxy.tld'),
  11. ('https://web.nginx-proxy.tld/headers', 'X-Forwarded-Host', 'example.com', 'example.com'),
  12. ('http://web.nginx-proxy.tld/headers', 'X-Forwarded-Port', None, '80'),
  13. ('http://web.nginx-proxy.tld/headers', 'X-Forwarded-Port', '1234', '1234'),
  14. ('https://web.nginx-proxy.tld/headers', 'X-Forwarded-Port', None, '443'),
  15. ('https://web.nginx-proxy.tld/headers', 'X-Forwarded-Port', '1234', '1234'),
  16. ])
  17. def test_downstream_proxy_header(docker_compose, nginxproxy, url, header, input, want):
  18. kwargs = {} if input is None else {'headers': {header: input}}
  19. r = nginxproxy.get(url, **kwargs)
  20. assert r.status_code == 200
  21. assert re.search(fr'(?m)^(?i:{re.escape(header)}): {re.escape(want)}$', r.text)