Permalink
Browse files

Tests and fix for extension extraction. References #10130 [tarmo]

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8187 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
  • Loading branch information...
1 parent 9afbf87 commit 155eb47cf3a815306c5c9b6fcd254b838fc26b5c @NZKoz NZKoz committed Nov 22, 2007
Showing with 27 additions and 2 deletions.
  1. +1 −2 actionpack/lib/action_view/base.rb
  2. +26 −0 actionpack/test/action_view_test.rb
View
3 actionpack/lib/action_view/base.rb
@@ -516,8 +516,7 @@ def find_template_extension_from_handler(template_path, formatted = nil)
# Determine the template extension from the <tt>@first_render</tt> filename
def find_template_extension_from_first_render
- extension = @first_render.to_s.sub /^\w+\.?/, ''
- extension.blank? ? nil : extension
+ File.basename(@first_render.to_s)[/^[^.]+\.(.+)$/, 1]
end
# This method reads a template file.
View
26 actionpack/test/action_view_test.rb
@@ -0,0 +1,26 @@
+require File.dirname(__FILE__) + '/abstract_unit'
+require 'test/unit'
+
+class ActionViewTests < Test::Unit::TestCase
+ def test_find_template_extension_from_first_render
+ base = ActionView::Base.new
+
+ assert_nil base.send(:find_template_extension_from_first_render)
+
+ {
+ nil => nil,
+ '' => nil,
+ 'foo' => nil,
+ '/foo' => nil,
+ 'foo.rb' => 'rb',
+ 'foo.bar.rb' => 'bar.rb',
+ 'baz/foo.rb' => 'rb',
+ 'baz/foo.bar.rb' => 'bar.rb',
+ 'baz/foo.o/foo.rb' => 'rb',
+ 'baz/foo.o/foo.bar.rb' => 'bar.rb',
+ }.each do |input,expectation|
+ base.instance_variable_set('@first_render', input)
+ assert_equal expectation, base.send(:find_template_extension_from_first_render)
+ end
+ end
+end

0 comments on commit 155eb47

Please sign in to comment.