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)
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)
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)
def req(): r = Request() r.status_line = 'GET / HTTP/1.1' r.host = 'www.ffffff.eeeeee' r.raw_data = 'AAAA' return r