提交 a604983f 编写于 作者: Y Yehuda Katz

Merge pull request #3816 from lest/exception-page-utf-8

fix exception page when template contains utf-8 and parameters contain utf-8
......@@ -89,10 +89,14 @@ def source_extract(indentation = 0)
line_counter = start_on_line
return unless source_code = source_code[start_on_line..end_on_line]
source_code.sum do |line|
extract = source_code.sum do |line|
line_counter += 1
"#{indent}#{line_counter}: #{line}\n"
end
extract.encode! if extract.respond_to?(:encode!)
extract
end
def sub_template_of(template_path)
......
# encoding: utf-8
require 'isolation/abstract_unit'
require 'rack/test'
module ApplicationTests
class ShowExceptionsTest < Test::Unit::TestCase
include ActiveSupport::Testing::Isolation
include Rack::Test::Methods
def setup
build_app
boot_rails
FileUtils.rm_rf "#{app_path}/config/environments"
end
def teardown
teardown_app
end
def app
@app ||= Rails.application
end
test "unspecified route when set action_dispatch.show_exceptions to false" do
make_basic_app do |app|
app.config.action_dispatch.show_exceptions = false
end
app.config.action_dispatch.show_exceptions = false
assert_raise(ActionController::RoutingError) do
get '/foo'
......@@ -29,13 +25,36 @@ def app
end
test "unspecified route when set action_dispatch.show_exceptions to true" do
make_basic_app do |app|
app.config.action_dispatch.show_exceptions = true
end
app.config.action_dispatch.show_exceptions = true
assert_nothing_raised(ActionController::RoutingError) do
get '/foo'
end
end
test "displays diagnostics message when exception raised in template that contains UTF-8" do
app.config.action_dispatch.show_exceptions = true
controller :foo, <<-RUBY
class FooController < ActionController::Base
def index
end
end
RUBY
app_file 'app/views/foo/index.html.erb', <<-ERB
<% raise 'boooom' %>
ERB
app_file 'config/routes.rb', <<-RUBY
AppTemplate::Application.routes.draw do
match ':controller(/:action)'
end
RUBY
post '/foo', :utf8 => '✓'
assert_match(/boooom/, last_response.body)
end
end
end
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册