diff --git a/test/integration/COOKIEFIXTURE.yaml b/test/integration/COOKIEFIXTURE.yaml index e5676e6..f700204 100644 --- a/test/integration/COOKIEFIXTURE.yaml +++ b/test/integration/COOKIEFIXTURE.yaml @@ -1,40 +1,67 @@ --- - meta: - author: "Chaim" - enabled: true - name: "COOKIEFIXTURE.yaml" - description: "Tests cookie saving functionality" - tests: - - - test_title: "Multi-Stage w\\ Cookie" - stages: - - - stage: - input: - save_cookie: true - dest_addr: "www.ieee.org" - method: "GET" - port: 443 - headers: - User-Agent: "Foo" - Host: "www.ieee.org" - protocol: "https" - uri: "/" - output: - status: 200 - response_contains: "Set-Cookie: TS01247332=" - - - stage: - input: - save_cookie: true - dest_addr: "www.ieee.org" - method: "GET" - port: 443 - headers: - User-Agent: "Foo" - Host: "www.ieee.org" - protocol: "https" - uri: "/" - output: - status: 200 - response_contains: "Set-Cookie: TS01247332=" +meta: + author: "Chaim" + enabled: true + name: "COOKIEFIXTURE.yaml" + description: "Tests cookie saving functionality" +tests: + - test_title: "Multi-Stage w\\ Cookie" + stages: + - stage: + input: + save_cookie: true + dest_addr: "www.cloudflare.com" + method: "GET" + port: 443 + headers: + User-Agent: "Foo" + Host: "www.cloudflare.com" + protocol: "https" + uri: "/" + output: + status: 200 + response_contains: "[Ss]et-[Cc]ookie: __cf_bm=" + - stage: + input: + save_cookie: true + dest_addr: "www.cloudflare.com" + method: "GET" + port: 443 + headers: + User-Agent: "Foo" + Host: "www.cloudflare.com" + protocol: "https" + uri: "/" + output: + status: 200 + no_response_contains: "[Ss]et-[Cc]ookie: __cf_bm=" + - test_title: "Multi-Stage w\\ Cookie; failure because the cookie is reset if not all cookies are present and ftw can only handle one cookie header" + stages: + - stage: + input: + save_cookie: true + dest_addr: "www.ieee.org" + method: "GET" + port: 443 + headers: + User-Agent: "Foo" + Host: "www.ieee.org" + protocol: "https" + uri: "/" + output: + status: 200 + response_contains: "[Ss]et-[Cc]ookie: TS01247332=" + - stage: + input: + save_cookie: true + dest_addr: "www.ieee.org" + method: "GET" + port: 443 + headers: + User-Agent: "Foo" + Host: "www.ieee.org" + protocol: "https" + uri: "/" + output: + status: 200 + no_response_contains: "[Ss]et-[Cc]ookie: TS01247332=" diff --git a/test/integration/test_cookie.py b/test/integration/test_cookie.py index 0dd9f8a..bf36434 100644 --- a/test/integration/test_cookie.py +++ b/test/integration/test_cookie.py @@ -2,6 +2,11 @@ import pytest +@pytest.mark.skip( + reason=""" + 1. ieee.org has a very bad web server, so responses fail a lot + 2. ieee.org sends multiple set-cookie headers and ftw can only handle a single header of the same name""" +) def test_default(ruleset, test, destaddr): """ Default tester with no logger obj. Useful for HTML contains and Status code diff --git a/test/integration/test_http.py b/test/integration/test_http.py index d2bd8d1..dc656aa 100644 --- a/test/integration/test_http.py +++ b/test/integration/test_http.py @@ -3,21 +3,20 @@ import pytest -@pytest.mark.skip(reason='Integration failure, @chaimsanders for more info') 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'}) + x = ruleset.Input(protocol='https', port=443, dest_addr='www.cloudflare.com', + headers={'Host': 'www.cloudflare.com'}) http_ua.send_request(x) with pytest.raises(KeyError): print(http_ua.request_object.headers['cookie']) assert('set-cookie' in list(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'}) + x = ruleset.Input(protocol='https', port=443, dest_addr='www.cloudflare.com', + headers={'Host': 'www.cloudflare.com'}) http_ua.send_request(x) assert(http_ua.request_object.headers['cookie'].split('=')[0] == cookie_var) @@ -26,11 +25,11 @@ def test_cookies1(): 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'}) + x = ruleset.Input(dest_addr='example.com', headers={'Host': 'example.com'}) http_ua.send_request(x) - x = ruleset.Input(dest_addr='ieee.org', + x = ruleset.Input(dest_addr='example.com', headers={ - 'Host': 'ieee.org', + 'Host': 'example.com', 'cookie': 'TS01247332=012f3506234413e6c5cb14e8c0' 'd5bf890fdd02481614b01cd6cd30911c6733e' '3e6f79e72aa'}) @@ -44,11 +43,11 @@ 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'}) + x = ruleset.Input(dest_addr='example.com', headers={'Host': 'example.com'}) http_ua.send_request(x) - x = ruleset.Input(dest_addr='ieee.org', + x = ruleset.Input(dest_addr='example.com', headers={ - 'Host': 'ieee.org', + 'Host': 'example.com', 'cookie': 'TS01247332=012f3506234413e6c5cb14e8c0d' '5bf890fdd02481614b01cd6cd30911c6733e3e' '6f79e72aa; XYZ=123'}) @@ -62,9 +61,9 @@ def test_cookies4(): """Test to make sure cookies are saved when user-specified cookie is added""" http_ua = http.HttpUA() - x = ruleset.Input(dest_addr='ieee.org', headers={'Host': 'ieee.org'}) + x = ruleset.Input(dest_addr='example.com', headers={'Host': 'example.com'}) http_ua.send_request(x) - x = ruleset.Input(dest_addr='ieee.org', headers={'Host': 'ieee.org', + x = ruleset.Input(dest_addr='example.com', headers={'Host': 'example.com', 'cookie': 'XYZ=123'}) http_ua.send_request(x) assert('XYZ' in http_ua.request_object.headers['cookie']) @@ -80,7 +79,6 @@ def test_raw1(): assert http_ua.response_object.status == 200 -@pytest.mark.skip(reason='Integration failure, @chaimsanders for more info') 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