spec/grendel/document_spec.rb in grendel-ruby-0.1.1 vs spec/grendel/document_spec.rb in grendel-ruby-0.1.2

- old
+ new

@@ -5,19 +5,59 @@ @client = Grendel::Client.new("http://grendel") @user_id = "alice" @password = "s3kret" @user = Grendel::User.new(@client, :id => @user_id, :password => @password) @base_uri = "#{@user_id}:#{@password}@grendel/users/#{@user_id}/documents" + @document = Grendel::Document.new(@user, :name => "document.txt") end describe "delete" do before do - stub_json_request(:delete, @base_uri + "/document.txt", "", :status => "204 No Content") - @document = Grendel::Document.new(@user, :name => "document.txt") + stub_json_request(:delete, @base_uri + "/document.txt", "", :status => [204, "No Content"]) end it "should send a properly-formatted request" do @document.delete request(:delete, @base_uri + "/document.txt").should have_been_made.once + end + end + + describe "accessing content type without it being set" do + before do + @document.content_type = nil + stub_request(:head, @base_uri + "/document.txt"). + to_return(:body => "", :status => 200, :headers => {"Content-Type" => "application/x-lolcat"}) + end + + it "loads content type" do + @document.content_type.should == "application/x-lolcat" + end + + it "causes a HEAD request for the document" do + @document.content_type + request(:head, @base_uri + "/document.txt").should have_been_made.once + end + end + + describe "accessing data without it being set" do + before do + @document.data = nil + stub_request(:get, @base_uri + "/document.txt"). + to_return(:body => "OMGLOL", :status => 200, :headers => {"Content-Type" => "application/x-lolcat"}) + end + + it "loads the data" do + @document.data.should == "OMGLOL" + end + + it "causes a GET request for the document" do + @document.data + request(:get, @base_uri + "/document.txt").should have_been_made.once + end + + it "populates the content type too" do + @document.content_type = nil + @document.data + @document.content_type.should == "application/x-lolcat" end end end