test/url_info_test.rb in alexa-0.1.1 vs test/url_info_test.rb in alexa-0.2.0

- old
+ new

@@ -1,195 +1,188 @@ -require 'helper' +require "helper" class UrlInfoTest < Test::Unit::TestCase - context "Alexa::UrlInfo" do + def setup + @alexa = Alexa::UrlInfo.new( + :access_key_id => "12345678901234567890", + :secret_access_key => "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDF", + :host => "some.host" + ) + end + + should "Generate signature" do + @alexa.stubs(:timestamp).returns("2009-07-03T07:22:24.000Z") + assert_equal "I1mPdBy+flhhzqqUaamNq9gq190=", @alexa.send(:signature) + end + + should "Generate url" do + @alexa.stubs(:timestamp).returns("2009-07-03T07:22:24.000Z") + @alexa.response_group = "Rank,ContactInfo,AdultContent,Speed,Language,Keywords,OwnedDomains,LinksInCount,SiteData,RelatedLinks" + @alexa.host = "heroku.com" + expected_uri = "/?AWSAccessKeyId=12345678901234567890&Action=UrlInfo&ResponseGroup=Rank%2CContactInfo%2CAdultContent%2CSpeed%2CLanguage%2CKeywords%2COwnedDomains%2CLinksInCount%2CSiteData%2CRelatedLinks&Signature=I1mPdBy%2BflhhzqqUaamNq9gq190%3D&Timestamp=2009-07-03T07%3A22%3A24.000Z&Url=heroku.com&Version=2005-07-11" + assert_equal expected_uri, @alexa.send(:url).request_uri + assert_equal "awis.amazonaws.com", @alexa.send(:url).host + end + + context "should parse xml return by options LinksInCount,SiteData" do setup do - @alexa = Alexa::UrlInfo.new( - :access_key_id => "12345678901234567890", - :secret_access_key => "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDF", - :host => "some.host" - ) + @alexa.response_group = "Rank,LinksInCount,SiteData" + xml = fixture_file('polsl_small.xml') + @alexa.parse_xml(xml) end - should "Generate signature" do - signature = @alexa.send :generate_signature, Alexa.config.secret_access_key, "UrlInfo", '2009-07-03T07:22:24.000Z' - assert_equal "I1mPdBy+flhhzqqUaamNq9gq190=", signature + should "return rank" do + assert_equal 86020, @alexa.rank end - should "Generate url" do - url = @alexa.send(:generate_url, - "UrlInfo", - Alexa.config.access_key_id, - "I1mPdBy+flhhzqqUaamNq9gq190=", - '2009-07-03T07:22:24.000Z', - "Rank,ContactInfo,AdultContent,Speed,Language,Keywords,OwnedDomains,LinksInCount,SiteData,RelatedLinks", - "heroku.com" - ) - expected_uri = "/?AWSAccessKeyId=12345678901234567890&Action=UrlInfo&ResponseGroup=Rank%2CContactInfo%2CAdultContent%2CSpeed%2CLanguage%2CKeywords%2COwnedDomains%2CLinksInCount%2CSiteData%2CRelatedLinks&Signature=I1mPdBy%2BflhhzqqUaamNq9gq190%3D&Timestamp=2009-07-03T07%3A22%3A24.000Z&Url=heroku.com" - assert_equal expected_uri, url.request_uri - assert_equal "awis.amazonaws.com", url.host + should "return data url" do + assert_equal "polsl.pl/", @alexa.data_url end - context "should parse xml return by options LinksInCount,SiteData and" do - setup do - @alexa.response_group = "Rank,LinksInCount,SiteData" - xml = fixture_file('polsl_small.xml') - @alexa.parse_xml(xml) - end + should "return site title" do + assert_equal "Silesian University of Technology", @alexa.site_title + end - should "return rank" do - assert_equal 86020, @alexa.rank - end + should "return site description" do + assert_equal "About the university, studies, faculties and departments, photo gallery.", @alexa.site_description + end - should "return data url" do - assert_equal "polsl.pl/", @alexa.data_url + should "not crash" do + assert_nothing_raised do + @alexa.language_locale end + assert_nil @alexa.language_locale + end + end - should "return site title" do - assert_equal "Silesian University of Technology", @alexa.site_title - end + context "should parse xml with all options" do + setup do + xml = fixture_file('polsl.xml') + @alexa.parse_xml(xml) + end - should "return site description" do - assert_equal "About the university, studies, faculties and departments, photo gallery.", @alexa.site_description - end + should "return rank" do + assert_equal 86020, @alexa.rank + end - should "not crash" do - assert_nothing_raised do - @alexa.language_locale - end - assert_nil @alexa.language_locale - end + should "return data url" do + assert_equal "polsl.pl", @alexa.data_url end - context "should parse xml with all options and" do - setup do - xml = fixture_file('polsl.xml') - @alexa.parse_xml(xml) - end + should "return site title" do + assert_equal "Silesian University of Technology", @alexa.site_title + end - should "return rank" do - assert_equal 86020, @alexa.rank - end + should "return site description" do + assert_equal "About the university, studies, faculties and departments, photo gallery.", @alexa.site_description + end - should "return data url" do - assert_equal "polsl.pl", @alexa.data_url - end + should "return language locale" do + assert_equal "pl-PL", @alexa.language_locale + end - should "return site title" do - assert_equal "Silesian University of Technology", @alexa.site_title - end + should "return language encoding" do + assert_equal "iso-8859-2", @alexa.language_encoding + end - should "return site description" do - assert_equal "About the university, studies, faculties and departments, photo gallery.", @alexa.site_description - end + should "return links in count" do + assert_equal 281, @alexa.links_in_count + end - should "return language locale" do - assert_equal "pl-PL", @alexa.language_locale - end + should "return keywords" do + assert_equal ["Polska", "Regionalne", "Gliwice"], @alexa.keywords + end - should "return language encoding" do - assert_equal "iso-8859-2", @alexa.language_encoding - end + should "return related links" do + assert_equal 10, @alexa.related_links.size + end - should "return links in count" do - assert_equal 281, @alexa.links_in_count - end + should "return speed_median load time" do + assert_equal 266, @alexa.speed_median_load_time + end - should "return keywords" do - assert_equal ["Polska", "Regionalne", "Gliwice"], @alexa.keywords - end + should "return speed percentile" do + assert_equal 98, @alexa.speed_percentile + end - should "return related links" do - assert_equal 10, @alexa.related_links.size - end + should "return rank by country" do + assert_equal 3, @alexa.rank_by_country.size + end - should "return speed_median load time" do - assert_equal 266, @alexa.speed_median_load_time - end + should "return rank by city" do + assert_equal 68, @alexa.rank_by_city.size + end - should "return speed percentile" do - assert_equal 98, @alexa.speed_percentile - end + should "return usage statistics" do + assert_equal 4, @alexa.usage_statistics.size + end + end - should "return rank by country" do - assert_equal 3, @alexa.rank_by_country.size - end + context "should not crash when parsing empty xml response" do + setup do + xml = fixture_file('empty.xml') + @alexa.parse_xml(xml) + end - should "return rank by city" do - assert_equal 68, @alexa.rank_by_city.size - end + should "return nil from rank" do + assert_nil @alexa.rank + end - should "return usage statistics" do - assert_equal 4, @alexa.usage_statistics.size - end + should "return nil from data_url" do + assert_equal "404", @alexa.data_url end - context "should not crash when parsing empty xml response and" do - setup do - xml = fixture_file('empty.xml') - @alexa.parse_xml(xml) - end + should "return nil from site_title" do + assert_equal "404", @alexa.site_title + end - should "return nil from rank" do - assert_nil @alexa.rank - end + should "return nil from site_description" do + assert_nil @alexa.site_description + end - should "return nil from data_url" do - assert_equal "404", @alexa.data_url - end + should "return nil from language_locale" do + assert_nil @alexa.language_locale + end - should "return nil from site_title" do - assert_equal "404", @alexa.site_title - end + should "return nil from language_encoding" do + assert_nil @alexa.language_encoding + end - should "return nil from site_description" do - assert_nil @alexa.site_description - end + should "return nil from links_in_count" do + assert_nil @alexa.links_in_count + end - should "return nil from language_locale" do - assert_nil @alexa.language_locale - end + should "return nil from keywords" do + assert_nil @alexa.keywords + end - should "return nil from language_encoding" do - assert_nil @alexa.language_encoding - end + should "return nil from related_links" do + assert_nil @alexa.related_links + end - should "return nil from links_in_count" do - assert_nil @alexa.links_in_count - end + should "return nil from speed_median_load_time" do + assert_nil @alexa.speed_median_load_time + end - should "return nil from keywords" do - assert_nil @alexa.keywords - end + should "return nil from speed_percentile" do + assert_nil @alexa.speed_percentile + end - should "return nil from related_links" do - assert_nil @alexa.related_links - end + should "return nil from rank_by_country" do + assert_nil @alexa.rank_by_country + end - should "return nil from speed_median_load_time" do - assert_nil @alexa.speed_median_load_time - end + should "return nil from rank_by_city" do + assert_nil @alexa.rank_by_city + end - should "return nil from speed_percentile" do - assert_nil @alexa.speed_percentile - end - - should "return nil from rank_by_country" do - assert_nil @alexa.rank_by_country - end - - should "return nil from rank_by_city" do - assert_nil @alexa.rank_by_city - end - - should "return nil from usage_statistics" do - assert_nil @alexa.usage_statistics - end + should "return nil from usage_statistics" do + assert_nil @alexa.usage_statistics end + end - should "not raise error when response is OK" do - assert_nothing_raised do - @alexa.send :handle_response, Net::HTTPOK.new("1.1", "200", "OK") - end + should "not raise error when response is OK" do + assert_nothing_raised do + @alexa.send :handle_response, Net::HTTPOK.new("1.1", "200", "OK") end end end