aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test/dispatch/request/json_params_parsing_test.rb
diff options
context:
space:
mode:
authorYehuda Katz <wycats@gmail.com>2009-01-30 11:30:27 -0800
committerYehuda Katz <wycats@gmail.com>2009-01-30 11:30:27 -0800
commit3030bc90c95e335d726f06fd7a61ed96055e9109 (patch)
tree5b079250b368f0e8af6d2f72a4278fdab3382b26 /actionpack/test/dispatch/request/json_params_parsing_test.rb
parentae42163bf5497849e4fcbb736505910c17640459 (diff)
parent85750f22c90c914a429116fb908990c5a2c68379 (diff)
downloadrails-3030bc90c95e335d726f06fd7a61ed96055e9109.tar.gz
rails-3030bc90c95e335d726f06fd7a61ed96055e9109.tar.bz2
rails-3030bc90c95e335d726f06fd7a61ed96055e9109.zip
Merge commit 'rails/3-0-unstable'
Conflicts: actionpack/lib/action_controller/base.rb actionpack/lib/action_dispatch/http/mime_type.rb actionpack/lib/action_dispatch/http/request.rb actionpack/lib/action_view/base.rb actionpack/lib/action_view/paths.rb actionpack/test/controller/session/cookie_store_test.rb actionpack/test/dispatch/rack_test.rb actionpack/test/dispatch/request_test.rb
Diffstat (limited to 'actionpack/test/dispatch/request/json_params_parsing_test.rb')
-rw-r--r--actionpack/test/dispatch/request/json_params_parsing_test.rb45
1 files changed, 45 insertions, 0 deletions
diff --git a/actionpack/test/dispatch/request/json_params_parsing_test.rb b/actionpack/test/dispatch/request/json_params_parsing_test.rb
new file mode 100644
index 0000000000..a3dde72c4e
--- /dev/null
+++ b/actionpack/test/dispatch/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