mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Fixed that Routes would raise NameErrors if a controller component contains characters that are not valid constant names #733 [Nicholas Seckar]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@803 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
parent
8cddbf0d37
commit
630638b00e
3 changed files with 14 additions and 0 deletions
|
@ -1,5 +1,7 @@
|
|||
*SVN*
|
||||
|
||||
* Fixed that Routes would raise NameErrors if a controller component contains characters that are not valid constant names #733 [Nicholas Seckar]
|
||||
|
||||
* Added PATH_INFO access from the request that allows urls like the following to be interpreted by rails: http://www.example.com/dispatcher.cgi/controller/action -- that makes it possible to use rails as a CGI under lighttpd and would also allow (for example) Rublog to be ported to rails without breaking existing links to Rublog-powered blogs. #728 [Jamis Buck]
|
||||
|
||||
* Fixed that caching the root would result in .html not index.html #731 [alisdair]
|
||||
|
|
|
@ -134,6 +134,7 @@ module ActionController
|
|||
def eat_path_to_controller(path)
|
||||
path.inject([Controllers, 1]) do |(mod, length), name|
|
||||
name = name.camelize
|
||||
return nil, nil unless /^[A-Z][_a-zA-Z\d]*$/ =~ name
|
||||
controller_name = name + "Controller"
|
||||
return mod.const_get(controller_name), path[length..-1] if mod.const_available? controller_name
|
||||
return nil, nil unless mod.const_available? name
|
||||
|
|
|
@ -479,6 +479,17 @@ class RouteSetTests < Test::Unit::TestCase
|
|||
@request.path_parameters = {:controller => 'admin/users', :action => 'index'}
|
||||
verify_generate 'admin/users', {}
|
||||
end
|
||||
|
||||
def test_url_with_spaces_in_controller
|
||||
@request.path = 'not%20a%20valid/controller/name'
|
||||
@set.add_route(@rails_route) if @set.empty?
|
||||
assert_raises(ActionController::RoutingError) {@set.recognize!(@request)}
|
||||
end
|
||||
def test_url_with_dots_in_controller
|
||||
@request.path = 'not.valid/controller/name'
|
||||
@set.add_route(@rails_route) if @set.empty?
|
||||
assert_raises(ActionController::RoutingError) {@set.recognize!(@request)}
|
||||
end
|
||||
end
|
||||
|
||||
#require '../assertions/action_pack_assertions.rb'
|
||||
|
|
Loading…
Reference in a new issue