From 9a5d6d6388a20f29c63f85a95d215b0b34ea9cfd Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sat, 19 Feb 2005 17:22:37 +0000 Subject: Added ActionView::Base.register_template_handler for easy integration of an alternative template language to ERb and Builder. See test/controller/custom_handler_test.rb for a usage example #656 [Jamis Buck] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@694 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- actionpack/test/controller/custom_handler_test.rb | 33 +++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 actionpack/test/controller/custom_handler_test.rb (limited to 'actionpack/test/controller/custom_handler_test.rb') diff --git a/actionpack/test/controller/custom_handler_test.rb b/actionpack/test/controller/custom_handler_test.rb new file mode 100644 index 0000000000..8939d19166 --- /dev/null +++ b/actionpack/test/controller/custom_handler_test.rb @@ -0,0 +1,33 @@ +require File.dirname(__FILE__) + '/../abstract_unit' + +class CustomHandler + def initialize( view ) + @view = view + end + + def render( template, local_assigns ) + [ template, + local_assigns, + @view ] + end +end + +class CustomHandlerTest < Test::Unit::TestCase + def setup + ActionView::Base.register_template_handler "foo", CustomHandler + @view = ActionView::Base.new + end + + def test_custom_render + result = @view.render_template( "foo", "hello <%= one %>", "one" => "two" ) + assert_equal( + [ "hello <%= one %>", { "one" => "two" }, @view ], + result ) + end + + def test_unhandled_extension + # uses the ERb handler by default if the extension isn't recognized + result = @view.render_template( "bar", "hello <%= one %>", "one" => "two" ) + assert_equal "hello two", result + end +end -- cgit v1.2.3