aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test/controller/request/json_params_parsing_test.rb
diff options
context:
space:
mode:
authorColin Law <colin@clanlaw.org.uk>2009-01-11 12:13:50 +0000
committerColin Law <colin@clanlaw.org.uk>2009-01-11 12:13:50 +0000
commit55901d7d86f5608c4a07386ca6378121eb8127cb (patch)
tree8ede6a21529dfac8c818a3fe1584fb46f00c03ff /actionpack/test/controller/request/json_params_parsing_test.rb
parent3e60ea6c231810e2b850492a86874b4800dfbf27 (diff)
parentcf4b24407ada79c133fbae1ec7db692882225956 (diff)
downloadrails-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.rb45
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