예제 #1
0
def test_filter_by_body():
    f = context.gen_filter_by_body(context.cmp_contains, 'sexy')
    fn = context.gen_filter_by_body(context.cmp_contains, 'sexy', negate=True)
    
    # Test request bodies
    r = Request()
    r.status_line = 'GET /sexy HTTP/1.1'
    r.headers['Header'] = 'sexy'
    r.raw_data = 'foo'
    assert not f(r)
    assert fn(r)

    r.raw_data = 'sexy'
    assert f(r)
    assert not fn(r)

    # Test response bodies
    r = Request()
    rsp = Response()
    rsp.status_line = 'HTTP/1.1 200 OK'
    rsp.headers['sexy'] = 'sexy'
    r.status_line = 'GET /sexy HTTP/1.1'
    r.headers['Header'] = 'sexy'
    r.response = rsp
    assert not f(r)
    assert fn(r)

    rsp.raw_data = 'sexy'
    assert f(r)
    assert not fn(r)
예제 #2
0
def test_filter_by_params_post():
    f1 = context.gen_filter_by_params(context.cmp_contains, 'Session')
    f2 = context.gen_filter_by_params(context.cmp_contains, 'Cookie',
                                      context.cmp_contains, 'CookieVal')

    r = Request(('GET / HTTP/1.1\r\n'
                 'Content-Type: application/x-www-form-urlencoded\r\n\r\n'))
    r.raw_data = 'foo=bar'
    assert not f1(r)
    assert not f2(r)

    r = Request(('GET / HTTP/1.1\r\n'
                 'Content-Type: application/x-www-form-urlencoded\r\n\r\n'))
    r.raw_data = 'Session=bar'
    assert f1(r)
    assert not f2(r)

    r = Request(('GET / HTTP/1.1\r\n'
                 'Content-Type: application/x-www-form-urlencoded\r\n\r\n'))
    r.raw_data = 'Session=bar&Cookie=foo'
    assert f1(r)
    assert not f2(r)

    r = Request(('GET / HTTP/1.1\r\n'
                 'Content-Type: application/x-www-form-urlencoded\r\n\r\n'))
    r.raw_data = 'Session=bar&CookieThing=CookieValue'
    assert f1(r)
    assert f2(r)
예제 #3
0
def test_filter_by_params_post():
    f1 = context.gen_filter_by_params(context.cmp_contains, 'Session')
    f2 = context.gen_filter_by_params(context.cmp_contains, 'Cookie',
                                      context.cmp_contains, 'CookieVal')

    r = Request(('GET / HTTP/1.1\r\n'
                 'Content-Type: application/x-www-form-urlencoded\r\n\r\n'))
    r.raw_data = 'foo=bar'
    assert not f1(r)
    assert not f2(r)

    r = Request(('GET / HTTP/1.1\r\n'
                 'Content-Type: application/x-www-form-urlencoded\r\n\r\n'))
    r.raw_data = 'Session=bar'
    assert f1(r)
    assert not f2(r)

    r = Request(('GET / HTTP/1.1\r\n'
                 'Content-Type: application/x-www-form-urlencoded\r\n\r\n'))
    r.raw_data = 'Session=bar&Cookie=foo'
    assert f1(r)
    assert not f2(r)

    r = Request(('GET / HTTP/1.1\r\n'
                 'Content-Type: application/x-www-form-urlencoded\r\n\r\n'))
    r.raw_data = 'Session=bar&CookieThing=CookieValue'
    assert f1(r)
    assert f2(r)
예제 #4
0
def test_filter_by_body():
    f = context.gen_filter_by_body(context.cmp_contains, 'sexy')
    fn = context.gen_filter_by_body(context.cmp_contains, 'sexy', negate=True)

    # Test request bodies
    r = Request()
    r.status_line = 'GET /sexy HTTP/1.1'
    r.headers['Header'] = 'sexy'
    r.raw_data = 'foo'
    assert not f(r)
    assert fn(r)

    r.raw_data = 'sexy'
    assert f(r)
    assert not fn(r)

    # Test response bodies
    r = Request()
    rsp = Response()
    rsp.status_line = 'HTTP/1.1 200 OK'
    rsp.headers['sexy'] = 'sexy'
    r.status_line = 'GET /sexy HTTP/1.1'
    r.headers['Header'] = 'sexy'
    r.response = rsp
    assert not f(r)
    assert fn(r)

    rsp.raw_data = 'sexy'
    assert f(r)
    assert not fn(r)
예제 #5
0
def test_gen_filter_by_all_request():
    f = context.gen_filter_by_all(context.cmp_contains, 'hello')
    fn = context.gen_filter_by_all(context.cmp_contains, 'hello', negate=True)

    # Nowhere
    r = Request('GET / HTTP/1.1\r\n')
    assert not f(r)
    assert fn(r)

    # Verb
    r = Request('hello / HTTP/1.1\r\n')
    assert f(r)
    assert not fn(r)

    # Path
    r = Request('GET /hello HTTP/1.1\r\n')
    assert f(r)
    assert not fn(r)

    # Data
    r = Request('GET / HTTP/1.1\r\n')
    r.raw_data = 'hello'
    assert f(r)
    assert not fn(r)

    # Header key
    r = Request('GET / HTTP/1.1\r\n')
    r.headers['hello'] = 'goodbye'
    assert f(r)
    assert not fn(r)

    # Header value
    r = Request('GET / HTTP/1.1\r\n')
    r.headers['goodbye'] = 'hello'
    assert f(r)
    assert not fn(r)

    # Nowhere in headers
    r = Request('GET / HTTP/1.1\r\n')
    r.headers['goodbye'] = 'for real'
    assert not f(r)
    assert fn(r)

    # Cookie key
    r = Request('GET / HTTP/1.1\r\n')
    r.cookies['hello'] = 'world'
    assert f(r)
    assert not fn(r)

    # Cookie value
    r = Request('GET / HTTP/1.1\r\n')
    r.cookies['world'] = 'hello'
    assert f(r)
    assert not fn(r)

    # Nowhere in cookie
    r = Request('GET / HTTP/1.1\r\n')
    r.cookies['world'] = 'sucks'
    assert not f(r)
    assert fn(r)
예제 #6
0
def test_gen_filter_by_all_request():
    f = context.gen_filter_by_all(context.cmp_contains, 'hello')
    fn = context.gen_filter_by_all(context.cmp_contains, 'hello', negate=True)

    # Nowhere
    r = Request('GET / HTTP/1.1\r\n')
    assert not f(r)
    assert fn(r)

    # Verb
    r = Request('hello / HTTP/1.1\r\n')
    assert f(r)
    assert not fn(r)

    # Path
    r = Request('GET /hello HTTP/1.1\r\n')
    assert f(r)
    assert not fn(r)

    # Data
    r = Request('GET / HTTP/1.1\r\n')
    r.raw_data = 'hello'
    assert f(r)
    assert not fn(r)

    # Header key
    r = Request('GET / HTTP/1.1\r\n')
    r.headers['hello'] = 'goodbye'
    assert f(r)
    assert not fn(r)

    # Header value
    r = Request('GET / HTTP/1.1\r\n')
    r.headers['goodbye'] = 'hello'
    assert f(r)
    assert not fn(r)

    # Nowhere in headers
    r = Request('GET / HTTP/1.1\r\n')
    r.headers['goodbye'] = 'for real'
    assert not f(r)
    assert fn(r)

    # Cookie key
    r = Request('GET / HTTP/1.1\r\n')
    r.cookies['hello'] = 'world'
    assert f(r)
    assert not fn(r)

    # Cookie value
    r = Request('GET / HTTP/1.1\r\n')
    r.cookies['world'] = 'hello'
    assert f(r)
    assert not fn(r)

    # Nowhere in cookie
    r = Request('GET / HTTP/1.1\r\n')
    r.cookies['world'] = 'sucks'
    assert not f(r)
    assert fn(r)
예제 #7
0
def req():
    r = Request()
    r.status_line = 'GET / HTTP/1.1'
    r.host = 'www.ffffff.eeeeee'
    r.raw_data = 'AAAA'
    return r
예제 #8
0
def req():
    r = Request()
    r.status_line = 'GET / HTTP/1.1'
    r.host = 'www.ffffff.eeeeee'
    r.raw_data = 'AAAA'
    return r