Skip to content

Commit

Permalink
Update httpclient version to 2.6
Browse files Browse the repository at this point in the history
  • Loading branch information
summera committed Jun 10, 2015
1 parent d990e56 commit e648fba
Show file tree
Hide file tree
Showing 5 changed files with 52 additions and 21 deletions.
3 changes: 2 additions & 1 deletion Rakefile
Expand Up @@ -9,7 +9,8 @@ Hoe.plugin :gemspec
Hoe.spec 'rets' do
developer 'Estately, Inc. Open Source', 'opensource@estately.com'

extra_deps << [ "httpclient", "~> 2.4.0" ]
extra_deps << [ "httpclient", "~> 2.6.0" ]
extra_deps << [ "http-cookie", "~> 1.0.0" ]
extra_deps << [ "nokogiri", "~> 1.5" ]

extra_dev_deps << [ "mocha", "~> 0.11" ]
Expand Down
1 change: 1 addition & 0 deletions lib/rets/client.rb
@@ -1,3 +1,4 @@
require 'http-cookie'
require 'httpclient'
require 'logger'

Expand Down
7 changes: 5 additions & 2 deletions lib/rets/http_client.rb
Expand Up @@ -82,9 +82,12 @@ def rets_extra_headers
end

def http_cookie(name)
http.cookies.each do |c|
return c.value if c.name.downcase == name.downcase && c.match?(URI.parse(login_url))
@http.cookie_manager.cookies(login_url).each do |c|
if c.name.downcase == name.downcase
return c.value
end
end

nil
end
end
Expand Down
9 changes: 6 additions & 3 deletions rets.gemspec
Expand Up @@ -24,15 +24,17 @@ Gem::Specification.new do |s|
s.specification_version = 4

if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
s.add_runtime_dependency(%q<httpclient>, ["~> 2.4.0"])
s.add_runtime_dependency(%q<httpclient>, ["~> 2.6.0"])
s.add_runtime_dependency(%q<http-cookie>, ["~> 1.0.0"])
s.add_runtime_dependency(%q<nokogiri>, ["~> 1.5"])
s.add_development_dependency(%q<rdoc>, ["~> 4.0"])
s.add_development_dependency(%q<mocha>, ["~> 0.11"])
s.add_development_dependency(%q<vcr>, ["~> 2.2"])
s.add_development_dependency(%q<webmock>, ["~> 1.8"])
s.add_development_dependency(%q<hoe>, ["~> 3.13"])
else
s.add_dependency(%q<httpclient>, ["~> 2.4.0"])
s.add_dependency(%q<httpclient>, ["~> 2.6.0"])
s.add_dependency(%q<http-cookie>, ["~> 1.0.0"])
s.add_dependency(%q<nokogiri>, ["~> 1.5"])
s.add_dependency(%q<rdoc>, ["~> 4.0"])
s.add_dependency(%q<mocha>, ["~> 0.11"])
Expand All @@ -41,7 +43,8 @@ Gem::Specification.new do |s|
s.add_dependency(%q<hoe>, ["~> 3.13"])
end
else
s.add_dependency(%q<httpclient>, ["~> 2.4.0"])
s.add_dependency(%q<httpclient>, ["~> 2.6.0"])
s.add_dependency(%q<http-cookie>, ["~> 1.0.0"])
s.add_dependency(%q<nokogiri>, ["~> 1.5"])
s.add_dependency(%q<rdoc>, ["~> 4.0"])
s.add_dependency(%q<mocha>, ["~> 0.11"])
Expand Down
53 changes: 38 additions & 15 deletions test/test_http_client.rb
Expand Up @@ -5,28 +5,13 @@ def setup
@cm = WebAgent::CookieManager.new

@http = HTTPClient.new
@http.cookie_manager = @cm

@logger = Rets::Client::FakeLogger.new
@logger.stubs(:debug?).returns(false)

@http_client = Rets::HttpClient.new(@http, {}, @logger, "http://rets.rets.com/somestate/login.aspx")
end

def test_http_cookie_with_webagent_cookie
cookie1 = "RETS-Session-ID=879392834723043209; path=/; domain=rets.rets.com; expires=Wednesday, 31-Dec-2037 12:00:00 GMT"
@cm.parse(cookie1, URI.parse("http://www.rets.rets.com"))

cookie2 = "Foo=Bar; path=/; domain=rets.rets.com; expires=Wednesday, 31-Dec-2037 12:00:00 GMT"
@cm.parse(cookie2, URI.parse("http://www.rets.rets.com"))

assert_equal "879392834723043209", @http_client.http_cookie('RETS-Session-ID')
end

def test_http_cookie_without_webagent_cookie
assert_equal nil, @http_client.http_cookie('RETS-Session-ID')
end

def test_http_get_delegates_to_client
url = 'foo@example.com'
response = stub(:response)
Expand All @@ -46,4 +31,42 @@ def test_http_post_delegates_to_client

assert_equal @http_client.http_post(url, {}), response
end

class CookieManagement < MiniTest::Test
def setup
@cm = WebAgent::CookieManager.new
http = HTTPClient.new
http.cookie_manager = @cm
@client = Rets::HttpClient.new(http, {}, nil, "http://rets.rets.com/somestate/login.aspx")
end

def teardown
# Empty cookie jar
@cm.cookies = []
end

def test_http_cookie_with_one_cookie_from_one_domain
set_cookie = "RETS-Session-ID=879392834723043209; path=/; domain=rets.rets.com; expires=Wednesday, 31-Dec-2037 12:00:00 GMT"
@cm.parse(set_cookie, URI.parse("http://www.rets.rets.com"))
assert_equal "879392834723043209", @client.http_cookie('RETS-Session-ID')
end

def test_http_cookie_with_multiple_cookies_from_one_domain
# NOTE: Cookies are ordered alphabetically by name when retrieving
set_cookie_1 = "RETS-Session-ID=879392834723043209; path=/; domain=rets.rets.com; expires=Wednesday, 31-Dec-2037 12:00:00 GMT"
@cm.parse(set_cookie_1, URI.parse("http://www.rets.rets.com"))

set_cookie_2 = "Zoo=Bar; path=/; domain=rets.rets.com; expires=Wednesday, 31-Dec-2037 12:00:00 GMT"
@cm.parse(set_cookie_2, URI.parse("http://www.rets.rets.com"))

set_cookie_3 = "Foo=Bar; path=/; domain=rets.rets.com; expires=Wednesday, 31-Dec-2037 12:00:00 GMT"
@cm.parse(set_cookie_3, URI.parse("http://www.rets.rets.com"))

assert_equal "879392834723043209", @client.http_cookie('RETS-Session-ID')
end

def test_http_cookie_with_no_cookies_from_domain
assert_equal nil, @client.http_cookie('RETS-Session-ID')
end
end
end

0 comments on commit e648fba

Please sign in to comment.