mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
dfed3d309e
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@468 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
31 lines
829 B
Ruby
31 lines
829 B
Ruby
require 'test/unit'
|
|
require 'cgi'
|
|
require 'stringio'
|
|
require File.dirname(__FILE__) + '/../../lib/action_controller/cgi_ext/raw_post_data_fix'
|
|
|
|
class RawPostDataTest < Test::Unit::TestCase
|
|
def setup
|
|
ENV['REQUEST_METHOD'] = 'POST'
|
|
ENV['CONTENT_TYPE'] = ''
|
|
ENV['CONTENT_LENGTH'] = '0'
|
|
end
|
|
|
|
def test_raw_post_data
|
|
process_raw "action=create_customer&full_name=David%20Heinemeier%20Hansson&customerId=1"
|
|
end
|
|
|
|
private
|
|
def process_raw(query_string)
|
|
old_stdin = $stdin
|
|
begin
|
|
$stdin = StringIO.new(query_string.dup)
|
|
ENV['CONTENT_LENGTH'] = $stdin.size.to_s
|
|
CGI.new
|
|
assert_not_nil ENV['RAW_POST_DATA']
|
|
assert ENV['RAW_POST_DATA'].frozen?
|
|
assert_equal query_string, ENV['RAW_POST_DATA']
|
|
ensure
|
|
$stdin = old_stdin
|
|
end
|
|
end
|
|
end
|