Sha256: 0224b0602879004553563cc0c0d664d39a1f85c1086822ce85033755d74dedb0

Contents?: true

Size: 1.43 KB

Versions: 11

Compression:

Stored size: 1.43 KB

Contents

require File.dirname(__FILE__) + '/helper'
require 'stringio'

class RequestTest < Test::Unit::TestCase
  it 'responds to #user_agent' do
    request = Sinatra::Request.new({'HTTP_USER_AGENT' => 'Test'})
    assert request.respond_to?(:user_agent)
    assert_equal 'Test', request.user_agent
  end

  it 'parses POST params when Content-Type is form-dataish' do
    request = Sinatra::Request.new(
      'REQUEST_METHOD' => 'PUT',
      'CONTENT_TYPE' => 'application/x-www-form-urlencoded',
      'rack.input' => StringIO.new('foo=bar')
    )
    assert_equal 'bar', request.params['foo']
  end

  it 'is secure when the url scheme is https' do
    request = Sinatra::Request.new('rack.url_scheme' => 'https')
    assert request.secure?
  end

  it 'is not secure when the url scheme is http' do
    request = Sinatra::Request.new('rack.url_scheme' => 'http')
    assert !request.secure?
  end

  it 'respects X-Forwarded-Proto header for proxied SSL' do
    request = Sinatra::Request.new('HTTP_X_FORWARDED_PROTO' => 'https')
    assert request.secure?
  end

  it 'is possible to marshal params' do
    request = Sinatra::Request.new(
      'REQUEST_METHOD' => 'PUT',
      'CONTENT_TYPE' => 'application/x-www-form-urlencoded',
      'rack.input' => StringIO.new('foo=bar')
    )
    params = Sinatra::Base.new!.send(:indifferent_hash).replace(request.params)
    dumped = Marshal.dump(request.params)
    assert_equal 'bar', Marshal.load(dumped)['foo']
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
sinatra-1.2.9 test/request_test.rb
sinatra-1.2.8 test/request_test.rb
sinatra-1.2.7 test/request_test.rb
sinatra-1.2.6 test/request_test.rb
sinatra-1.3.0.d test/request_test.rb
sinatra-1.3.0.c test/request_test.rb
sinatra-1.2.3 test/request_test.rb
sinatra-1.2.2 test/request_test.rb
sinatra-1.3.0.b test/request_test.rb
sinatra-1.3.0.a test/request_test.rb
sinatra-1.2.1 test/request_test.rb