aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test
diff options
context:
space:
mode:
authorRafael França <rafaelmfranca@gmail.com>2015-12-31 20:17:00 -0200
committerRafael França <rafaelmfranca@gmail.com>2015-12-31 20:17:00 -0200
commit8167fa4562841f4ae7ce307ce0c91a448a695ad9 (patch)
tree6e1a4db616e1b7c322075dac1b610525c207eef7 /actionpack/test
parent15299f3a5c0e068b4945bdb8199755100dc91e13 (diff)
parent1c361ea356aba4936347c83213b2adf50e2f4af2 (diff)
downloadrails-8167fa4562841f4ae7ce307ce0c91a448a695ad9.tar.gz
rails-8167fa4562841f4ae7ce307ce0c91a448a695ad9.tar.bz2
rails-8167fa4562841f4ae7ce307ce0c91a448a695ad9.zip
Merge pull request #22519 from bf4/test_use_renderers
Add tests for ActionController::Renderers::use_renderers
Diffstat (limited to 'actionpack/test')
-rw-r--r--actionpack/test/abstract_unit.rb6
-rw-r--r--actionpack/test/controller/metal/renderers_test.rb42
2 files changed, 48 insertions, 0 deletions
diff --git a/actionpack/test/abstract_unit.rb b/actionpack/test/abstract_unit.rb
index ef7aab72c6..604ba267d6 100644
--- a/actionpack/test/abstract_unit.rb
+++ b/actionpack/test/abstract_unit.rb
@@ -371,6 +371,12 @@ module RoutingTestHelpers
end
end
+class MetalRenderingController < ActionController::Metal
+ include AbstractController::Rendering
+ include ActionController::Rendering
+ include ActionController::Renderers
+end
+
class ResourcesController < ActionController::Base
def index() head :ok end
alias_method :show, :index
diff --git a/actionpack/test/controller/metal/renderers_test.rb b/actionpack/test/controller/metal/renderers_test.rb
new file mode 100644
index 0000000000..007866a559
--- /dev/null
+++ b/actionpack/test/controller/metal/renderers_test.rb
@@ -0,0 +1,42 @@
+require 'abstract_unit'
+require 'active_support/core_ext/hash/conversions'
+
+class MetalRenderingJsonController < MetalRenderingController
+ class Model
+ def to_json(options = {})
+ { a: 'b' }.to_json(options)
+ end
+
+ def to_xml(options = {})
+ { a: 'b' }.to_xml(options)
+ end
+ end
+
+ use_renderers :json
+
+ def one
+ render json: Model.new
+ end
+
+ def two
+ render xml: Model.new
+ end
+end
+
+class RenderersMetalTest < ActionController::TestCase
+ tests MetalRenderingJsonController
+
+ def test_render_json
+ get :one
+ assert_response :success
+ assert_equal({ a: 'b' }.to_json, @response.body)
+ assert_equal 'application/json', @response.content_type
+ end
+
+ def test_render_xml
+ get :two
+ assert_response :success
+ assert_equal(" ", @response.body)
+ assert_equal 'text/plain', @response.content_type
+ end
+end