Ejemplo n.º 1
0
def test_error1():
    """Will return mail -- not header should cause error"""
    x = ruleset.Input(dest_addr="Smtp.aol.com",
                      port=25,
                      headers={"Host": "example.com"})
    http_ua = http.HttpUA()
    with pytest.raises(errors.TestError):
        http_ua.send_request(x)
Ejemplo n.º 2
0
def test_error2():
    """Invalid request should cause timeout"""
    x = ruleset.Input(dest_addr="example.com",
                      port=123,
                      headers={"Host": "example.com"})
    http_ua = http.HttpUA()
    with pytest.raises(errors.TestError):
        http_ua.send_request(x)
Ejemplo n.º 3
0
Archivo: test_http.py Proyecto: tes/ftw
def test_raw1():
    """Test to make sure a raw request will work with \r\n replacment"""
    x = ruleset.Input(
        dest_addr="example.com",
        raw_request="""GET / HTTP/1.1\r\nHost: example.com\r\n\r\n""")
    http_ua = http.HttpUA()
    http_ua.send_request(x)
    assert http_ua.response_object.status == 200
Ejemplo n.º 4
0
Archivo: test_http.py Proyecto: tes/ftw
def test13():
    """Request https on port 80 (default)"""
    x = ruleset.Input(protocol="https",
                      dest_addr="example.com",
                      headers={"Host": "example.com"})
    http_ua = http.HttpUA()
    with pytest.raises(errors.TestError):
        http_ua.send_request(x)
Ejemplo n.º 5
0
Archivo: test_http.py Proyecto: tes/ftw
def test6():
    """Basic GET without Host with invalid version (request line) - Expect 400 invalid"""
    x = ruleset.Input(dest_addr="example.com",
                      version="HTTP/1.0 x",
                      headers={})
    http_ua = http.HttpUA()
    http_ua.send_request(x)
    assert http_ua.response_object.status == 400
Ejemplo n.º 6
0
def test4():
    """Basic GET wit Host on 1.0 - Expect 200"""
    x = ruleset.Input(dest_addr="example.com",
                      version="HTTP/1.0",
                      headers={"Host": "example.com"})
    http_ua = http.HttpUA()
    http_ua.send_request(x)
    assert http_ua.response_object.status == 200
Ejemplo n.º 7
0
def test_cookies2():
    """Test to make sure that we don't override user specified cookies"""
    http_ua = http.HttpUA()
    x = ruleset.Input(dest_addr="ieee.org", headers={"Host": "ieee.org"})
    http_ua.send_request(x)
    x = ruleset.Input(
        dest_addr="ieee.org",
        headers={
            "Host":
            "ieee.org",
            "cookie":
            "TS01293935=012f3506234413e6c5cb14e8c0d5bf890fdd02481614b01cd6cd30911c6733e3e6f79e72aa"
        })
    http_ua.send_request(x)
    assert (
        'TS01293935=012f3506234413e6c5cb14e8c0d5bf890fdd02481614b01cd6cd30911c6733e3e6f79e72aa'
        in http_ua.request_object.headers["cookie"])
Ejemplo n.º 8
0
def test_cookies3():
    """Test to make sure we retain cookies when user specified values are provided"""
    http_ua = http.HttpUA()
    x = ruleset.Input(dest_addr="ieee.org", headers={"Host": "ieee.org"})
    http_ua.send_request(x)
    x = ruleset.Input(
        dest_addr="ieee.org",
        headers={
            "Host":
            "ieee.org",
            "cookie":
            "TS01293935=012f3506234413e6c5cb14e8c0d5bf890fdd02481614b01cd6cd30911c6733e3e6f79e72aa; XYZ=123"
        })
    http_ua.send_request(x)
    assert (set([
        chunk.split('=')[0].strip()
        for chunk in http_ua.request_object.headers["cookie"].split(';')
    ]) == set(['XYZ', 'TS01293935', 'TS01c9c5e8']))
Ejemplo n.º 9
0
def test_encoded1():
    """Test to make sure a encode request works"""
    x = ruleset.Input(
        dest_addr="example.com",
        encoded_request=
        "R0VUIC8gSFRUUC8xLjFcclxuSG9zdDogZXhhbXBsZS5jb21cclxuXHJcbg==")
    http_ua = http.HttpUA()
    http_ua.send_request(x)
    assert http_ua.response_object.status == 200
Ejemplo n.º 10
0
def test_brotli():
    """Accept-Encoding br"""
    x = ruleset.Input(dest_addr='httpbin.org', uri='/brotli',
                      headers={'Host': 'httpbin.org',
                               'Accept-Encoding': 'br'})
    http_ua = http.HttpUA()
    http_ua.send_request(x)
    assert http_ua.response_object.status == 200
    assert http_ua.response_object.headers['content-encoding'] == 'br'
Ejemplo n.º 11
0
def test10():
    """HEAD method - Expect 200"""
    x = ruleset.Input(method="HEAD",
                      dest_addr="example.com",
                      version="HTTP/1.0",
                      headers={"Host": "example.com"})
    http_ua = http.HttpUA()
    http_ua.send_request(x)
    assert http_ua.response_object.status == 200
Ejemplo n.º 12
0
def test9():
    # OPTIONS method - Expect 200
    x = ruleset.Input(method="OPTIONS",
                      dest_addr="example.com",
                      version="HTTP/1.0",
                      headers={})
    http_ua = http.HttpUA(x)
    http_ua.send_request()
    assert http_ua.response_object.status == 200
Ejemplo n.º 13
0
def test11():
    """POST method no data - Expect 411"""
    x = ruleset.Input(method="POST",
                      dest_addr="example.com",
                      version="HTTP/1.0",
                      headers={})
    http_ua = http.HttpUA()
    http_ua.send_request(x)
    assert http_ua.response_object.status == 411
Ejemplo n.º 14
0
def test_both1():
    """Test to make sure that if both encoded and raw are provided there is an error"""
    x = ruleset.Input(
        dest_addr="example.com",
        raw_request="""GET / HTTP/1.1\r\nHost: example.com\r\n\r\n""",
        encoded_request="abc123==")
    http_ua = http.HttpUA()
    with pytest.raises(errors.TestError):
        http_ua.send_request(x)
Ejemplo n.º 15
0
def test_gzip():
    """Accept-Encoding gzip"""
    x = ruleset.Input(dest_addr='example.com', version='HTTP/1.0',
                      headers={'Host': 'example.com',
                               'Accept-Encoding': 'gzip'})
    http_ua = http.HttpUA()
    http_ua.send_request(x)
    assert http_ua.response_object.status == 200
    assert http_ua.response_object.headers['content-encoding'] == 'gzip'
Ejemplo n.º 16
0
def test18():
    """Send a request and check that the space is encoded automagically"""
    x = ruleset.Input(method='POST', protocol='http', port=80,
                      uri='/', dest_addr='example.com',
                      headers={'Host': 'example.com'},
                      data='test=hit f&test2=hello')
    http_ua = http.HttpUA()
    http_ua.send_request(x)
    assert http_ua.request_object.data == 'test=hit+f&test2=hello'
Ejemplo n.º 17
0
def test14():
    """Request https on port 443 should work"""
    x = ruleset.Input(protocol="https",
                      port=443,
                      dest_addr="example.com",
                      headers={"Host": "example.com"})
    http_ua = http.HttpUA()
    http_ua.send_request(x)
    assert http_ua.response_object.status == 200
Ejemplo n.º 18
0
def test12():
    """POST method no data with content length header - Expect 200"""
    x = ruleset.Input(method='POST', dest_addr='example.com',
                      version='HTTP/1.0',
                      headers={'Content-Length': '0', 'Host': 'example.com'},
                      data='')
    http_ua = http.HttpUA()
    http_ua.send_request(x)
    assert http_ua.response_object.status == 200
Ejemplo n.º 19
0
def test8():
    """PROPFIND method which isn't allowed - Expect 405"""
    x = ruleset.Input(method="PROPFIND",
                      dest_addr="example.com",
                      version="HTTP/1.0",
                      headers={})
    http_ua = http.HttpUA()
    http_ua.send_request(x)
    assert http_ua.response_object.status == 405
Ejemplo n.º 20
0
def test7():
    """TEST method which doesn't exist - Expect 501"""
    x = ruleset.Input(method="TEST",
                      dest_addr="example.com",
                      version="HTTP/1.0",
                      headers={})
    http_ua = http.HttpUA()
    http_ua.send_request(x)
    assert http_ua.response_object.status == 501
Ejemplo n.º 21
0
def test_raw2():
    """Test to make sure a raw request will work with actual seperators"""
    x = ruleset.Input(dest_addr='example.com', raw_request='''GET / HTTP/1.1
Host: example.com


''')
    http_ua = http.HttpUA()
    http_ua.send_request(x)
    assert http_ua.response_object.status == 200
Ejemplo n.º 22
0
def test_raw2():
    x = ruleset.Input(dest_addr="example.com",
                      raw_request="""GET / HTTP/1.1
Host: example.com
    

""")
    http_ua = http.HttpUA(x)
    http_ua.send_request()
    assert http_ua.response_object.status == 200
Ejemplo n.º 23
0
def test16():
    """Post request with content-type but not content-length"""
    x = ruleset.Input(method='POST', protocol='http', port=80,
                      dest_addr='example.com',
                      headers={
                          'Content-Type': 'application/x-www-form-urlencoded',
                          'Host': 'example.com'},
                      data='test=hi')
    http_ua = http.HttpUA()
    http_ua.send_request(x)
    assert http_ua.response_object.status == 200
Ejemplo n.º 24
0
def test_cookies1():
    """Tests accessing a site that sets a cookie and then wants to resend the cookie"""
    http_ua = http.HttpUA()
    x = ruleset.Input(protocol="https",
                      port=443,
                      dest_addr="www.ieee.org",
                      headers={"Host": "www.ieee.org"})
    http_ua.send_request(x)
    with pytest.raises(KeyError):
        print(http_ua.request_object.headers["cookie"])
    assert ("set-cookie" in http_ua.response_object.headers.keys())
    cookie_data = http_ua.response_object.headers["set-cookie"]
    cookie_var = cookie_data.split("=")[0]
    x = ruleset.Input(protocol="https",
                      port=443,
                      dest_addr="www.ieee.org",
                      headers={"Host": "www.ieee.org"})
    http_ua.send_request(x)
    assert (
        http_ua.request_object.headers["cookie"].split('=')[0] == cookie_var)
Ejemplo n.º 25
0
def test_brotli():
    """Accept-Encoding br"""
    x = ruleset.Input(dest_addr="httpbin.org",
                      uri="/brotli",
                      headers={
                          "Host": "httpbin.org",
                          "Accept-Encoding": "br"
                      })
    http_ua = http.HttpUA()
    http_ua.send_request(x)
    assert http_ua.response_object.status == 200
    assert http_ua.response_object.headers["content-encoding"] == "br"
Ejemplo n.º 26
0
def test19():
    """Send a raw question mark and test it is encoded automagically"""
    x = ruleset.Input(method="POST",
                      protocol="http",
                      port=80,
                      uri="/",
                      dest_addr="example.com",
                      headers={"Host": "example.com"},
                      data="test=hello?x")
    http_ua = http.HttpUA()
    http_ua.send_request(x)
    assert http_ua.request_object.data == "test=hello%3Fx"
Ejemplo n.º 27
0
def test18():
    """Send a request and check that the space is encoded automagically"""
    x = ruleset.Input(method="POST",
                      protocol="http",
                      port=80,
                      uri="/",
                      dest_addr="example.com",
                      headers={"Host": "example.com"},
                      data="test=hit f&test2=hello")
    http_ua = http.HttpUA()
    http_ua.send_request(x)
    assert http_ua.request_object.data == "test=hit+f&test2=hello"
Ejemplo n.º 28
0
def test17():
    """Post request with no content-type AND no content-length"""
    x = ruleset.Input(method="POST",
                      protocol="http",
                      port=80,
                      uri="/",
                      dest_addr="example.com",
                      headers={"Host": "example.com"},
                      data="test=hi")
    http_ua = http.HttpUA()
    http_ua.send_request(x)
    assert http_ua.response_object.status == 200
Ejemplo n.º 29
0
def test_gzip():
    """Accept-Encoding gzip"""
    x = ruleset.Input(dest_addr="example.com",
                      version="HTTP/1.0",
                      headers={
                          "Host": "example.com",
                          "Accept-Encoding": "gzip"
                      })
    http_ua = http.HttpUA()
    http_ua.send_request(x)
    assert http_ua.response_object.status == 200
    assert http_ua.response_object.headers["content-encoding"] == "gzip"
Ejemplo n.º 30
0
def test12():
    """POST method no data with content length header - Expect 200"""
    x = ruleset.Input(method="POST",
                      dest_addr="example.com",
                      version="HTTP/1.0",
                      headers={
                          "Content-Length": "0",
                          "Host": "example.com"
                      },
                      data="")
    http_ua = http.HttpUA()
    http_ua.send_request(x)
    assert http_ua.response_object.status == 200