tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

request.py (2726B)


      1 import pytest
      2 from support.network import get_host, http_request
      3 
      4 
      5 @pytest.mark.parametrize(
      6    "hostname, port_type, status",
      7    [
      8        # Valid hosts
      9        ("localhost", "server_port", 200),
     10        ("127.0.0.1", "server_port", 200),
     11        ("[::1]", "server_port", 200),
     12        ("192.168.8.1", "server_port", 200),
     13        ("[fdf8:f535:82e4::53]", "server_port", 200),
     14        # Invalid hosts
     15        ("localhost", "default_port", 500),
     16        ("127.0.0.1", "default_port", 500),
     17        ("[::1]", "default_port", 500),
     18        ("192.168.8.1", "default_port", 500),
     19        ("[fdf8:f535:82e4::53]", "default_port", 500),
     20        ("example.org", "server_port", 500),
     21        ("example.org", "wrong_port", 500),
     22        ("example.org", "default_port", 500),
     23        ("localhost", "wrong_port", 500),
     24        ("127.0.0.1", "wrong_port", 500),
     25        ("[::1]", "wrong_port", 500),
     26        ("192.168.8.1", "wrong_port", 500),
     27        ("[fdf8:f535:82e4::53]", "wrong_port", 500),
     28    ],
     29    ids=[
     30        # Valid hosts
     31        "localhost with same port as server",
     32        "127.0.0.1 (loopback) with same port as server",
     33        "[::1] (ipv6 loopback) with same port as server",
     34        "ipv4 address with same port as server",
     35        "ipv6 address with same port as server",
     36        # Invalid hosts
     37        "localhost with default port",
     38        "127.0.0.1 (loopback) with default port",
     39        "[::1] (ipv6 loopback) with default port",
     40        "ipv4 address with default port",
     41        "ipv6 address with default port",
     42        "random hostname with the same port as server",
     43        "random hostname with a different port than server",
     44        "random hostname with default port",
     45        "localhost with a different port than server",
     46        "127.0.0.1 (loopback) with a different port than server",
     47        "[::1] (ipv6 loopback) with a different port than server",
     48        "ipv4 address with a different port than server",
     49        "ipv6 address with a different port than server",
     50    ],
     51 )
     52 def test_host_header(configuration, hostname, port_type, status):
     53    host = get_host(port_type, hostname, configuration["port"])
     54    response = http_request(configuration["host"], configuration["port"], host=host)
     55 
     56    assert response.status == status
     57 
     58 
     59 @pytest.mark.parametrize(
     60    "origin, add_port, status",
     61    [
     62        (None, False, 200),
     63        ("", False, 500),
     64        ("sometext", False, 500),
     65        ("http://localhost", True, 500),
     66    ],
     67 )
     68 def test_origin_header(configuration, origin, add_port, status):
     69    if add_port:
     70        origin = f"{origin}:{configuration['port']}"
     71    response = http_request(configuration["host"], configuration["port"], origin=origin)
     72    assert response.status == status