diff options
author | Santiago Pastorino <santiago@wyeworks.com> | 2012-08-07 08:26:59 -0700 |
---|---|---|
committer | Santiago Pastorino <santiago@wyeworks.com> | 2012-08-07 08:26:59 -0700 |
commit | 46b8bceedd3e47169c50a04c93161424909c75fb (patch) | |
tree | ec6c25ffedc13c79ea36551dc56d6ce54c17e1be /actionpack/test | |
parent | 2f58795e783150f2e1b1f6c64e305703f0061129 (diff) | |
parent | e82ffeaa0a7a8fe8ba94dc0736c15d05b5746abc (diff) | |
download | rails-46b8bceedd3e47169c50a04c93161424909c75fb.tar.gz rails-46b8bceedd3e47169c50a04c93161424909c75fb.tar.bz2 rails-46b8bceedd3e47169c50a04c93161424909c75fb.zip |
Merge pull request #7033 from kron4eg/master
Restore "%" ERb/Erubis Trim Mode
Diffstat (limited to 'actionpack/test')
-rw-r--r-- | actionpack/test/template/erb/handlers_test.rb | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/actionpack/test/template/erb/handlers_test.rb b/actionpack/test/template/erb/handlers_test.rb new file mode 100644 index 0000000000..7cd9c7fbcb --- /dev/null +++ b/actionpack/test/template/erb/handlers_test.rb @@ -0,0 +1,54 @@ +require "abstract_unit" + +class HandlersTest < ActiveSupport::TestCase + HANDLER = ActionView::Template::Handlers::ERB + Template = Struct.new(:source) + + extend ActiveSupport::Testing::Declarative + + test "content is not trimmed without a trim mode" do + with_erb_trim_mode nil do + assert_equal(" \ntest", render(" <% 'IGNORED' %> \ntest")) + end + end + + test "content around tags is trimmed if the trim mode includes a dash" do + with_erb_trim_mode '-' do + assert_equal("test", render(" <% 'IGNORED' %> \ntest")) + end + end + + test "percent lines are normal content without a trim mode" do + with_erb_trim_mode nil do + assert_equal( "% if false\noops\n% end\n", + render("% if false\noops\n% end\n") ) + end + end + + test "percent lines count as ruby if trim mode includes a percent" do + with_erb_trim_mode "%" do + assert_equal("", render("% if false\noops\n% end\n")) + end + end + + test "both trim modes can be used at the same time" do + with_erb_trim_mode "%-" do + assert_equal( "test", render( "% if false\noops\n% end\n" + + " <% 'IGNORED' %> \ntest" ) ) + end + end + + private + + def with_erb_trim_mode(mode) + @old_erb_trim_mode = HANDLER.erb_trim_mode + HANDLER.erb_trim_mode = mode + yield + ensure + HANDLER.erb_trim_mode = @old_erb_trim_mode + end + + def render(template) + eval("output_buffer = nil; " + HANDLER.call(Template.new(template))) + end +end |