diff options
author | Colin Law <colin@clanlaw.org.uk> | 2009-01-11 12:13:50 +0000 |
---|---|---|
committer | Colin Law <colin@clanlaw.org.uk> | 2009-01-11 12:13:50 +0000 |
commit | 55901d7d86f5608c4a07386ca6378121eb8127cb (patch) | |
tree | 8ede6a21529dfac8c818a3fe1584fb46f00c03ff /actionpack/test/controller/request/json_params_parsing_test.rb | |
parent | 3e60ea6c231810e2b850492a86874b4800dfbf27 (diff) | |
parent | cf4b24407ada79c133fbae1ec7db692882225956 (diff) | |
download | rails-55901d7d86f5608c4a07386ca6378121eb8127cb.tar.gz rails-55901d7d86f5608c4a07386ca6378121eb8127cb.tar.bz2 rails-55901d7d86f5608c4a07386ca6378121eb8127cb.zip |
Merge branch 'master' of git@github.com:lifo/docrails
Diffstat (limited to 'actionpack/test/controller/request/json_params_parsing_test.rb')
-rw-r--r-- | actionpack/test/controller/request/json_params_parsing_test.rb | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/actionpack/test/controller/request/json_params_parsing_test.rb b/actionpack/test/controller/request/json_params_parsing_test.rb new file mode 100644 index 0000000000..a3dde72c4e --- /dev/null +++ b/actionpack/test/controller/request/json_params_parsing_test.rb @@ -0,0 +1,45 @@ +require 'abstract_unit' + +class JsonParamsParsingTest < ActionController::IntegrationTest + class TestController < ActionController::Base + class << self + attr_accessor :last_request_parameters + end + + def parse + self.class.last_request_parameters = request.request_parameters + head :ok + end + end + + def teardown + TestController.last_request_parameters = nil + end + + test "parses json params for application json" do + assert_parses( + {"person" => {"name" => "David"}}, + "{\"person\": {\"name\": \"David\"}}", { 'CONTENT_TYPE' => 'application/json' } + ) + end + + test "parses json params for application jsonrequest" do + assert_parses( + {"person" => {"name" => "David"}}, + "{\"person\": {\"name\": \"David\"}}", { 'CONTENT_TYPE' => 'application/jsonrequest' } + ) + end + + private + def assert_parses(expected, actual, headers = {}) + with_routing do |set| + set.draw do |map| + map.connect ':action', :controller => "json_params_parsing_test/test" + end + + post "/parse", actual, headers + assert_response :ok + assert_equal(expected, TestController.last_request_parameters) + end + end +end |