From 0bffd7d933a46df958c3e6bae1d9871aca515a12 Mon Sep 17 00:00:00 2001 From: Andrew White Date: Sat, 18 Sep 2010 17:49:46 +0100 Subject: Raise ArgumentError instead of normalizing controller name when there is a leading slash [#5651 state:resolved] --- actionpack/test/dispatch/routing_test.rb | 36 ++++++++++++++++++++++++++------ 1 file changed, 30 insertions(+), 6 deletions(-) (limited to 'actionpack/test/dispatch') diff --git a/actionpack/test/dispatch/routing_test.rb b/actionpack/test/dispatch/routing_test.rb index b5a4674a16..3daabf7a64 100644 --- a/actionpack/test/dispatch/routing_test.rb +++ b/actionpack/test/dispatch/routing_test.rb @@ -457,8 +457,6 @@ class TestRoutingMapper < ActionDispatch::IntegrationTest match '/cities', :to => 'countries#cities' end - match '/feeds/:service', :to => '/api/feeds#show', :as => :feed - match '/countries/:country/(*other)', :to => redirect{ |params, req| params[:other] ? "/countries/all/#{params[:other]}" : '/countries/all' } match '/:locale/*file.:format', :to => 'files#show', :file => /path\/to\/existing\/file/ @@ -2130,10 +2128,36 @@ class TestRoutingMapper < ActionDispatch::IntegrationTest assert_raises(ActionController::RoutingError){ list_todo_path(:list_id => '2', :id => '1') } end - def test_controller_has_leading_slash_removed - get '/feeds/twitter.xml' - assert_equal 'api/feeds#show', @response.body - assert_equal '/feeds/twitter.xml', feed_path(:service => 'twitter', :format => 'xml') + def test_controller_name_with_leading_slash_raise_error + assert_raise(ArgumentError) do + self.class.stub_controllers do |routes| + routes.draw { get '/feeds/:service', :to => '/feeds#show' } + end + end + + assert_raise(ArgumentError) do + self.class.stub_controllers do |routes| + routes.draw { get '/feeds/:service', :controller => '/feeds', :action => 'show' } + end + end + + assert_raise(ArgumentError) do + self.class.stub_controllers do |routes| + routes.draw { get '/api/feeds/:service', :to => '/api/feeds#show' } + end + end + + assert_raise(ArgumentError) do + self.class.stub_controllers do |routes| + routes.draw { controller("/feeds") { get '/feeds/:service', :to => :show } } + end + end + + assert_raise(ArgumentError) do + self.class.stub_controllers do |routes| + routes.draw { resources :feeds, :controller => '/feeds' } + end + end end private -- cgit v1.2.3