Sha256: b3e22d7561b6d0e2ef5595958ef59430210e0668285a49466cf1b1a5854a4da7

Contents?: true

Size: 1.16 KB

Versions: 10

Compression:

Stored size: 1.16 KB

Contents

require 'test/spec'
require 'time'

require 'rack/mock'
require 'rack/conditionalget'

context "Rack::ConditionalGet" do
  specify "should set a 304 status and truncate body when If-Modified-Since hits" do
    timestamp = Time.now.httpdate
    app = Rack::ConditionalGet.new(lambda { |env|
      [200, {'Last-Modified'=>timestamp}, 'TEST'] })

    response = Rack::MockRequest.new(app).
      get("/", 'HTTP_IF_MODIFIED_SINCE' => timestamp)

    response.status.should.be == 304
    response.body.should.be.empty
  end

  specify "should set a 304 status and truncate body when If-None-Match hits" do
    app = Rack::ConditionalGet.new(lambda { |env|
      [200, {'Etag'=>'1234'}, 'TEST'] })

    response = Rack::MockRequest.new(app).
      get("/", 'HTTP_IF_NONE_MATCH' => '1234')

    response.status.should.be == 304
    response.body.should.be.empty
  end

  specify "should not affect non-GET/HEAD requests" do
    app = Rack::ConditionalGet.new(lambda { |env|
      [200, {'Etag'=>'1234'}, 'TEST'] })

    response = Rack::MockRequest.new(app).
      post("/", 'HTTP_IF_NONE_MATCH' => '1234')

    response.status.should.be == 200
    response.body.should.be == 'TEST'
  end
end

Version data entries

10 entries across 10 versions & 5 rubygems

Version Path
kastner-rack-0.3.171 test/spec_rack_conditionalget.rb
kastner-rack-0.3.186 test/spec_rack_conditionalget.rb
p8-castronaut-0.6.1.1 vendor/rack/test/spec_rack_conditionalget.rb
relevance-castronaut-0.6.0 vendor/rack/test/spec_rack_conditionalget.rb
relevance-castronaut-0.6.1 vendor/rack/test/spec_rack_conditionalget.rb
relevance-castronaut-0.7.4 vendor/rack/test/spec_rack_conditionalget.rb
relevance-castronaut-0.7.5 vendor/rack/test/spec_rack_conditionalget.rb
nbudin-castronaut-0.7.5 vendor/rack/test/spec_rack_conditionalget.rb
rack-0.9.1 test/spec_rack_conditionalget.rb
rack-0.9.0 test/spec_rack_conditionalget.rb