From c71611e6b7ce5ad85cbbb844fd86718023c6e03a Mon Sep 17 00:00:00 2001 From: Ilya Kreymer Date: Mon, 2 Apr 2018 17:58:23 -0700 Subject: [PATCH] cookie rewriter: don't rewrite cookies if not rewriting urls, eg. banner only or proxy mode tests: update content rewriter tests to test for cookie rewriting --- pywb/rewrite/header_rewriter.py | 2 +- pywb/rewrite/test/test_content_rewriter.py | 24 ++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/pywb/rewrite/header_rewriter.py b/pywb/rewrite/header_rewriter.py index 410c1659..c2b1060c 100644 --- a/pywb/rewrite/header_rewriter.py +++ b/pywb/rewrite/header_rewriter.py @@ -138,7 +138,7 @@ class DefaultHeaderRewriter(object): return (self.header_prefix + name, value) elif rule == 'cookie': - if self.rwinfo.cookie_rewriter: + if self.rwinfo.cookie_rewriter and self.rwinfo.is_url_rw(): return self.rwinfo.cookie_rewriter.rewrite(value) else: return (name, value) diff --git a/pywb/rewrite/test/test_content_rewriter.py b/pywb/rewrite/test/test_content_rewriter.py index 19b4dbf7..4e012fa3 100644 --- a/pywb/rewrite/test/test_content_rewriter.py +++ b/pywb/rewrite/test/test_content_rewriter.py @@ -143,6 +143,30 @@ class TestContentRewriter(object): exp = 'function() { WB_wombat_location.href = "http://example.com/"; }' assert b''.join(gen).decode('utf-8') == exp + def test_banner_only_no_cookie_rewrite(self): + headers = {'Set-Cookie': 'foo=bar; Expires=Wed, 13 Jan 2021 22:23:01 GMT; Path=/', + 'Content-Type': 'text/javascript'} + + content = 'function() { location.href = "http://example.com/"; }' + + headers, gen, is_rw = self.rewrite_record(headers, content, ts='201701bn_') + + assert ('Content-Type', 'text/javascript') in headers.headers + assert ('Set-Cookie', 'foo=bar; Expires=Wed, 13 Jan 2021 22:23:01 GMT; Path=/') in headers.headers + + exp = 'function() { location.href = "http://example.com/"; }' + assert b''.join(gen).decode('utf-8') == exp + + def test_rewrite_cookies_only_binary_no_content_type(self): + headers = {'Set-Cookie': 'foo=bar; Expires=Wed, 13 Jan 2021 22:23:01 GMT; Path=/'} + content = '\x11\x12\x13\x14' + headers, gen, is_rw = self.rewrite_record(headers, content, ts='201701mp_') + + assert [('Set-Cookie', 'foo=bar; Path=/prefix/201701mp_/http://example.com/')] == headers.headers + #assert ('Content-Type', 'application/octet-stream') not in headers.headers + + assert is_rw == False + def test_binary_no_content_type(self): headers = {} content = '\x11\x12\x13\x14'