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