test/url_info_test.rb in alexa-0.2.2 vs test/url_info_test.rb in alexa-0.3.0
- old
+ new
@@ -21,159 +21,126 @@
expected_uri = "/?AWSAccessKeyId=12345678901234567890&Action=UrlInfo&ResponseGroup=Rank%2CContactInfo%2CAdultContent%2CSpeed%2CLanguage%2CKeywords%2COwnedDomains%2CLinksInCount%2CSiteData%2CRelatedLinks&SignatureMethod=HmacSHA1&SignatureVersion=2&Timestamp=2009-07-03T07%3A22%3A24.000Z&Url=heroku.com&Version=2005-07-11&Signature=H9VtDwXGXT5O8NodLOlsc2wIfv8%3D"
assert_equal expected_uri, @alexa.send(:url).request_uri
assert_equal "awis.amazonaws.com", @alexa.send(:url).host
end
- describe "parsing xml returned by options LinksInCount,SiteData" do
+ describe "parsing xml returned by options Rank,LinksInCount,SiteData" do
before do
+ FakeWeb.register_uri(:get, %r{http://awis.amazonaws.com}, :response => fixture("custom-response-group.txt"))
@alexa.response_group = "Rank,LinksInCount,SiteData"
- xml = fixture_file('polsl_small.xml')
- @alexa.parse_xml(xml)
+ @alexa.connect
+ @alexa.parse_xml(@alexa.xml_response)
end
it "should return rank" do
- assert_equal 86020, @alexa.rank
+ assert_equal 493, @alexa.rank
end
it "should return data url" do
- assert_equal "polsl.pl/", @alexa.data_url
+ assert_equal "github.com/", @alexa.data_url
end
it "should return site title" do
- assert_equal "Silesian University of Technology", @alexa.site_title
+ assert_equal "GitHub", @alexa.site_title
end
it "should return site description" do
- assert_equal "About the university, studies, faculties and departments, photo gallery.", @alexa.site_description
+ expected = "Online project hosting using Git. Includes source-code browser, in-line editing, wikis, and ticketing. Free for public open-source code. Commercial closed source hosting is also available."
+ assert_equal expected, @alexa.site_description
end
- it "should not crash" do
+ it "should not have other attributes" do
assert_nil @alexa.language_locale
end
end
- describe "parsing xml with all options" do
+ describe "with github.com full response group" do
before do
- xml = fixture_file('polsl.xml')
- @alexa.parse_xml(xml)
+ FakeWeb.register_uri(:get, %r{http://awis.amazonaws.com}, :response => fixture("github_full.txt"))
+ @alexa.connect
+ @alexa.parse_xml(@alexa.xml_response)
end
it "should return rank" do
- assert_equal 86020, @alexa.rank
+ assert_equal 551, @alexa.rank
end
it "should return data url" do
- assert_equal "polsl.pl", @alexa.data_url
+ assert_equal "github.com", @alexa.data_url
end
it "should return site title" do
- assert_equal "Silesian University of Technology", @alexa.site_title
+ assert_equal "GitHub", @alexa.site_title
end
it "should return site description" do
- assert_equal "About the university, studies, faculties and departments, photo gallery.", @alexa.site_description
+ expected = "Online project hosting using Git. Includes source-code browser, in-line editing, wikis, and ticketing. Free for public open-source code. Commercial closed source hosting is also available."
+ assert_equal expected, @alexa.site_description
end
it "should return language locale" do
- assert_equal "pl-PL", @alexa.language_locale
+ assert_nil @alexa.language_locale
end
it "should return language encoding" do
- assert_equal "iso-8859-2", @alexa.language_encoding
+ assert_nil @alexa.language_encoding
end
it "should return links in count" do
- assert_equal 281, @alexa.links_in_count
+ assert_equal 43819, @alexa.links_in_count
end
it "should return keywords" do
- assert_equal ["Polska", "Regionalne", "Gliwice"], @alexa.keywords
+ assert_nil @alexa.keywords
end
it "should return related links" do
assert_equal 10, @alexa.related_links.size
end
it "should return speed_median load time" do
- assert_equal 266, @alexa.speed_median_load_time
+ assert_equal 1031, @alexa.speed_median_load_time
end
it "should return speed percentile" do
- assert_equal 98, @alexa.speed_percentile
+ assert_equal 68, @alexa.speed_percentile
end
it "should return rank by country" do
- assert_equal 3, @alexa.rank_by_country.size
+ assert_equal 19, @alexa.rank_by_country.size
end
it "should return rank by city" do
- assert_equal 68, @alexa.rank_by_city.size
+ assert_equal 163, @alexa.rank_by_city.size
end
it "should return usage statistics" do
assert_equal 4, @alexa.usage_statistics.size
end
end
- describe "parsing empty xml response" do
- before do
- xml = fixture_file('empty.xml')
- @alexa.parse_xml(xml)
+ describe "with github.com rank response group" do
+ it "should successfuly connect" do
+ FakeWeb.register_uri(:get, %r{http://awis.amazonaws.com}, :response => fixture("github_rank.txt"))
+ @alexa.response_group = "Rank"
+ @alexa.connect
+ @alexa.parse_xml(@alexa.xml_response)
+ assert_equal 551, @alexa.rank
end
+ end
- it "should return nil from rank" do
- assert_nil @alexa.rank
+ describe "parsing xml with failure" do
+ it "should raise error when unathorized" do
+ FakeWeb.register_uri(:get, %r{http://awis.amazonaws.com}, :response => fixture("unathorized.txt"))
+ assert_raises StandardError do
+ @alexa.connect
+ end
end
- it "should return nil from data_url" do
- assert_equal "404", @alexa.data_url
- end
-
- it "should return nil from site_title" do
- assert_equal "404", @alexa.site_title
- end
-
- it "should return nil from site_description" do
- assert_nil @alexa.site_description
- end
-
- it "should return nil from language_locale" do
- assert_nil @alexa.language_locale
- end
-
- it "should return nil from language_encoding" do
- assert_nil @alexa.language_encoding
- end
-
- it "should return nil from links_in_count" do
- assert_nil @alexa.links_in_count
- end
-
- it "should return nil from keywords" do
- assert_nil @alexa.keywords
- end
-
- it "should return nil from related_links" do
- assert_nil @alexa.related_links
- end
-
- it "should return nil from speed_median_load_time" do
- assert_nil @alexa.speed_median_load_time
- end
-
- it "should return nil from speed_percentile" do
- assert_nil @alexa.speed_percentile
- end
-
- it "should return nil from rank_by_country" do
- assert_nil @alexa.rank_by_country
- end
-
- it "should return nil from rank_by_city" do
- assert_nil @alexa.rank_by_city
- end
-
- it "should return nil from usage_statistics" do
- assert_nil @alexa.usage_statistics
+ it "should raise error when forbidden" do
+ FakeWeb.register_uri(:get, %r{http://awis.amazonaws.com}, :response => fixture("forbidden.txt"))
+ assert_raises StandardError do
+ @alexa.connect
+ end
end
end
end