Sha256: 8f18588cac1956baaa82104bfe0a57e968186b3bc2ffe688754133d43ca1b4cd

Contents?: true

Size: 1.64 KB

Versions: 7

Compression:

Stored size: 1.64 KB

Contents

describe 'redirect', :shared => true do
  it 'should be followed by default on GET' do
    resp = @resource.get
    resp.should be_instance_of(Resourceful::Response)
    resp.code.should == 200
    resp.header['Content-Type'].should == ['text/plain']
  end

  %w{PUT POST}.each do |method|
    it "should not be followed by default on #{method}" do
      lambda {
        @resource.send(method.downcase.intern, nil, :content_type => 'text/plain' )
      }.should raise_error(Resourceful::UnsuccessfulHttpRequestError)
    end

    it "should redirect on #{method.to_s.upcase} if the redirection callback returns true" do
      @resource.on_redirect { true }
      resp = @resource.send(method.downcase.intern, nil, :content_type => 'text/plain' )
      resp.code.should == 200
    end

    it "should not redirect on #{method.to_s.upcase} if the redirection callback returns false" do
      @resource.on_redirect { false }
      lambda {
        @resource.send(method.downcase.intern, nil, :content_type => 'text/plain' )
      }.should raise_error(Resourceful::UnsuccessfulHttpRequestError)
    end
  end

  it "should not be followed by default on DELETE" do
    lambda {
      @resource.delete
    }.should raise_error(Resourceful::UnsuccessfulHttpRequestError)
  end

  it "should redirect on DELETE if vthe redirection callback returns true" do
    @resource.on_redirect { true }
    resp = @resource.delete
    resp.code.should == 200
  end

  it "should not redirect on DELETE if the redirection callback returns false" do
    @resource.on_redirect { false }
    lambda {
      @resource.delete
    }.should raise_error(Resourceful::UnsuccessfulHttpRequestError)
  end
end

Version data entries

7 entries across 7 versions & 2 rubygems

Version Path
paul-resourceful-0.2.3 spec/acceptance_shared_specs.rb
paul-resourceful-0.3.0 spec/acceptance_shared_specs.rb
paul-resourceful-0.3.1 spec/acceptance_shared_specs.rb
resourceful-0.2.1 spec/acceptance_shared_specs.rb
resourceful-0.2 spec/acceptance_shared_specs.rb
resourceful-0.3.0 spec/acceptance_shared_specs.rb
resourceful-0.3.1 spec/acceptance_shared_specs.rb