diff --git a/lib/common/browser.rb b/lib/common/browser.rb index 0251dabe..1d1ea9a4 100644 --- a/lib/common/browser.rb +++ b/lib/common/browser.rb @@ -180,8 +180,11 @@ class Browser end # Disable SSL-Certificate checks - params = params.merge(ssl_verifypeer: false) - params = params.merge(ssl_verifyhost: 0) + params.merge!(ssl_verifypeer: false) + params.merge!(ssl_verifyhost: 0) + + params.merge!(cookie_jar: CACHE_DIR + '/cookie-jar') + params.merge!(cookie_file: CACHE_DIR + '/cookie-jar') params end diff --git a/lib/common/hacks.rb b/lib/common/hacks.rb index c4717d90..98dcfbbb 100644 --- a/lib/common/hacks.rb +++ b/lib/common/hacks.rb @@ -47,6 +47,20 @@ module Typhoeus end end +module Ethon + class Easy + module Options + def cookie_jar=(value) + Curl.set_option(:cookiejar, value_for(value, :string), handle) + end + + def cookie_file=(value) + Curl.set_option(:cookiefile, value_for(value, :string), handle) + end + end + end +end + # Override for puts to enable logging def puts(o = '') # remove color for logging diff --git a/spec/lib/common/browser_spec.rb b/spec/lib/common/browser_spec.rb index 3715ec1f..562b22c4 100644 --- a/spec/lib/common/browser_spec.rb +++ b/spec/lib/common/browser_spec.rb @@ -260,8 +260,16 @@ describe Browser do end describe '#merge_request_params' do - let(:params) { {} } - let(:default_expectation) { { cache_ttl: 250, headers: { 'User-Agent' => 'SomeUA' }, ssl_verifypeer: false, ssl_verifyhost: 0 } } + let(:params) { {} } + let(:cookie_jar) { CACHE_DIR + '/cookie-jar' } + let(:default_expectation) { + { + cache_ttl: 250, + headers: { 'User-Agent' => 'SomeUA' }, + ssl_verifypeer: false, ssl_verifyhost: 0, + cookie_jar: cookie_jar, cookie_file: cookie_jar + } + } after :each do @browser.stub(user_agent: 'SomeUA')