spec/page_spec.rb in spk-anemone-0.2.4 vs spec/page_spec.rb in spk-anemone-0.3.0
- old
+ new
@@ -1,52 +1,66 @@
require File.dirname(__FILE__) + '/spec_helper'
module Anemone
describe Page do
- before(:all) do
+ before(:each) do
+ FakeWeb.clean_registry
@http = Anemone::HTTP.new
+ @page = @http.fetch_page(FakePage.new('home').url)
end
- before(:each) do
- @page = @http.fetch_page(FakePage.new('home').url)
+ it "should indicate whether it successfully fetched via HTTP" do
+ @page.should respond_to(:fetched?)
+ @page.fetched?.should == true
+
+ fail_page = @http.fetch_page(SPEC_DOMAIN + 'fail')
+ fail_page.fetched?.should == false
end
-
+
+ it "should record any error that occurs during fetch_page" do
+ @page.should respond_to(:error)
+ @page.error.should be_nil
+
+ fail_page = @http.fetch_page(SPEC_DOMAIN + 'fail')
+ fail_page.error.should_not be_nil
+ end
+
it "should store the response headers when fetching a page" do
@page.headers.should_not be_nil
@page.headers.should have_key('content-type')
end
-
+
it "should have an OpenStruct attribute for the developer to store data in" do
@page.data.should_not be_nil
@page.data.should be_an_instance_of(OpenStruct)
-
+
@page.data.test = 'test'
@page.data.test.should == 'test'
end
-
+
it "should have a Nokogori::HTML::Document attribute for the page body" do
@page.doc.should_not be_nil
@page.doc.should be_an_instance_of(Nokogiri::HTML::Document)
end
-
+
it "should indicate whether it was fetched after an HTTP redirect" do
@page.should respond_to(:redirect?)
-
+
@page.redirect?.should == false
-
- @http.fetch_page(FakePage.new('redir', :redirect => 'home').url).redirect?.should == true
+
+ @http.fetch_pages(FakePage.new('redir', :redirect => 'home').url).first.redirect?.should == true
end
-
+
it "should have a method to tell if a URI is in the same domain as the page" do
@page.should respond_to(:in_domain?)
-
+
@page.in_domain?(URI(FakePage.new('test').url)).should == true
@page.in_domain?(URI('http://www.other.com/')).should == false
end
it "should include the response time for the HTTP request" do
@page.should respond_to(:response_time)
end
-
+
end
end