aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAngelo capilleri <capilleri@yahoo.com>2013-11-29 12:26:12 +0100
committerAngelo Capilleri <capilleri@yahoo.com>2013-12-03 07:46:39 +0100
commit43962d6ec50f918c9970bd3cd4b6ee5c7f7426ed (patch)
treedd773bd243dc9542b2042c0122beb4bc83cfaef5
parent6eba8d27e6feecca88303df6500ef6b376344e29 (diff)
downloadrails-43962d6ec50f918c9970bd3cd4b6ee5c7f7426ed.tar.gz
rails-43962d6ec50f918c9970bd3cd4b6ee5c7f7426ed.tar.bz2
rails-43962d6ec50f918c9970bd3cd4b6ee5c7f7426ed.zip
Fix header Content-Type: #<Mime::NullType:...> in localized template
This PR fixes #13064 regression bug introduced by the #8085 Now in _process_format when the format is a Mime::NullType nothing is written in self.content_type. In this way the method Response#assign_default_content_type_and_charset can write the the default mime_type.
-rw-r--r--actionpack/CHANGELOG.md9
-rw-r--r--actionpack/lib/action_controller/metal/rendering.rb2
-rw-r--r--actionpack/test/controller/localized_templates_test.rb11
-rw-r--r--actionpack/test/fixtures/localized/hello_world.it.erb1
4 files changed, 22 insertions, 1 deletions
diff --git a/actionpack/CHANGELOG.md b/actionpack/CHANGELOG.md
index e649847990..c413bd8267 100644
--- a/actionpack/CHANGELOG.md
+++ b/actionpack/CHANGELOG.md
@@ -1,3 +1,12 @@
+* Fix header Content-Type: #<Mime::NullType:...> in localized template
+
+ When localized template has no format in the template name,
+ now the response has the default and correct `content-type`.
+
+ Fix #13064.
+
+ *Angelo Capilleri*
+
* Better error message for typos in assert_response argument.
When the response type argument to `assert_response` is not a known
diff --git a/actionpack/lib/action_controller/metal/rendering.rb b/actionpack/lib/action_controller/metal/rendering.rb
index 5c48b4ab98..cb2965abac 100644
--- a/actionpack/lib/action_controller/metal/rendering.rb
+++ b/actionpack/lib/action_controller/metal/rendering.rb
@@ -34,7 +34,7 @@ module ActionController
def _process_format(format)
super
- self.content_type ||= format.to_s
+ self.content_type ||= format.to_s unless format.nil? #here test if format is Mime::NullTye istance, no if is a NillClass or FalseClass
end
# Normalize arguments by catching blocks and setting them on :update.
diff --git a/actionpack/test/controller/localized_templates_test.rb b/actionpack/test/controller/localized_templates_test.rb
index 6b02eedaed..c95ef8a0c7 100644
--- a/actionpack/test/controller/localized_templates_test.rb
+++ b/actionpack/test/controller/localized_templates_test.rb
@@ -34,4 +34,15 @@ class LocalizedTemplatesTest < ActionController::TestCase
get :hello_world
assert_equal "Gutten Tag", @response.body
end
+
+ def test_localized_template_has_correct_header_with_no_format_in_template_name
+ old_locale = I18n.locale
+ I18n.locale = :it
+
+ get :hello_world
+ assert_equal "Ciao Mondo", @response.body
+ assert_equal "text/html", @response.content_type
+ ensure
+ I18n.locale = old_locale
+ end
end
diff --git a/actionpack/test/fixtures/localized/hello_world.it.erb b/actionpack/test/fixtures/localized/hello_world.it.erb
new file mode 100644
index 0000000000..9191fdc187
--- /dev/null
+++ b/actionpack/test/fixtures/localized/hello_world.it.erb
@@ -0,0 +1 @@
+Ciao Mondo \ No newline at end of file